Hadoop 如何在MapReduce作业中输出数据以供Sqoop导出?

Hadoop 如何在MapReduce作业中输出数据以供Sqoop导出?,hadoop,mapreduce,sqoop,Hadoop,Mapreduce,Sqoop,我读过很多关于使用Sqoop从SQL导入的内容,但是关于导出的内容只有一些小贴士,示例总是假设您出于某种原因导出导入的/预格式化的数据,或者使用配置单元 如何从MapReduce作业将数据写入到Sqoop可以读取和导出的HDFS中 显示支持的文件格式。我想我可以使用text/CSV,但在MapReduce中如何实现这一点 ,表示只修改TextOutputFormat的选项,但只写入键/值。我的“值”是多个字段/列 尝试使用其他存储设备,如avro或parquet(更多buggy),这样您就有了一

我读过很多关于使用Sqoop从SQL导入的内容,但是关于导出的内容只有一些小贴士,示例总是假设您出于某种原因导出导入的/预格式化的数据,或者使用配置单元

如何从MapReduce作业将数据写入到Sqoop可以读取和导出的HDFS中

显示支持的文件格式。我想我可以使用text/CSV,但在MapReduce中如何实现这一点


,表示只修改
TextOutputFormat
的选项,但只写入键/值。我的“值”是多个字段/列

尝试使用其他存储设备,如avro或parquet(更多buggy),这样您就有了一个模式。然后您可以“查询”这些文件并将其数据导出到RDBMS中

然而,这种支持似乎有点缺陷/失效,只有使用Kite或sqoop(内部使用Kite)创建文件时才能正常工作


我使用
codegen
工具生成可以写入SequenceFile的类:

sqoop/bin/sqoop-codegen --connect jdbc://sqlserver://... --table MyTable --class-name my.package.name.ClassForMyTable --outdir ./out/
然后我就可以使用Sqoop阅读这些内容,使用批量设置导出。但表现非常糟糕。最后,我只编写了简单的类似CSV的文本文件,可通过BCP工具导入,而Sqoop花了数小时,只需几分钟即可完成