服務近2000家企業,依托一系列實踐中打磨過的技術和產品,根據企業的具體業務問題和需求,針對性的提供各行業大數據解決方案。
hive數據同步工具Sqoop的使用
來源:未知 時間:2019-58-4 瀏覽次數:213次
hive數據同步工具Sqoop的使用,sqoop是一款hive大數據倉庫數據同步工具,可以將mysql,oracle等關系型數據的數據同步至hive大數據倉庫中,也可以將hive表中的數據同步到關系型數據庫中,sqoop的使用分三步
1.下載:因為官方并不建議在生產環境中使用1.99.7版本,所以我們還是等2.0版本出來在用新的吧,現在依然使用1.4.6版本,官方下載地址:sqoop.apache.org,下載后傳到某目錄下
2.安裝:
進入到該目錄下,執行解壓縮,也就是執行命令:
2.安裝:
進入到該目錄下,執行解壓縮,也就是執行命令:
cd /opt/sqoop
tar -xvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
命令執行完成后得到了/opt/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0目錄
二、配置
1.環境變量配置:
編輯/etc/profile文件,添加SQOOP_HOME變量,并且將$SQOOP_HOME/bin添加到PATH變量中,編輯方法很多,可以將profile文件下載到本地編輯,也可以直接用vim命令編輯。
二、配置
1.環境變量配置:
編輯/etc/profile文件,添加SQOOP_HOME變量,并且將$SQOOP_HOME/bin添加到PATH變量中,編輯方法很多,可以將profile文件下載到本地編輯,也可以直接用vim命令編輯。
添加的內容如下:
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文件編輯完成后,執行命令:
source /etc/profile
2.通過mysql表創建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表中的數據全量導入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
進入到/opt/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0/conf目錄下,也就是執行命令:
cd /opt/sqoop//sqoop-1.4.7.bin__hadoop-2.6.0/conf
將sqoop-env-template.sh復制一份,并取名為sqoop-env.sh,也就是執行命令:
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
編輯這個新建的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表創建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表中的數據全量導入hive中
4.mysql表中查詢導入hive中(可用于增量導入)
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是一款非常優秀的hive數據倉庫同步工具,同步命令可以使用linixshell腳本執行,通過創建定時任務實現增量導入的目的
- 上一篇: hive的使用場景及其原理
- 下一篇: mysql在線保持腳本

掃一掃