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