我想使用sqoop导入从Mysql导入数据,但我的要求是我想使用4个映射器,但它应该只在hdfs目标目录中创建一个文件有没有办法做到这一点?
答案 0 :(得分:2)
否。 sqoop中没有选项可以将文件重新分区为1个文件。
我不认为这应该是sqoop的头疼。
您可以使用hadoop的getmerge功能轻松完成。例如:
hadoop fs -getmerge /sqoop/target-dir/ /desired/local/output/file.txt
下面
/sqoop/target-dir
是您的sqoop命令的target-dir
(包含所有零件文件的目录)。
desired/local/output/file.txt
是合并的单个文件。
答案 1 :(得分:0)
将此选项添加到sqoop
--num-mappers 1
sqoop日志显示:
Job Counters
Launched map tasks=1
Other local map tasks=1
最后在hdfs上创建了ONE文件。
答案 2 :(得分:0)
您可以使用以下sqoop命令.. !!
@假设数据库名称为prateekDB,表名称为Emp ... !!
sqoop导入--connect“ jdbc:mysql:// localhost:3306 / prateekDB” --username = root \ --password = data --table Emp --target-dir / SqoopImport-由empno分割