执行时间随着地图作业的增加而增加

时间:2013-04-29 16:57:57

标签: hadoop mapreduce hbase sqoop

我正在尝试使用sqoop import将一些数据从MySQL迁移到HBase。这是我正在使用的命令:

sqoop import --connect jdbc:mysql://hostname/database --username username -P
--query 'SELECT * FROM logs WHERE $CONDITIONS' --split-by log_id -m 4
--hbase-table logs --column-family cf --hbase-create-table

问题是当没有增加地图时,执行时间会增加。由于并行处理是通过增加映射器完成的,因此理想情况下执行时间实际上应该减少。

这是模式

No. of Maps     Time(in sec)
    1               16
    2               20
    4               29
    8               51
    10              55
    16              82
    25              122


从上面可以看出,只有一个映射器存在时间最短。任何想法可能是什么原因?任何帮助将受到高度赞赏 我的集群由一个名称节点和两个数据节点组成。

1 个答案:

答案 0 :(得分:1)

当同时运行多个查询时,可能是mySQL上的负载。此外,从总运行时间(16秒)开始,您导入非常小的数据,因此添加更多映射会增加开销,但每个映射仅处理一个小数据段,因此开销不会偏移。最后你没有多说你的集群(我猜测它是一个小测试),所以如果你分配更多的映射器而不是插槽映射器将等到有空闲插槽增加时间更多