Sqoop(三)将关系型数据库中的数据导入到HDFS(包括hive,hbase中)
生活随笔
收集整理的這篇文章主要介紹了
Sqoop(三)将关系型数据库中的数据导入到HDFS(包括hive,hbase中)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文轉自:https://www.cnblogs.com/yfb918/p/10855170.html
一、說明:
將關系型數據庫中的數據導入到 HDFS(包括 Hive, HBase) 中,如果導入的是 Hive,那么當 Hive 中沒有對應表時,則自動創建。
二、操作
1、創建一張跟mysql中的im表一樣的hive表im:
過程中報錯總結:
ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register 解決方法:1、將hive-site.xml復制到${SQOOP_HOME}/conf下2、vim $JAVA_HOME/jre/lib/security/java.policy:在grant{}內部添加如下內容:permission javax.management.MBeanTrustPermission "register"; Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE_CONF_DIR 解決方法:將hive 里面的lib下的hive-exec-**.jar 放到sqoop 的lib 下2、將mysql中的數據導入到HDFS
sqoop import \ --connect jdbc:mysql://192.168.200.100:3306/yang \ --username root \ --password 010209\ --table im \ -m 13、將mysql中的數據導入到HDFS(按照指定分隔符和路徑進行導入)
sqoop import \ --connect jdbc:mysql://192.168.200.100:3306/yang \ --username root \ --password 010209 \ --table im \ --target-dir /test/ \ --fields-terminated-by ',' \ -m 14、將mysql中的數據導入到HDFS(帶where條件)
sqoop import \ --connect jdbc:mysql://192.168.200.100:3306/yang \ --username root \ --password 010209 \--where "name='dccc'" \ --table im \ --target-dir /test/ \ -m 1帶where條件,查詢指定列(相當于select name from im where name="dccc") sqoop import \ --connect jdbc:mysql://192.168.200.100:3306/yang \ --username root \ --password 010209 \--columns "name" \ --where "name='dccc'" \ --table im \ --target-dir /test/ \ -m 15、將mysql中的數據導入到HDFS(自定義查詢SQL)
sqoop import \ --connect jdbc:mysql://192.168.200.100:3306/yang \ --username root \ --password 010209 \ --target-dir /test/ \ --query 'select id,name from im where $CONDITIONS ' \ --split-by id \ --fields-terminated-by '\t' \ -m 2說明:
–split-by:
CONDITIONS:
SQoop Query imports自由查詢模式下$CONDITIONS的作用:1、必須制定目標文件的位置:--target-dir2、必須使用$CONDITIONS關鍵字3、選擇使用--split-by分片(分區,結果分成多個小文件)6、將mysql中的數據導入到Hive
sqoop import --connect jdbc:mysql://192.168.200.100:3306/yang --username root --password 010209 --table im --hive-import -m 17、指定分隔符和列分隔符,指定hive-import,指定覆蓋導入,指定自動創建Hive表,指定表名,指定刪除中間結果數據目錄
sqoop import \ --connect jdbc:mysql://192.168.200.100:3306/yang \ --username root \ --password 010209 \ --table im \ --fields-terminated-by "\t" \ --lines-terminated-by "\n" \ --hive-import \ --hive-overwrite \ --create-hive-table \ --delete-target-dir \ --hive-database yang \ --hive-table im-m 18、將Mysql數據庫中的表數據導入到Hbase(普通導入)
sqoop import \ --connect jdbc:mysql://192.168.200.100:3306/yang \ --username root \ --password 010209 \ --table im \ --hbase-table im \ --column-family cf \ --hbase-row-key keyid總結
以上是生活随笔為你收集整理的Sqoop(三)将关系型数据库中的数据导入到HDFS(包括hive,hbase中)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中邮理财是什么意思
- 下一篇: Ambari2.7.4+HDP3.1.4