我正在使用Hadoop + Cassandra。我使用setInputSplitSize(1000)来不重载映射器(并从堆内存中接收),默认为64K。总之,我只有2M线要处理。实际上每个拆分应该是~1000行。
问题是一些映射器仍然接收64K行,我不知道为什么。通常有2-3个映射器,状态为4000%64000%而不是100%。当我检查日志时,我发现处理了40K-64K行。它没有崩溃或内存不足,但这2-3个任务在处理过程中开始,并在所有其他任务完成后继续2-3个小时。
这是正常行为吗?我该怎么做才能使分割尺寸变得坚固?
提前谢谢!
答案 0 :(得分:1)
您使用的是什么版本的Cassandra?如果不是0.7.8或0.8.4,请先尝试升级。
如果您仍然看到此行为,请在https://issues.apache.org/jira/browse/CASSANDRA上创建错误报告。