我为Nutch 2.3.1
使用Hadoop和Hbase设置了一个小型集群。 hadoop版本是2.7.7,Hbase是0.98。我已经自定义了hadoop作业,现在我必须在驱动程序类中为reducer任务设置内存。我知道,在简单的hadoop MR作业中,您可以使用JobConf
方法setMemoryForReducer
。但是Nutch没有任何可用的选项。就我而言,目前,通过mapred-site.xml
(Hadoop配置)将reducer内存设置为4 GB。但是对于Nutch,我必须加倍。
是否可以通过驱动程序类或nutch-site.xml不更改hadoop conf文件
答案 0 :(得分:0)
最后,我找到了解决方案。 NutchJob
实现了目标。以下是代码段
NutchJob job = NutchJob.getInstance(getConf(), "rankDomain-update");
int reducer_mem = 8192;
String memory = "-Xmx" + (int) (reducer_mem * 0.8)+ "m";
job.getConfiguration().setInt("mapreduce.reduce.memory.mb", reducer_mem);
job.getConfiguration().set("mapreduce.reduce.java.opts", memory );
// rest of code below