服務(wù)近2000家企業(yè),依托一系列實(shí)踐中打磨過的技術(shù)和產(chǎn)品,根據(jù)企業(yè)的具體業(yè)務(wù)問題和需求,針對(duì)性的提供各行業(yè)大數(shù)據(jù)解決方案。
hive數(shù)據(jù)同步工具Sqoop的使用
來(lái)源:未知 時(shí)間:2019-58-4 瀏覽次數(shù):213次
hive數(shù)據(jù)同步工具Sqoop的使用,sqoop是一款hive大數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)同步工具,可以將mysql,oracle等關(guān)系型數(shù)據(jù)的數(shù)據(jù)同步至hive大數(shù)據(jù)倉(cāng)庫(kù)中,也可以將hive表中的數(shù)據(jù)同步到關(guān)系型數(shù)據(jù)庫(kù)中,sqoop的使用分三步
1.下載:因?yàn)楣俜讲⒉唤ㄗh在生產(chǎn)環(huán)境中使用1.99.7版本,所以我們還是等2.0版本出來(lái)在用新的吧,現(xiàn)在依然使用1.4.6版本,官方下載地址:sqoop.apache.org,下載后傳到某目錄下
2.安裝:
進(jìn)入到該目錄下,執(zhí)行解壓縮,也就是執(zhí)行命令:
2.安裝:
進(jìn)入到該目錄下,執(zhí)行解壓縮,也就是執(zhí)行命令:
cd /opt/sqoop
tar -xvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
命令執(zhí)行完成后得到了/opt/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0目錄
二、配置
1.環(huán)境變量配置:
編輯/etc/profile文件,添加SQOOP_HOME變量,并且將$SQOOP_HOME/bin添加到PATH變量中,編輯方法很多,可以將profile文件下載到本地編輯,也可以直接用vim命令編輯。
二、配置
1.環(huán)境變量配置:
編輯/etc/profile文件,添加SQOOP_HOME變量,并且將$SQOOP_HOME/bin添加到PATH變量中,編輯方法很多,可以將profile文件下載到本地編輯,也可以直接用vim命令編輯。
添加的內(nèi)容如下:
export JAVA_HOME=/opt/java/jdk1.8.0_121
export HADOOP_HOME=/opt/hadoop/hadoop-2.8.0
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib"
export HIVE_HOME=/opt/hive/apache-hive-2.1.1-bin
export HIVE_CONF_DIR=${HIVE_HOME}/conf
export SQOOP_HOME=/opt/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0
export CLASS_PATH=.:${JAVA_HOME}/lib:${HIVE_HOME}/lib:$CLASS_PATH
export PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin: ${HIVE_HOME}/bin:${SQOOP_HOME}/bin:$PATH
2.sqoop配置文件配置
/wwwdata/sqoop-1.4.7.bin__hadoop-2.6.0
/etc/profile文件編輯完成后,執(zhí)行命令:
source /etc/profile
2.通過mysql表創(chuàng)建hive表
sqoop create-hive-table --connect jdbc:mysql://xxxxx:3306/xxxx?characterEncoding=UTF-8 --table xxx --username root -password 'xxxx' --fields-terminated-by ',' --hive-database expodata --hive-table xxx
3.mysql表中的數(shù)據(jù)全量導(dǎo)入hive中
sqoop import --connect jdbc:mysql://xxxxx:3306/xxx?characterEncoding=UTF-8 --table xx --username root -password 'xxx' --fields-terminated-by ',' --hive-import --hive-database expodata --hive-table xxx-m 1
進(jìn)入到/opt/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0/conf目錄下,也就是執(zhí)行命令:
cd /opt/sqoop//sqoop-1.4.7.bin__hadoop-2.6.0/conf
將sqoop-env-template.sh復(fù)制一份,并取名為sqoop-env.sh,也就是執(zhí)行命令:
cp sqoop-env-template.sh sqoop-env.sh
三、sqoop使用
1.sqoop鏈接mysql查看表
sqoop list-tables --username root2 --password 'xxxxx' --connect jdbc:mysql://192.168.0.336:3306/xxxx?characterEncoding=UTF-8
編輯這個(gè)新建的sqoop-env.sh文件,編輯方法有很多,可以下載到本地編輯,也可是使用vim命令編輯。
在該文件末尾加入下面的配置:
export HADOOP_COMMON_HOME=/wwwdata/hadoop-2.6.0-cdh5.13.0
export HADOOP_MAPRED_HOME=/wwwdata/hadoop-2.6.0-cdh5.13.0
export HIVE_HOME=/wwwdata/apache-hive-3.0.0-bin
說明:上面的路徑修改為自己的hadoop路徑和hive路徑。三、sqoop使用
1.sqoop鏈接mysql查看表
2.通過mysql表創(chuàng)建hive表
sqoop create-hive-table --connect jdbc:mysql://xxxxx:3306/xxxx?characterEncoding=UTF-8 --table xxx --username root -password 'xxxx' --fields-terminated-by ',' --hive-database expodata --hive-table xxx
3.mysql表中的數(shù)據(jù)全量導(dǎo)入hive中
4.mysql表中查詢導(dǎo)入hive中(可用于增量導(dǎo)入)
sqoop import --connect jdbc:mysql://xxx:3306/xxx?characterEncoding=UTF-8 --username root -password 'xxxx' --query 'select * from xxx where to_days(time) = to_days(now()) AND $CONDITIONS' --fields-terminated-by ',' --hive-import --target-dir /user/hive/warehouse/xxx --hive-database expodata --hive-table ddd -m 1
sqoop是一款非常優(yōu)秀的hive數(shù)據(jù)倉(cāng)庫(kù)同步工具,同步命令可以使用linixshell腳本執(zhí)行,通過創(chuàng)建定時(shí)任務(wù)實(shí)現(xiàn)增量導(dǎo)入的目的
- 上一篇: hive的使用場(chǎng)景及其原理
- 下一篇: mysql在線保持腳本

掃一掃