我正在尝试使用sqoop导入从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
问题是,当没有增加映射时,执行时间会增加。由于并行处理是随着映射器的增加而完成的,所以理想情况下,执行时间实际上应该减少。
模式如下
<>之前不。地图时间(秒)1 162 204 29日8 5110 5516 82年25 122年之前从上面可以看出,当只有一个映射器时,它花费的时间最少。知道是什么原因吗?任何帮助都将非常感激。
我的集群由一个名称节点和两个数据节点组成。
可能是同时运行多个查询时mySQL的负载。此外,从总运行时间(16秒)来看,你导入的数据非常小,所以添加更多的地图会增加开销,但每个地图只处理一小段数据,所以开销不会被抵消。最后,您没有详细说明您的集群(我猜是一个小型测试集群),因此,如果您分配的映射器比插槽多,映射器将等待,直到有空闲插槽,从而增加时间更多