Ubuntu配置java/hadoop环境变量以及运行hadoop的helloworld实例

来源:互联网 发布:系统重装软件哪个好 编辑:程序博客网 时间:2024/05/17 04:06

Ubuntu配置java/hadoop环境变量以及运行hadoop的helloworld实例

标签(空格分隔): 安装配置 hadoop


配置JAVA_HOMEexport JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:JAVAHOME/lib:{JRE_HOME}/lib
export PATH=JAVAHOME/bin:PATH
java -version
配置HADOOP_HOME
export HADOOP_HOME=/home/latham/hadoop-2.7.4
export PATH=JAVAHOME/bin:HADOOP_HOME/bin:$PATH

三个文件分别为WordMapper/WordReducer/WordMain

package hadoop.helloword;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.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.hadoop.util.GenericOptionsParser;public class WordMain {    public static void main(String[] args) throws Exception {        Configuration conf = new Configuration();        String[] otherArgs = new GenericOptionsParser(conf, args)                .getRemainingArgs();        if (otherArgs.length != 2) {            System.out.println("Usage:wordcount<in> <out>");            System.exit(2);        }        Job job = new Job(conf, "word count");        job.setJarByClass(WordMain.class);        job.setMapperClass(WordMapper.class);        job.setCombinerClass(WordReducer.class);        job.setReducerClass(WordReducer.class);        job.setOutputKeyClass(Text.class);        job.setOutputValueClass(IntWritable.class);        FileInputFormat.addInputPath(job, new Path(otherArgs[0]));        FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));        System.exit(job.waitForCompletion(true) ? 0 : 1);    }}
package hadoop.helloword;import java.io.IOException;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Reducer;public class WordReducer 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);    }}
package hadoop.helloword;import java.io.IOException;import java.util.StringTokenizer;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Mapper;public class WordMapper 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);        }    }}

需要设置的是输入文件和输出文件的本地信息,下拉后EditConfiguration…中输入
下拉后EditConfiguration...中输入
运行即可得到结果

原创粉丝点击