从hdfs提高sqoop导出的效率

时间:2014-12-02 10:49:12

标签: hadoop sqoop vertica mapper

我正在尝试使用sqoop 将数据从存储在hdfs中的文件导出到vertica。对于大约10k的数据,文件在几分钟内就会被加载。但是当我尝试运行数据时,它会在15分钟左右的时间内加载约.5%。我试图增加 映射器的数量 ,但它们没有任何提高效率的目的。即使设置 块大小 来增加映射器的数量,也不会增加数量。

请帮忙。

谢谢!

3 个答案:

答案 0 :(得分:1)

在使用批量导出时,请尝试使用以下属性增加每个事务的记录和每个语句的记录参数:

sqoop.export.records.per.statement :属性将在一个insert语句中聚合多行。

sqoop.export.records.per.transaction:每个事务将发出多少个插入语句

我希望这些肯定会解决这个问题。

答案 1 :(得分:0)

大多数MPP / RDBMS都有sqoop连接器来利用并行性并提高HDFS和MPP / RDBMS之间数据传输的效率。然而,似乎vertica采用了这种方法:http://www.vertica.com/2012/07/05/teaching-the-elephant-new-tricks/ https://github.com/vertica/Vertica-Hadoop-Connector

答案 2 :(得分:0)

这是一个"宽"数据集?它可能是一个sqoop错误https://issues.apache.org/jira/browse/SQOOP-2920如果列数非常高(数百),sqoop开始窒息(在cpu上非常高)。当字段数量较少时,通常会有其他方式 - 当sqoop感到无聊且rdbms系统无法跟上时。

相关问题