版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Sqoop數(shù)據(jù)導(dǎo)入工具本章教學(xué)內(nèi)容節(jié)知識(shí)點(diǎn)掌握程度Sqoop概述Sqoop簡(jiǎn)介了解Sqoop架構(gòu)了解Sqoop導(dǎo)入導(dǎo)出數(shù)據(jù)原理掌握實(shí)驗(yàn)環(huán)境說(shuō)明掌握Sqoop1工具使用安裝部署Sqoop1掌握mysql導(dǎo)入到hdfs掌握HDFS導(dǎo)出到mysql掌握將mysql數(shù)據(jù)導(dǎo)入到hive掌握Hive數(shù)據(jù)導(dǎo)出到Mysql掌握Mysql導(dǎo)入到hbase掌握Sqoop2工具使用(可選)安裝部署Sqoop2掌握客戶端使用掌握mysql與hdfs之間互操作掌握課程目標(biāo)本課程的目標(biāo)是幫助學(xué)員掌握Sqoop工具的使用,了解Sqoop工作原理,掌握Sqoop1的安裝配置,能夠使用Sqoop1進(jìn)行mysql與hdfs、hbase、hive之間的數(shù)據(jù)導(dǎo)入導(dǎo)出課程內(nèi)容Sqoop概述Sqoop1工具使用Sqoop簡(jiǎn)介Sqoop即SQLtoHadoop,是一款方便的在傳統(tǒng)型數(shù)據(jù)庫(kù)與Hadoop之間進(jìn)行數(shù)據(jù)遷移的工具,充分利用MapReduce并行特點(diǎn)以批處理的方式加快數(shù)據(jù)傳輸,發(fā)展至今主要演化了二大版本,Sqoop1和Sqoop2。Sqoop工具是hadoop下連接關(guān)系型數(shù)據(jù)庫(kù)和Hadoop的橋梁,支持關(guān)系型數(shù)據(jù)庫(kù)和hive、hdfs、hbase之間數(shù)據(jù)的相互導(dǎo)入,可以使用全表導(dǎo)入和增量導(dǎo)入。
Sqoop優(yōu)勢(shì)高效可控的利用資源,任務(wù)并行度,超時(shí)時(shí)間。數(shù)據(jù)類型映射與轉(zhuǎn)化,可自動(dòng)進(jìn)行,用戶也可自定義支持多種主流數(shù)據(jù)庫(kù),MySQL,Oracle,SQLServer,DB2等等
Sqoop1架構(gòu)Sqoop導(dǎo)入與導(dǎo)出Sqoop從數(shù)據(jù)庫(kù)導(dǎo)入到HDFS的原理在導(dǎo)入開始之前,Sqoop使用JDBC來(lái)檢查將要導(dǎo)入的表,檢索出表中所有的列以及列的SQL數(shù)據(jù)類型,這些SQL類型(VARCHAR、INTEGER)被映射到Java數(shù)據(jù)類型(String、Integer等),在MapReduce應(yīng)用中將使用這些對(duì)應(yīng)的java類型來(lái)保存字段的值。Sqoop的代碼生成器使用這些信息來(lái)創(chuàng)建對(duì)應(yīng)表的類,用于保存從表中抽取的記錄。JDBC的ResultSet接口提供了檢索記錄的游標(biāo)Sqoop啟動(dòng)的MapReduce作業(yè),在生成反序列化代碼和配置InputFormat之后,Sqoop將作業(yè)發(fā)送到MapReduce集群。Map任務(wù)將執(zhí)行查詢并將ResultSet中的數(shù)據(jù)反序列化到生成類的實(shí)例,寫入到HDFS中。Sqoop從HDFS導(dǎo)出到數(shù)據(jù)庫(kù)的原理Sqoop在執(zhí)行導(dǎo)出操作之前,sqoop會(huì)根據(jù)數(shù)據(jù)庫(kù)連接字符串來(lái)選擇一個(gè)導(dǎo)出方法,一般為jdbc。sqoop會(huì)根據(jù)目標(biāo)表的定義生成一個(gè)java類,這個(gè)生成的類能夠從文本文件中解析記錄,并能夠向表中插入類型合適的值。接著會(huì)啟動(dòng)一個(gè)MapReduce作業(yè),從HDFS中讀取源數(shù)據(jù)文件,使用生成的類解析記錄,并且執(zhí)行選定的導(dǎo)出方法。實(shí)驗(yàn)環(huán)境說(shuō)明操作系統(tǒng):Ubuntu16.04ServerJDK版本:1.8Hadoop版本:2.7.2Sqoop版本:sqoop-1.4.6 sqoop-1.99.7課程內(nèi)容Sqoop概述Sqoop1工具使用安裝部署Sqoop1下載Sqoop/apache/sqoop/解壓安裝包tar-xzvfsqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gzmvsqoop-1.4.6.bin__hadoop-2.0.4-alphasqoop-1.4.6設(shè)置環(huán)境變量在.profile中配置環(huán)境變量exportHADOOP_HOME=/home/hadoop/hadoop-2.7.2export
SQOOP_HOME=/home/hadoop/sqoop-1.4.6export
ZOOKEEPER_HOME=/home/hadoop/zookeeper-3.4.6exportHIVE_HOME=/home/hadoop/hive-1.2.1exportHBASE_HOME=/home/hadoop/hbase-1.2.4exportPATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$SQOOP_HOME/bin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$HBASE_HOME/bin復(fù)制文件在sqoop配置目錄中復(fù)制sqoop-env-template.sh文件為
sqoop-env.sh將hadoop的hadoop-common-2.7.2.jar包文件復(fù)制到sqoop的lib目錄下將Java的MySQL連接器mysql-connector-java-5.1.39-bin.jar包文件復(fù)制到Sqoop的lib目錄下Sqoop配置修改sqoop-env.sh配置exportHADOOP_COMMON_HOME=/home/hadoop/hadoop-2.7.2/exportHADOOP_MAPRED_HOME=/home/hadoop/hadoop-2.7.2/exportHBASE_HOME=/home/hadoop/hbase-1.2.4exportHIVE_HOME=/home/hadoop/hive-1.2.1exportZOOCFGDIR=/home/hadoop/zookeeper-3.4.6/conf測(cè)試Sqoop是否配置成功sqooplist-databases--connectjdbc:mysql://:3306--usernameroot--password123456表的創(chuàng)建createtabletest(idint,namevarchar(50),crt_datetimestamp);mysql導(dǎo)入到hdfssqoopimport--connectjdbc:mysql://:3306/test--usernameroot--password123456--tabletest--target-dir/data--fields-terminated-by','-m1mysql導(dǎo)入到hdfs—數(shù)據(jù)并發(fā)導(dǎo)入Sqoop在import時(shí),需要指定split-by參數(shù),Sqoop根據(jù)不同的split-by參數(shù)值來(lái)進(jìn)行切分,然后將切分出來(lái)的區(qū)域分配到不同map中,每個(gè)map中再處理數(shù)據(jù)庫(kù)中獲取的一行一行的值,寫入到HDFS中。sqoopimport--connectjdbc:mysql:///test--usernameroot--password123456--tabletest--target-dir/data-m2--split-byidmysql數(shù)據(jù)增量導(dǎo)入--append模式sqoopimport--connectjdbc:mysql:///test--usernameroot--password123456--tabletest--fields-terminated-by',‘-m1--target-dir/data--incrementalappend--check-columnid--last-value3HDFS導(dǎo)出到mysqlsqoopexport--connectjdbc:mysql://:3306/test--tabletest--input-fields-terminated-by','--usernameroot--password123456--export-dir/dataSqoop容錯(cuò)Sqoop將一個(gè)傳輸作業(yè)生成一個(gè)mapreducejob,一個(gè)傳輸任務(wù),由多個(gè)task并行執(zhí)行,每個(gè)task本身是一個(gè)transaction,當(dāng)這個(gè)taskfail,這個(gè)transaction會(huì)rollback,但其他的transaction不會(huì)rollback,這就會(huì)導(dǎo)致非常嚴(yán)重的臟數(shù)據(jù)問(wèn)題,數(shù)據(jù)部分導(dǎo)入,部分缺失,導(dǎo)致數(shù)據(jù)出現(xiàn)一致性問(wèn)題。SqoopExport提供了一個(gè)“中間表”的解決辦法,先將數(shù)據(jù)寫入到中間表,寫入中間表成功,在一個(gè)transaction中將中間表的數(shù)據(jù)寫入目標(biāo)表
Sqoop容錯(cuò)sqoopexport--connectjdbc:mysql://:3306/test--usernameroot--password123456--tabletest--export-dir/data--staging-tabletest_tmp--clear-staging-table-m1--fields-terminated-by','HDFS導(dǎo)出到mysql--數(shù)據(jù)覆蓋更新對(duì)于HDFS上更新的數(shù)據(jù)以及新增數(shù)據(jù)的處理sqoopexport--connectjdbc:mysql://:3306/test--usernameroot--password123456--tabletest--update-keyid--update-modeallowinsert--input-fields-terminated-by','--export-dir/dataMysql全庫(kù)導(dǎo)入到hdfssqoopimport-all-tables--connectjdbc:mysql://:3306/test--usernameroot--password123456--fields-terminated-by','-m1Mysql導(dǎo)入到hivesqoopimport--connectjdbc:mysql://:3306/test--usernameroot--password123456--tabletest--delete-target-dir--target-dir/sqoop--hive-databasetest--hive-import--hive-overwrite--fields-terminated-by','-m1Mysql全庫(kù)導(dǎo)入Hivesqoopimport-all-tables--connectjdbc:mysql://:3306/test--usernameroot--password123456--h
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 墨鏡促銷活動(dòng)策劃方案(3篇)
- 平安融易江漢開發(fā)區(qū)分公司公開招聘客服專員10人備考考試題庫(kù)及答案解析
- 2026廣西柳州市柳江區(qū)禁毒委員會(huì)辦公室招聘編外人員1人備考考試試題及答案解析
- 2026年上半年玉溪師范學(xué)院招聘人員(6人)參考考試題庫(kù)及答案解析
- 2026浙江杭州珠江體育文化發(fā)展有限公司招聘?jìng)淇伎荚囋囶}及答案解析
- 2026新疆烏市第126中學(xué)慈湖初中部急聘初中物理老師備考考試題庫(kù)及答案解析
- 2026上半年云南事業(yè)單位聯(lián)考云南文化藝術(shù)職業(yè)學(xué)院招聘人員考試備考試題及答案解析
- 孕期血壓監(jiān)測(cè)與護(hù)理指導(dǎo)
- 2026年上半年黑龍江省科學(xué)院事業(yè)單位公開招聘工作人員24人筆試參考題庫(kù)及答案解析
- 2026年寧德市消防救援支隊(duì)政府專職消防隊(duì)員招聘65人備考考試題庫(kù)及答案解析
- 2025至2030中國(guó)手術(shù)機(jī)器人醫(yī)生培訓(xùn)體系構(gòu)建與手術(shù)收費(fèi)模式研究報(bào)告
- 學(xué)校名稱更名申請(qǐng)書
- 2025伊金霍洛旗九泰熱力有限責(zé)任公司招聘專業(yè)技術(shù)人員50人公筆試備考試題附答案
- 2025-2026年人教版八年級(jí)上冊(cè)歷史期末考試卷及答案
- 港口碼頭建設(shè)施工方案
- 2025年蘭州新區(qū)幼兒園筆試題及答案
- 總部經(jīng)濟(jì)返稅合同范本
- 環(huán)境監(jiān)測(cè)站建設(shè)施工方案
- 快遞配送外包合同范本
- 火龍罐的市場(chǎng)前景分析
- 設(shè)備技術(shù)員轉(zhuǎn)正述職報(bào)告
評(píng)論
0/150
提交評(píng)論