sqoop命令总结
1.数据从mysql到hdfs
/opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/lib/sqoop/bin/sqoop import \
--connect jdbc:mysql://mysql_ip:3306/mysql_database \
--username root \
--password mysql_pwd \
--table mysql_table \
--target-dir /cetc2020/1/1/user/hdfs_dir/$db_date \
--delete-target-dir \
--hive-delims-replacement '' \
--num-mappers 1 \
--fields-terminated-by "\t"
解析:
--hive-delims-replacement 这个是为了防止mysql字段的值有换行符,
--hive-delims-replacement ''可以替换换行符换成空字符串
2.数据从mysql表到hive表
/opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/lib/sqoop/bin/sqoop import \ --connect jdbc:mysql://mysql_ip:3306/mysql_database \ --username root \ --password mysql_pwd \ --table mysql_table \ --fields-terminated-by '\001' \ --lines-terminated-by '\n' \ --hive-import \ --hive-overwrite \ --hive-database hive_database \ --hive-table hive_table \ --hive-delims-replacement '' \ --delete-target-dir -m 1
解析:
--hive-delims-replacement 这个是为了防止mysql字段的值有换行符,
--hive-delims-replacement ''可以替换换行符换成空字符串
3.数据从hive的数据到mysql表
/opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/lib/sqoop/bin/sqoop export \ --connect jdbc:mysql://mysql_ip:3306/mysql_database \ --username root \ --password mysql_pwd \ --table mysql_table \ --num-mappers 1 \ --export-dir /data/hive/warehouse/xzs.db/hive_table \ --input-fields-terminated-by '\001'
4.sqoop执行hive的查询等语句
/opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/lib/sqoop/bin/sqoop eval \ --connect jdbc:mysql://mysql_ip:3306/mysql_database \ --username root \ --password mysql_pwd \ --query "truncate table mysql_table;"