Sqoop+Hive+DataX数仓数据导入开发和产出
一、 Sqoop安装和配置
1. 前期准备
检查服务器集群环境hadoop,hive,jdk,python等环境是否都安装及其全部启动
下载对应的安装包和准备所需要依赖的jar
Sqoop-1.4.7linux安装包:https://archive.apache.org/dist/sqoop/1.4.7/
依赖的jar包:sqoop-1.4.7.jar和mysql-connector-java-5.1.35-bin.jar
/org/apache/sqoop/sqoop/1.4.7/sqoop-1.4.7.jar
2. 安装配置
sqoop安装配置
#从官网下载对应的安装包上传服务器并解压到指定路径
tar -zxvf /tmp/sqoop-1.4.7.tar.gz -C /home/hadoop/sqoop-1.4.7.jar
把mysql驱动复制到sqoop的lib目录下
cp /home/hive-3.1.2/lib/mysql-connector-java-5.1.9.jar /home//hadoop/sqoop-1.4.7/lib/
#修改sqoop/conf/下的sqoop-env.sh文件
cp sqoop-env-template.sh sqoop-env.sh
vim sqoop-env.sh
export HADOOP_COMMON_HOME=/home/hadoop /hadoop-3.1.3
export HADOOP_MAPRED_HOME=/home/hadoop /hadoop-3.1.3
export HIVE_HOME=/home/hadoop /hive-3.1.2
export ZOOKEEPER_HOME=/home/hadoop/zookeeper-3.5.7
#配置环境变量
vim /etc/profile
#追加sqoop路径
export SQOOP_HOME=/home/hadoop/sqoop-1.4.7
export PATH=$PATH:$SQOOP_HOME/bin
- 测试
查看对应的版本号:sqoop version
#/home/Hadoop/sqoop-1.4.7/目录下测试mysql链接
./bin/sqoop list-databases --connect jdbc:mysql://192.168.100.1:3306/ --username hive --password 密码
- 注意事项
需要将mysql的渠道和sqoop驱动放到对应的目录下:
cp mysql-connector-java-5.1.36.jar /home/hadoop/sqoop-1.4.7/lib/
上传的sqoop-1.4.7.jar也放到sqoop-1.4.7/bin目录下
并修改对应的配置文件vim sqoop-1.4.7/bin/sqoop文件最后一行,参考如下
source ${bin}/configure-sqoop "${bin}"
exec ${HADOOP_COMMON_HOME}/bin/hadoop jar ${SQOOP_HOMEn}/bin/sqoop-1.4.7.jar org.apache.sqoop.Sqoop "$@"
二、 数据接入
- Mysql数据全量同步到hdfs
a) 前置准备工作
部分脚本依赖复制:
cp /home/hadoop/hive-3.1.2/lib/hive-common-3.1.2.jar /home/hadoop/sqoop-1.4.7/lib/
启动hiveserver2服务
启动hiveserver2服务,并创建mysql对应的hive映射表。
控制台启动:hiveserver2
后台启动并日志写入到指定文件:
nohup ./hiveserver2 > /home/hadoop/hive-3.1.2/server.log 2>&1 &
连接服务创建库及其对应的表
Beeline连接:
beeline
!connect jdbc:hive2://192.168.100.1:10000
客户端连接:jdbc:hive2://192.168.100.1:10000
有库时选择要导入数据的库没库时创建对应的数据库
选库:use database_name;
创建库:create database ods_test;
b) 配置映射同步脚本
为了数据库的安全性,数据库的账号信息单独配置到数据库对应的脚本中,表数据同步单独为一个个脚本
数据库配置脚本命名:对应数据库类型_数据库名.sh(mysql_test_db.sh)
脚本内容:
#/b