我一直认为如果你不具体说明 -m
a中的属性 sqoop import
,默认情况下,将创建4个Map器。但是,在我的例子中,6个Map器正在创建。有人能解释一下吗?这是sqoop命令:
sqoop import --connect jdbc:mysql://localhost/cloudera --target-dir hdfsout --split-by employeename --username root --password XXXXX --table employee
employee表有3列。员工姓名、年龄和入职日期。在hdfs中,还有6个Map部件文件0001、0002。。。。0005已创建。
2条答案
按热度按时间wwtsj6pe1#
4是建议的Map器数量的默认值。
因此,运行squoop命令而不建议使用多个Map器,应该相当于运行squoop命令而建议使用4个Map器。
但是,该建议可能会被忽略,如果您不给出建议,您已经可以看到该建议可以被忽略,但是从这里可以看到,如果您指定了数字,该建议也可以被忽略。
20jt8wwn2#
首先,建议对整型列进行拆分。
根据规范,
不能保证sqoop会生成与您在中提到的相同数量的Map器
-m <number of mappers>
有关详细信息,请参见代码。代码的有用部分:如果你使用
--verbose
在查询的末尾。您将看到执行拆分的边界值。如果按整数值拆分,我确信在这种情况下只能运行4个Map器。