查询mysql数据,导入hdfs路径

  1. sqoop import \
  2. --connect jdbc:mysql://10.10.168.20:3306/blued \
  3. --username root \
  4. --password ucloudlyc40666 \
  5. -Dmapreduce.job.queuename=hive \ 队列为hive队列
  6. --query "select * from users_3rd_orders where from_unixtime(pay_time,'%Y%m%d') = ${DAY} and status = 1 and \$CONDITIONS" \
  7. --target-dir /data/hive-temp/ods_users_3rd_orders \
  8. --delete-target-dir \
  9. --fields-terminated-by "," \
  10. --lines-terminated-by "\n" \
  11. --null-string '\\N' \ string类型的null转换成hive底层的\N
  12. --null-non-string '\\N' \ 把非string类型的null转换成hive底层的\N
  13. --hive-drop-import-delims \ 把列里面的分隔符删除(转换成''
  14. --compress \
  15. --compression-codec lzop \ 输出文件为lzo压缩,还需要创建lzo索引
  16. --split-by pay_time \
  17. --num-mappers 1 简写-m:指定map 默认是四个。当指定为1 可以不用设置split-by参数,大于1 需要指定
  18. hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/common/hadoop-lzo-0.4.20.jar com.hadoop.compression.lzo.DistributedLzoIndexer /data/hive-temp/ods_users_3rd_orders

加上?tinyInt1isBit=false 就不会吧mysql的tinyint转换成boolean值

  1. sqoop import \
  2. --connect jdbc:mysql://10.10.86.5:3306/blued?tinyInt1isBit=false \
  3. --username root \
  4. --password ucloudlyc40666 \
  5. --table users_exchange \
  6. --target-dir /data/hive-temp/users_exchange \
  7. --delete-target-dir \
  8. --hive-database blued_log \
  9. --hive-table marvin_test4 \
  10. --hive-import \
  11. --hive-overwrite \
  12. --fields-terminated-by "," \
  13. --lines-terminated-by "\n" \
  14. --null-string '\\N' \ string类型的null转换成hive底层的\N
  15. --null-non-string '\\N' \ 把非string类型的null转换成hive底层的\N
  16. --hive-drop-import-delims \ 把列里面的分隔符删除(转换成’’)
  17. --split-by id \
  18. -m -1

自动新建hive表 Mysql到hive表全量到入

  1. sqoop import \
  2. --connect jdbc:mysql://10.10.86.5:3306/blued \
  3. --username root \
  4. --password ucloudlyc40666 \
  5. --table users_exchange \
  6. --target-dir /data/hive-temp/users_exchange \
  7. --delete-target-dir \
  8. --hive-database blued_log \
  9. --hive-table marvin_test4 \
  10. --hive-import \
  11. --hive-overwrite \
  12. --create-hive-table \ —去掉这一行就不会自动创建hive
  13. --fields-terminated-by "," \
  14. --lines-terminated-by "\n" \
  15. --null-string '\\N' \ string类型的null转换成hive底层的\N
  16. --null-non-string '\\N' \ 把非string类型的null转换成hive底层的\N
  17. --hive-drop-import-delims \ 把列里面的分隔符删除(转换成’’)
  18. --split-by id \
  19. -m -1

查询mysql数据 导入hive分区

  1. sqoop import \
  2. --connect jdbc:mysql://10.10.168.20:3306/blued \
  3. --username root \
  4. --password ucloudlyc40666 \
  5. --query "select * from users_3rd_orders where from_unixtime(pay_time,'%Y%m%d') = ${DAY} and status = 1 and \$CONDITIONS" \
  6. --target-dir /data/hive-temp/ods_users_3rd_orders \
  7. --delete-target-dir \
  8. --hive-database blued_log \
  9. --hive-table ods_users_3rd_orders \
  10. --hive-partition-key day \
  11. --hive-partition-value ${DAY} \
  12. --hive-import \
  13. --hive-overwrite \
  14. --fields-terminated-by "," \
  15. --lines-terminated-by "\n”" \
  16. --null-string '\\N' \ string类型的null转换成hive底层的\N
  17. --null-non-string '\\N' \ 把非string类型的null转换成hive底层的\N
  18. --hive-drop-import-delims \ 把列里面的分隔符删除(转换成''
  19. --compress \
  20. --compression-codec lzop \ 输出文件为lzo压缩,还需要创建lzo索引
  21. --split-by pay_time \
  22. -m -1