我正在开发基于 Hive 的 ETL 应用程序。一项功能要求是我们将 Hive 中的一些数据导出到 Teradata(这是正在使用的现有解决方案),反之亦然。我的问题与出口有关。
我正在使用带有 Teradata 连接器的 sqoop 来导出 HDFS 文件。有些文件虽然有一百 K 条记录,但非常小 ~ 7MB。所以 sqoop 在导出时只使用一个映射器(我指定了 -m 选项,但它不起作用)。这成为一个相当缓慢的过程。
有没有办法在集群中的多个映射器之间划分单个文件(小于 HDFS 块大小)中的数据?
(由于 sqoop 在映射器之间划分行,因此导入速度很快,这已成为一个比较点,我必须使导出工作更快)
编辑:- 软件版本:
Hadoop:MapR M3 - hadoop 0.20
Sqoop:1.4.2
Teradata Connector for Sqoop:1.0.5