在eclipse中配置好hadoop插件后,编写wordCount程序如下
package hadoop01;
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.LongWritable;
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 WordCountMapReduce {
// step 1: Mapper
public static class WordCountMapper extends
Mapper<LongWritable, Text, Text, IntWritable> {
private Text mapOutputKey = new Text();
private IntWritable mapOutputValue = new IntWritable(1);
@Override
public void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
// line value
String lineValue = value.toString();
// spilt
// String[] strs = lineValue.split(" ");
StringTokenizer stringTokenizer = new StringTokenizer(lineValue);
while (stringTokenizer.hasMoreTokens()) {
// set map output key
mapOutputKey.set(stringTokenizer.nextToken());
// output
context.write(mapOutputKey, mapOutputValue);
}
/**
* // iterator for (String str : strs) {
*
* mapOutputKey.set(str);
*
* context.write(mapOutputKey, mapOutputValue);
*
* }
*/
}
}
// step 2: Reducer

在Windows环境下,使用Eclipse运行Hadoop MapReduce的WordCount程序时,遇到了'Permission denied'的问题。错误表明用户haibozhang没有写入权限。解决方法包括设置HADOOP_USER_NAME环境变量、修改hadoop的hdfs-site.xml配置关闭权限检查、将Windows账号名与Hadoop Linux用户名保持一致,或者通过HDFS命令修改目录权限。四种方法已经验证可行。
最低0.47元/天 解锁文章
1339

被折叠的 条评论
为什么被折叠?



