數(shù)據(jù)搬運(yùn)組件:基于Sqoop管理數(shù)據(jù)導(dǎo)入和導(dǎo)出

知了一笑
01
Sqoop概述
Sqoop是一款開源的大數(shù)據(jù)組件,主要用來在Hadoop(Hive、HBase等)與傳統(tǒng)的數(shù)據(jù)庫(mysql、postgresql、oracle等)間進(jìn)行數(shù)據(jù)的傳遞。
通常數(shù)據(jù)搬運(yùn)的組件基本功能:導(dǎo)入與導(dǎo)出。鑒于Sqoop是大數(shù)據(jù)技術(shù)體系的組件,所以關(guān)系型數(shù)據(jù)庫導(dǎo)入Hadoop存儲(chǔ)系統(tǒng)稱為導(dǎo)入,反過來稱為導(dǎo)出。Sqoop是一個(gè)命令行的組件工具,將導(dǎo)入或?qū)С雒钷D(zhuǎn)換成mapreduce程序來實(shí)現(xiàn)。mapreduce中主要是對(duì)inputformat和outputformat進(jìn)行定制。
02
環(huán)境部署
在測試Sqoop組件的時(shí)候,起碼要具備Hadoop系列、關(guān)系型數(shù)據(jù)、JDK等基礎(chǔ)環(huán)境。鑒于Sqoop是工具類組件,單節(jié)點(diǎn)安裝即可
1、上傳安裝包
安裝包和版本:sqoop-1.4.6
2、修改配置文件
文件位置:sqoop1.4.6/conf
配置內(nèi)容:涉及hadoop系列常用組件和調(diào)度組件zookeeper。[root@hop01?conf]#?vim?sqoop-env.sh
#?配置內(nèi)容
3、配置環(huán)境變量
4、引入MySQL驅(qū)動(dòng)
5、環(huán)境檢查

關(guān)鍵點(diǎn):import與export查看幫助命令,并通過version查看版本號(hào)。sqoop是一個(gè)基于命令行操作的工具,所以這里的命令下面還要使用。
6、相關(guān)環(huán)境
此時(shí)看下sqoop部署節(jié)點(diǎn)中的相關(guān)環(huán)境,基本都是集群模式:

7、測試MySQL連接
這里是查看MySQL數(shù)據(jù)庫的命令,如圖結(jié)果打印正確:

03
數(shù)據(jù)導(dǎo)入案例
1、MySQL數(shù)據(jù)腳本

2、Sqoop導(dǎo)入腳本
指定數(shù)據(jù)庫的表,全量導(dǎo)入Hadoop系統(tǒng),注意這里要啟動(dòng)Hadoop服務(wù);
3、Hadoop查詢

4、指定列和條件
查詢的SQL語句中必須帶有WHERE\$CONDITIONS:
查看導(dǎo)出結(jié)果:
5、導(dǎo)入Hive組件
在不指定hive使用的數(shù)據(jù)庫情況下,默認(rèn)導(dǎo)入default庫,并且自動(dòng)創(chuàng)建表名稱:
執(zhí)行過程,這里注意觀察sqoop的執(zhí)行日志即可:
第一步:MySQL的數(shù)據(jù)導(dǎo)入到HDFS的默認(rèn)路徑下;
第二步:把臨時(shí)目錄中的數(shù)據(jù)遷移到hive表中;

6、導(dǎo)入HBase組件
當(dāng)前hbase的集群版本是1.3,需要先創(chuàng)建好表,才能正常執(zhí)行數(shù)據(jù)導(dǎo)入:

04
數(shù)據(jù)導(dǎo)出案例
新建一個(gè)MySQL數(shù)據(jù)庫和表,然后把HDFS中的數(shù)據(jù)導(dǎo)出到MySQL中,這里就使用第一個(gè)導(dǎo)入腳本生成的數(shù)據(jù)即可:
再次查看MySQL中數(shù)據(jù),記錄完全被導(dǎo)出來,這里,是每個(gè)數(shù)據(jù)字段間的分隔符號(hào),語法規(guī)則對(duì)照腳本一HDFS數(shù)據(jù)查詢結(jié)果即可。
05
源代碼地址
關(guān)注我即刻了解更多數(shù)據(jù)分析知識(shí)
更多數(shù)據(jù)分析內(nèi)容
掃描碼即可了解
?
