将mysql中的song表数据导入到Hive 数仓 脚本
#! /bin/bash
/opt/installs/sqoop1.4.6/bin/sqoop import \
-D mapred.job.queue.name=hive \
-D mapred.task.timeout=0 \
--connect "jdbc:mysql://hadoop13:3306/ycak?characterEncoding=utf8&useSSL=false" \
--username root \
--password qwert12345A_ \
--table machine_baseinfo \
--num-mappers 1 \
--target-dir /user/hive/warehouse/songdb.db/machine/TO_YCAK_MAC_D/ \
--delete-target-dir \
--fields-terminated-by '\t' \
--null-string '\\N' \
--null-non-string '\\N'
- --connect : 连接jdbc url
- --username :数据库用户名
- --password :数据库密码
- --table : import出的数据库表
- --num-mappers : 将数据导入hdfs中时生成的mr任务使用几个map任务
- --target-dir : 指定数据导入到hdfs中的路径
- --delete-target-dir : 如果数据输出目录已存在则先删除
- --fields-terminated-by '\t' :指定字段列分隔符,默认分隔符是'\001'。
- --null-string '\\N' : mysql-hive的空值解决
- --null-non-string '\\N'
- --hive-import : 将数据从关系数据库中导入hive表中,自动将数据导入到hive中,生成对应 --hive-table指定的表,表中的字段是直接从mysql中映射过来的字段。
- --hive-database : 数据导入hive中使用的hive库
- --hive-overwrite:覆盖掉在hive表中已经存在的数据,与append只能使用一个。
- --hive-table : 导入的hive表