Hadoop 配置Sqoop2文本文件输出格式

Hadoop 配置Sqoop2文本文件输出格式,hadoop,sqoop,cloudera-cdh,sqoop2,Hadoop,Sqoop,Cloudera Cdh,Sqoop2,我正在使用Sqoop2(SQOOP1.99.3-cdh5.1.0)从postgresql数据库导入数据。作业成功完成并在HDFS中创建文本文件。输出文件是带有单引号的CSV,我想将输出配置为不带引号的制表符分隔 Sqoop2的输出格式可配置吗?似乎Sqoop2还不允许配置输出格式 Sqoop允许在此处使用命令行参数配置输出格式:(对于粘贴注释也使用thx@purpletech) 对于Cloudera Hadoop用户:Sqoop与Sqoop2一起安装,可以在安装CDH的地方找到。Hue为Sqoo

我正在使用Sqoop2(SQOOP1.99.3-cdh5.1.0)从postgresql数据库导入数据。作业成功完成并在HDFS中创建文本文件。输出文件是带有单引号的CSV,我想将输出配置为不带引号的制表符分隔


Sqoop2的输出格式可配置吗?

似乎Sqoop2还不允许配置输出格式

Sqoop允许在此处使用命令行参数配置输出格式:(对于粘贴注释也使用thx@purpletech)


对于Cloudera Hadoop用户:Sqoop与Sqoop2一起安装,可以在安装CDH的地方找到。Hue为Sqoop2提供了一个web界面,必须从命令行调用Sqoop1。

我也遇到了同样的问题,所以我最终使用了Sqoop1。Sqoop2很棒,但也有一些缺点,如:

  • 您不能在Oozie中计划Sqoop2作业,因此只能手动运行它
  • 您不能将数据直接加载到配置单元或HBase中,只能加载到文件
  • 您不能配置输出分隔符和存储模块
因此,我建议您使用sqoop1,它非常简单:

sqoop import --connect xxxx --username xxxx --password xxxx --query select * from xxx --target-dir /tmp/xxx -m 1 --fields-terminated-by | --enclosed-by \0 
如果您使用的是色调作业,最好不要将此命令写入Sqoop作业的command字段,而是将每个命令插入单独的参数(例如第一个参数是import,第二个参数是connect,第三个连接字符串然后是username等)


希望有帮助,祝你好运

--字段以集合终止字段分隔符--行以集合终止行结束符--mysql分隔符使用mysql的默认分隔符集:fields:,lines:\n转义者:\n可选地以“@purpletech”括起这些选项在sqoop2 cli中无法提供