sqoop安装配置
#从官网下载对应的安装包上传服务器并解压到指定路径
tar -zxvf /tmp/sqoop-1.4.7.tar.gz -C /home/sqoop/
#把mysql驱动复制到sqoop的lib目录下
cp /home/hive-3.1.2/lib/mysql-connector-java-5.1.9.jar /home/sqoop/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-3.1.3/
export HADOOP_MAPRED_HOME=/home/hadoop-3.1.3/
export HIVE_HOME=/home/hive-3.1.2
#配置环境变量
vim /etc/profile
#追加sqoop路径
export SQOOP_HOME=/home/sqoop/sqoop-1.4.7
#sqoop/conf目录下测试mysql链接
…/bin/sqoop list-databases --connect jdbc:mysql://192.168.100.26:3306/ --username hive --password 密码
mysql到hdfs脚本
数据同步及其etl
sqoop_mysql2hdfs.sh
import //使用import工具 --connect //指定连接的目标数据库 jdbc:mysql://192.168.100.111:3306/test --username //数据库用户名 mysq_username --password //数据库密码 mysql_password --table //要导入的表名 dim_bus_line --columns //要导入的列 lineId,lineName,ticket_price,start_time,last_time,start_time_ls,last_time_ls,line_type,run_type,deptName,deptCode,companyName,companyCode,dt --where //查询条件 id<0 //导入到HDFS的路径,mycluster是hadoop下/etc/hadoop/hdfs-site.xml配置的dfs.nameservices,如果不是配置hadoop高可用的话可以直接写namenode所在主机的ip或主机映射名 --target-dir hdfs://192.168.100.111:9870/user/hive/warehouse/test_db.db/ods_dim_bus_line --delete-target-dir //若目标目录已存在则删除 -m 1 --as-textfile //导入的数据以文本格式存放在HDFS上 //如果只导入到hdfs可以不用下面内容 --hive-import //向hive中导入数据 --hive-overwrite //数据存在则覆盖 --create-hive-table //创建Hive表 --hive-table //指定表名 ods_dim_bus_line --hive-partition-key //指定分区字段 --dt --hive-partition-value 指定分区名 --'2020-10-10'
层级处理etl
sqoop_etl.sh
#!/bin/bash hive=/home/hive-3.1.2/bin set mapreduce.job.queuename=hive; -- set spark.executor.cores=2; sql=" insert into dwd_db.dwd_table_a select * from test_ods_db.ods_table_b limit 5" hive -e "$sql"



