第一章 Sqoop专题之常见面试题
生活随笔
收集整理的這篇文章主要介紹了
第一章 Sqoop专题之常见面试题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、Sqoop是什么
Sqoop本質上是一塊使用MR程序進行數據遷移的工具;
公司使用的是1.4.6;
2、hcatalog的作用
hcatalog是hive對外的一個統一存儲格式的接口,使用hcatalog對接到hive的數據不需要擔心數據在hive中的存儲格式和存儲位置,注意版本為1.4.6(sqoop在1.4.4之后的版本集成了Hcatalog);
3、使用Sqoop導入數據到Hive中
3.1、第一種方式:Sqoop + Hcatalog
- 使用建表方式增量導入hive orc;
- 如果已經使用hcatalog,則hive-import系列的值全都不能用,否則報錯;
- hcatalog-storage-stanze,存儲格式和壓縮格式會自動對齊hive表的配置;
3.2、第二種方式: Sqoop + HDFS + Hive
- 思路
(1)將mysql數據通過sqoop導入到HDFS中
- 將mysql表中歷史數據及剛產生的數據導入到hdfs臨時目錄下了(每張hive表對應一張臨時目錄);
(2)load data statments,將臨時目錄下的數據into到特定分區表對應的目錄下
args=$1 dt= if[${#args} == 0] thendt=`data-d "1days ago" "+%Y%m%d"1` elsedt=$1 fiecho "run hive load data" hive --database databse_name -e "load data inpath '/mtbap/ods_tmp_ods_user_order/' into table ods_tmp_ods_user_order partition(dt=$(dt))" echo "run hive load data end"4、sqoop導出hive數據到mysql中
介紹(前提:要從hive表中將數據導出到rdbms中);①待導出的源是hive表所對應的hdfs上特定的目錄,該目錄下存儲有hive表最終保存的數據;②可以實現的條件:上述hive表對應的hdfs上的目錄下的文件格式是textfile(普通的文本文件)真實生產環境下此情形比較少,一般都是壓縮后的數據,為了節省hdfs的空間③不能實現的場合:上述hive表對應的hdfs上的目錄下的文件格式不是textfile,是壓縮之后的文件,如:orcFile,或者是sequenceFile,直接導出會報錯;此種情形下,只能選用hive hcatalog導出方式實現;(1)hive hcatalog導出方式,hive表存儲格式不是textfile格式
sqoop export \ #1、指定hive表中數據 --hcatalog-database temp \ --hcatalog-table js_pianyuan_orc \ --hcatalog-partition-keys curdate \#2、指定JDBC連接及mysql導出表 --connect jdbc:mysql://ip:3306/test \ --username username \ --password passwd \ --table js_pianyuan#3、maptask的并行度 --m 10 \#4、設置空值轉義,否則會報錯 --input-null-string '\\N' --input-null-non-string '\\N'#5、設置更新的方式導出數據(key不存在時允許新增) --update-key id --update-mode allowinsert#導出時默認使用4個maptask任務5、Sqoop常用參數
sqoop import \ --connect \ --username \ --passward \ --target-dir \ --delete-target-dir \ #可選,刪除目錄 --num-mappers \ #指定并行度 --filds-terminated-by \ #指定分隔符 --query "$2" and $CONDITIONS;總結
以上是生活随笔為你收集整理的第一章 Sqoop专题之常见面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OFweek(第二届)中国人工智能产业大
- 下一篇: 1000BASE