蜂巢:启动了太多的地图制作者

时间:2016-01-06 10:03:12

标签: hadoop mapreduce hive cloudera cloudera-cdh

我正在使用cdh 5.4.9和hive版本1.1.0

我想将外部表中的数据插入到非外部表中。

类似这样的事情

INSERT INTO TABLE mytable SELECT * FROM mytable_tmp;

mytable_tmp的数据大小约为10 MB。

hdfs块大小为128 MB。

因此预期的映射器数量为1。

然而,它显示了829个映射器,这太大了。

hive抛出了这样的异常。

Error: java.lang.RuntimeException: Failed to load plan: hdfs://host:8020/tmp/hive/me/ea3b1570-db8a-4b55-a513-e3db5c4dae8b/hive_2016-01-06_17-51-25_558_6497985511241352149-1/-mr-10004/4a3f7801-fe47-4f23-9012-3a6b7a50d758/map.xml: org.apache.hive.com.esotericsoftware.kryo.KryoException: Buffer underflow.
    at org.apache.hadoop.hive.ql.exec.Utilities.getBaseWork(Utilities.java:450)
    at org.apache.hadoop.hive.ql.exec.Utilities.getMapWork(Utilities.java:296)
    at org.apache.hadoop.hive.ql.io.HiveInputFormat.init(HiveInputFormat.java:268)
    at org.apache.hadoop.hive.ql.io.HiveInputFormat.getRecordReader(HiveInputFormat.java:234)
    at org.apache.hadoop.hive.ql.io.CombineHiveInputFormat.getRecordReader(CombineHiveInputFormat.java:701)
    at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.<init>(MapTask.java:169)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:432)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: org.apache.hive.com.esotericsoftware.kryo.KryoException: Buffer underflow.
    at org.apache.hive.com.esotericsoftware.kryo.io.Input.require(Input.java:181)
    at org.apache.hive.com.esotericsoftware.kryo.io.Input.readBoolean(Input.java:783)
    at org.apache.hive.com.esotericsoftware.kryo.serializers.UnsafeCacheFields$UnsafeBooleanField.read(UnsafeCacheFields.java:120)
    at org.apache.hive.com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:507)
    at org.apache.hive.com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:672)
    at org.apache.hadoop.hive.ql.exec.Utilities.deserializeObjectByKryo(Utilities.java:1069)
    at org.apache.hadoop.hive.ql.exec.Utilities.deserializePlan(Utilities.java:960)
    at org.apache.hadoop.hive.ql.exec.Utilities.deserializePlan(Utilities.java:974)
    at org.apache.hadoop.hive.ql.exec.Utilities.getBaseWork(Utilities.java:416)
    ... 12 more

我认为某些配置存在错误,但我无法弄明白。

有什么建议吗?

谢谢!

0 个答案:

没有答案