这篇文章上次修改于 1187 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

最近遇到个问题,sqoop从tidb导入hive数据条数增多,解决方式是加上—hive-drop-import-delims

最近遇到个问题,sqoop数据条数不对,sqoop从tidb导入的数据行数比实际条数多,调查发现因为数据内容包含换行等分割符号,
所以加入下面参数,去掉多余的换行符\n, \r, and \01
--hive-drop-import-delims \

整体如下:

sqoop import   \
-D mapred.job.queue.name=${queueName} \
-D mapred.job.name=${job_name} \
-D yarn.application.classpath=${YARN_APPLICATION_CLASSPATH} \
-D mapreduce.map.memory.mb='6144' \
-D mapreduce.map.java.opts='-Xmx4916m -XX:+UseG1GC -XX:+PrintFlagsFinal -XX:+PrintReferenceGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintAdaptiveSizePolicy -XX:+UnlockDiagnosticVMOptions -XX:+G1SummarizeConcMark -XX:InitiatingHeapOccupancyPercent=35' \
--connect ${db_connection} \
--username ${db_username} \
--password ${db_password} \
--query " select \`revision\`, \
 \`created_by\`, \
 \`created_time\`, \
 \`updated_by\`, \
 \`updated_time\`, \
 \`id\`, \
 \`um_num\`, \
 \`feedback\`  \
 from ${source_table}  \
 where 1=1  \
 and \$CONDITIONS " \
--hive-table ${target_db}.${idld_table} \
--target-dir "${target_dir}" \
--hive-drop-import-delims \
-m=1 \
--null-string='\\N' \
--null-non-string='\\N' \
--hive-overwrite \
--hive-import;