日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

大数据笔试真题集锦---第十一章:Sqoop面试题

發(fā)布時(shí)間:2024/3/26 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据笔试真题集锦---第十一章:Sqoop面试题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第十一章目錄

第十一章 Sqoop

sqoop本質(zhì)是一款使用MR進(jìn)行數(shù)據(jù)遷移的工具。

目前業(yè)界普遍用1.4.6版本,該版本與CDH集成。

hive對(duì)外的一個(gè)統(tǒng)一存儲(chǔ)格式的接口,使用hcatalog對(duì)接到hive的數(shù)據(jù)不需要擔(dān)心數(shù)據(jù)在hive中的存儲(chǔ)格式和存儲(chǔ)位置。sqoop在1.4.4版本后集成了HCatalog

11.1 sqoop導(dǎo)入數(shù)據(jù)到hive

11.1.1 sqoop+hcatalog

#使用建表的方式增量導(dǎo)入hive orc;#如果已經(jīng)使用hcatalog,則hive-import系列的指定全都不能用,否則報(bào)錯(cuò);和--hcatalog-storage-stanza,存儲(chǔ)格式和壓縮格式會(huì)自動(dòng)對(duì)齊hive表的配置sqoop import --connect jdbc:mysql://127.0.0.1:3306/test --username your_user_name --password 123456--table table_name --driver com.mysql.jdbc.Driver #用sql語(yǔ)句只支持簡(jiǎn)單查詢,使用子查詢或連接查詢可能查出錯(cuò)誤結(jié)果;如果指定-split by,必須使用$CONDITIONS關(guān)鍵字,雙引號(hào)的查詢語(yǔ)句還要加\--query "SELECT a.*, b.* FROM a JOIN b on (a.id == b.id) WHERE \$CONDITIONS" \?#hcatalog-storage-stanza 建表時(shí)追加存儲(chǔ)格式到建表語(yǔ)句中,tblproperties修改表的屬性,這里設(shè)置orc的壓縮格式為gzip#如果表已經(jīng)存在,必須去掉create-hcatalog-table 和hcatalog-storage-stanza--create-hcatalog-table--hcatalog-storage-stanza 'stored as orc tblproperties ("orc.compress"="gzip")'?--hcatalog-database test--hcatalog-table table_name #keys和values必須同時(shí)存在,相當(dāng)于靜態(tài)分區(qū);--hcatalog-partition-keys month,day --hcatalog-partition-values 12,09 ?#以自增長(zhǎng)主鍵作增量導(dǎo)入--incremental append--check-column order_id--last-value 5201314#以時(shí)間字符串為條件增量導(dǎo)入--incremental lastmodified --check-column time --last-value “2014-11-09 21:00:00”#指定mysql數(shù)據(jù)為空值時(shí)用什么符號(hào)存儲(chǔ)--null-string '\\N'--null-not-string '\\N'#設(shè)置無視字符串中的分割符(hcatalog默認(rèn)開啟)--hive-drop-import-delims#-m不為1時(shí),需要指定分片字段進(jìn)行并行導(dǎo)入,盡量指定int型--split-by key-m 3

11.1.2 sqoop->hdfs->hive

不使用hcatalog和hive,導(dǎo)入orc表的方法(老業(yè)務(wù)可能使用)

1.先導(dǎo)入數(shù)據(jù)到hdfssqoop job --create bap_us_order -- import \--connect jdbc:mysql://master:3306/qfbap_ods?dontTrackOpenResources=true\&defaultFetchSize=1000\&useCursorFetch=true \--driver com.mysql.jdbc.Driver \--username root \--password-file hdfs:///password.file \--table us_order \--target-dir /qfbap/ods_tmp/ods_us_order/ \--fields-terminated-by '\001' \--check-column order_id \--incremental append \--last-value 0 \?2.load數(shù)據(jù)到臨時(shí)表中3.將臨時(shí)表數(shù)據(jù)查出來插入到orc表中insert into table ods_table partition(dt) select * from table

11.2 sqoop導(dǎo)出數(shù)據(jù)到mysql

sqoop export \--hcatalog-database temp \--hcatalog-table js_pianyuan_orc \--hcatalog-partition-keys curdate \--hcatalog-partition-values 20180122 \--connect jdbc:mysql://ip:3306/test \--username username \--password passwd --m 10\--table js_pianyuan#把'\\'N視作空值--input-null-string '\\N'--input-null-non-string '\\N'#以更新的方式導(dǎo)出數(shù)據(jù)(key不存在時(shí)允許新增)--update-key id--update-mode allowinsert#導(dǎo)出時(shí)默認(rèn)使用4個(gè)并行任務(wù)#-m 1#批量導(dǎo)出--batch#導(dǎo)出作業(yè)遵循最少一次語(yǔ)義,因此可能有數(shù)據(jù)重復(fù),這里可以設(shè)置開啟暫存臨時(shí)表,臨時(shí)表可清理。如果是更新作業(yè)就沒必要用這個(gè)。#--staging-table#--clear-staging-table

更多sqoop相關(guān):http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_sqoop_hcatalog_integration

總結(jié)

以上是生活随笔為你收集整理的大数据笔试真题集锦---第十一章:Sqoop面试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。