大数据——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: Class QueryResult not found
進入臨時文件夾,
將jar包放在sqoop安裝目錄/lib下。
(2)提示org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://192.168.99.250:9000/user/root/employees already exists
在hdfs里邊把文件刪除就行,命令:hadoop dfs -rmr /文件夾路徑
(3)出現以下錯誤,是缺少java-json.jar,放在sqoop安裝目錄/lib下
3.利用sqoop將mysql數據導入hive
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)新建表
成功!
查詢hive:
(1)出現ERROR hive.HiveConfig: Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE_CONF_DIR is set correctly.
往/etc/profile最后加入?export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*
然后刷新配置,source /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)查看hive表在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.hive連接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服務
hive --service metastore &7.hive連接Hbase為基礎數據庫
?
總結
以上是生活随笔為你收集整理的大数据——sqoop操作mysql和hive导出导入数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lyapunov稳定性分析3(离散时间系
- 下一篇: 下载mooc视频字幕