Liunx搭建Hadoop集群,找不到NameNode问题分析,以及解决. (hadoop-2.7.4版本,没有进行jre进行重新修改源码)

此文章针对 搭建Hadoop集群搭建之后输入指令找不到NameNode就会非常尴尬,好不容易搭建的集群,最后还是不成功,此时分析步骤;
一: 检查当前日志文件输出log日志是否正常,如果NameNote都没有肯定是报错的.
二: 最大的一部分可能就是踩坑了,这个坑非常好踩.
1.1: 查看当前配置文件,是否正常,以及关联的子服务器,配置是否一样.
1.2: 查看保存文件的路径,也就是如图所示,是否有此文件夹(注意不能mkdir创建文件夹,Hadoop会根据你指定的文件目录,自动生成文件夹,此时如果你创建就会 existfileexcption) 所以给一个虚拟路径,不用管,根据图中内容所示.在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

WordCountMain的代码格式与Java编程规范无异,以下是一个示例: ```java import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; public class WordCountMain { public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable>{ private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(Object key, Text value, Context context ) throws IOException, InterruptedException { StringTokenizer itr = new StringTokenizer(value.toString()); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); context.write(word, one); } } } public static class IntSumReducer extends Reducer<Text,IntWritable,Text,IntWritable> { private IntWritable result = new IntWritable(); public void reduce(Text key, Iterable<IntWritable> values, Context context ) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } result.set(sum); context.write(key, result); } } public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = Job.getInstance(conf, "word count"); job.setJarByClass(WordCountMain.class); job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(IntSumReducer.class); job.setReducerClass(IntSumReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); System.exit(job.waitForCompletion(true) ? 0 : 1); } } ``` 在这个示例代码中,我们定义了两个类:TokenizerMapper和IntSumReducer。TokenizerMapper是一个Mapper类,用于将输入文件中的数据拆分成单词,并将单词作为key,将数字1作为value输出。IntSumReducer是一个Reducer类,用于将相同的单词合并,并将它们的数量相加,输出最终结果。 在main函数中,我们设置了MapReduce作业的各种参数,包括输入路径、输出路径、Mapper和Reducer类等。最后,我们使用System.exit来退出程序,并将MapReduce作业的状态作为参数传递给它。如果作业成功完成,返回0;否则,返回1。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值