Get the App
SLTechnology News&Howtos  ›  Internet Technology  › 

Hadoop practice (2) Mapreduce programming

Shulou Source: shulou.com Published: 2022-06-03 04:20:43 10月06日 Update

Mapreduce programming, this paper takes WordCount as an example to realize file character statistics.

Build a java project in eclipse and introduce jar in the hadoop lib directory and jar in the hadoop home directory.

Create a new WordCount class:

Package org.scf.wordcount

Import java.io.IOException

Import java.util.*

Import org.apache.hadoop.fs.Path

Import org.apache.hadoop.conf.*

Import org.apache.hadoop.io.*

Import org.apache.hadoop.mapred.*

Import org.apache.hadoop.util.*

Public class WordCount {

Public static class Map extends MapReduceBase implements Mapper {

Private final static IntWritable one = new IntWritable (1)

Private Text word = new Text ()

Public void map (LongWritable key, Text value, OutputCollector output, Reporter reporter) throws IOException {

String line = value.toString ()

StringTokenizer tokenizer = new StringTokenizer (line)

While (tokenizer.hasMoreTokens ()) {

Word.set (tokenizer.nextToken ())

Output.collect (word, one)

}

}

}

Public static class Reduce extends MapReduceBase implements Reducer {

Public void reduce (Text key, Iterator values, OutputCollector output, Reporter reporter) throws IOException {

Int sum = 0

While (values.hasNext ()) {

Sum + = values.next () .get ()

}

Output.collect (key, new IntWritable (sum))

}

}

Public static void main (String [] args) throws Exception {

JobConf conf = new JobConf (WordCount.class)

Conf.setJobName ("wordcount")

Conf.setOutputKeyClass (Text.class)

Conf.setOutputValueClass (IntWritable.class)

Conf.setMapperClass (Map.class)

Conf.setCombinerClass (Reduce.class)

Conf.setReducerClass (Reduce.class)

Conf.setInputFormat (TextInputFormat.class)

Conf.setOutputFormat (TextOutputFormat.class)

FileInputFormat.setInputPaths (conf, new Path (args [0]))

FileOutputFormat.setOutputPath (conf, new Path (args [1]))

JobClient.runJob (conf)

}

}

two。 Compile, run this class

Cd / home/Hadoop/

Mkdir wordcount_classes

Javac-classpath / usr/hadoop-1.0.4/hadoop-core-1.0.4.jar-d / home/Hadoop/wordcount_classes WordCount.java

Jar-cvf / home/Hadoop/wordcount.jar-C / home/Hadoop/wordcount_classes/.

Hadoop dfs-put/ home/Hadoop/test.txt / user/root/wordcount/input/file2

Hadoop dfs-put/ home/Hadoop/test1.txt / user/root/wordcount/input/file3

Hadoop jar / home/Hadoop/wordcount.jar org.scf.wordcount.WordCount / user/root/wordcount/input / user/root/wordcount/output

Hadoop dfs-ls / user/root/wordcount/output

Hadoop dfs-cat / user/root/wordcount/output/part-00000

Tags: Directories programming characters files projects statistics compilation running practice Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno vpn OPPO Reno Redmi Xiaomi MariaDB