使用MapReduce程序查找十大观看次数最多的电影

时间:2018-04-02 07:54:27

标签: mapreduce

在尝试使用MapReduce查找带有名称(升序或降序)的十大观看次数最多的电影时,我收到以下错误。

"Error: java.io.IOException: Unable to initialize any output collector
at org.apache.hadoop.mapred.MapTask.createSortingCollector(MapTask.java:412)
at org.apache.hadoop.mapred.MapTask.access$100(MapTask.java:81)
at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:695)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:767)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)"

我检查了类似的问题,并设置了解决方案mapreduce.task.io.sort.mb&lt; 2048但在我的情况下,这个值被设置为mapreduce.task.io.sort.mb:100。请指导我,我是MapReduce编程的新手。

1 个答案:

答案 0 :(得分:0)

我能够解决这个问题。

实际上,我为Text添加了错误的库。

我添加了com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider.Text;导致此问题的库。后来我用org.apache.hadoop.io.Text进行了更改,现在程序可以工作了。