如何实现servlet将作业提交给Hadoop 2.6.0集群

时间:2015-05-24 17:50:28

标签: java servlets hadoop

我正在尝试运行一个servlet(QueryServlet) - 使用Tomcat 8-将一个名为“ArqOnHadoop2”的作业提交给hadoop 2.6.0 ......最后一个是使用/ usr / local中的单个节点设置来配置的夹。 如果我从命令行启动它,这项工作有效,但是,当我尝试从netbeans执行以下代码时,我收到“HTTP状态500 - 无法初始化群集。请检查您的配置mapreduce.framework.name和相应的服务器地址。 “

Configuration config = new Configuration();
config.addResource(new Path("/usr/local/hadoop-2.6.0/etc/hadoop/core-site.xml"));
config.addResource(new Path("/usr/local/hadoop-2.6.0/etc/hadoop/hdfs-site.xml"));
config.addResource(new Path("/usr/local/hadoop-2.6.0/etc/hadoop/yarn-site.xml"));
config.addResource(new Path("/usr/local/hadoop-2.6.0/etc/hadoop/mapred-site.xml"));

config.set("fs.hdfs.impl", org.apache.hadoop.hdfs.DistributedFileSystem.class.getName());            
config.set("yarn.resourcemanager.address","master:8032");
config.set("mapreduce.framework.name","yarn");
config.set("fs.defaultFS","hdfs://master:9000");

//input query parameter as string
config.set(ArqReducerConstants.MY_QUERY,args[0]);

Job job = Job.getInstance(config);
job.setJarByClass(QueryServlet.class);
//input number of lines for mapper parameter as int, used to reduce number of splits and run map() method quickly
String N=args[4];
int n=Integer.parseInt(N);
job.getConfiguration().setInt(NLineInputFormat.LINES_PER_MAP, n);

job.setMapperClass(MapperDoesNothing.class);
job.setMapOutputKeyClass(NullWritable.class);
job.setMapOutputValueClass(TripleWritable.class);

job.setReducerClass(QueryReducer.class);

job.setInputFormatClass( BlockedNTriplesInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
String in="hdfs://master:9000"+args[1];
String out="hdfs://master:9000"+args[2];
//input and output paths parameters
FileInputFormat.setInputPaths(job, new Path(in));
FileOutputFormat.setOutputPath(job, new Path(out));

job.waitForCompletion(true);

//其中args只是带有一些输入参数的String数组的名称..

hadoop或.xml文件没有问题; 权限没有问题,因为我在hdfs-site.xml中禁用了它:dfs.permission.enables = false; 我的hadoop文件夹的权限也没有问题因为我使用了chmod -R 777;

那么......我的项目错过了什么来获得目标?我需要帮助......

提前致谢, 门。

0 个答案:

没有答案