ビッグデータ-sqoop操作mysqlおよびhiveのデータのエクスポートとインポート

1.sqoopのインストール

(1)CDHバージョンのsqoopをダウンロードします

(2)環境を解凍して構成します

環境変数は次のとおりです。

export SQOOP_HOME=/home/sqoop-1.4.6-cdh5.15.1
export PATH=$PATH:$SQOOP_HOME/bin

sqoopインストールディレクトリ/ conf /内:

#新建sqoop-env.sh文件
cp sqoop-env-template.sh sqoop-env.sh

#增加环境变量
1、hadoop_home
2、hive_home
3、hbase_home

(3)テストを開始します

sqoop help

そして接続テスト

 sqoop list-databases --connect jdbc:mysql://IP地址/数据库--username 数据库的用户名  --password 数据库密码 

2.sqoopを使用してmysqlデータをhdfsにインポートします

sqoop import --connect jdbc:mysql://IP地址/数据库 --username 数据库用户名  --password 数据库密码 --table 表名 --driver com.mysql.jdbc.Driver (驱动)

成功インターフェース:

既存のエラー:

(1)入力java.lang.ClassNotFoundException:クラスQueryResultが見つかりません

一時フォルダに、

jarパッケージをsqoopインストールディレクトリ/ libに配置します。

(2)入力org.apache.hadoop.mapred.FileAlreadyExistsException:出力ディレクトリhdfs://192.168.99.250:9000 / user / root / employeesはすでに存在します

hdfs内のファイルを削除するだけです。コマンド:hadoop dfs -rmr / folder path

(3)次のエラーが発生しました。これは、sqoopインストールディレクトリ/ libに配置されたjava-json.jarの欠如です。

3. sqoopを使用して、mysqlデータをハイブにインポートします

sqoop import --connect jdbc:mysql://192.168.99.16/test --username root  --password root --table employees --hive-import --hive-table employees --driver com.mysql.jdbc.Driver

(1)新しいテーブルを作成します

成功!

クエリハイブ:

(1)出出エラーhive.HiveConfig:org.apache.hadoop.hive.conf.HiveConfを読み込めませんでした。HIVE_CONF_DIRが正しく設定されていることを確認してください。

エクスポートHADOOP_CLASSPATH = $ HADOOP_CLASSPATH:$ HIVE_HOME / lib / *を
/ etc / profileの最後に追加し、構成を更新します。ソース/ etc / profile

4. sqoopを使用して、Hadoopデータをmysqlにインポートします

(1)ローカルデータをhdfsにアップロードする

(2)コマンドを実行します

 sqoop export --connect jdbc:mysql://192.168.99.16/test --username root  --password root --table employees_s --export-dir edata --columns first_name,salary,dept   --driver com.mysql.jdbc.Driver  --input-fields-terminated-by '\001'  --input-null-string '\n' --input-null-non-string '\n'

間違った理由:

フィールドに一貫性がなく、エンコーディングに一貫性がなく、utf-8に変更されています。

5.sqoopを使用してHiveデータをmysqlにインポートします

(1)ハイブテーブルの保存パスをhdfsで表示します

(2)エクスポート

sqoop export --connect jdbc:mysql://192.168.99.16/test --username root  --password root --table employees_s --export-dir /user/hive/warehouse/employees    --driver com.mysql.jdbc.Driver  --input-fields-terminated-by '\001'  --input-null-string '\n' --input-null-non-string '\n'

フィールドタイプに注意する必要があります!

6.ハイブはベースライブラリとしてoracleを接続します

hive-site.xmlファイルの内容を変更します。

<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:oracle:thin:@IP地址:端口号:实例名</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>oracle.jdbc.OracleDriver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>username</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
</property>

</configuration>

ハイブサービスを再起動します

hive --service metastore &

7.Hiveは基本データベースとしてHbaseに接続します

 

おすすめ

転載: blog.csdn.net/qq_28409193/article/details/113104315