【发布时间】:2018-12-08 19:34:48
【问题描述】:
当映射器的数量大于源 hdfs 位置的块数时,sqoop 导出会创建重复项吗?
我的源 hdfs 目录有 2400 万条记录,当我将 sqoop 导出到 Postgres 表时,它会以某种方式创建重复记录。我已将映射器的数量设置为 24。源位置有 12 个块。
知道为什么 sqoop 会创建重复项吗?
- Sqoop 版本:1.4.5.2.2.9.2-1
- Hadoop 版本:Hadoop 2.6.0.2.2.9.2-1
使用 Sqoop 命令-
sqoop export -Dmapred.job.queue.name=queuename \
--connect jdbc:postgresql://ServerName/database_name \
--username USER --password PWD \
--table Tablename \
--input-fields-terminated-by "\001" --input-null-string "\\\\N" --input-null-non-string "\\\\N" \
--num-mappers 24 -m 24 \
--export-dir $3/penet_baseline.txt -- --schema public;
【问题讨论】:
-
导出数据后postgres表的记录数是多少?
-
我将 100 万条记录添加到目标表中。大约2500万。每次运行都不同。
-
只导出了100万个?
-
并非所有记录都是重复的。来源有 2400 万,目标有 2500 万。所以有 100 万条记录被复制
-
12 个块是什么意思 - 是您导出数据的目录中的 12 个部分文件吗?
标签: postgresql hive sqoop