Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Map Reduce Example

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

NIM : 16.77.

0136
Nama : Jajang Nurjaman

Matakuliah : Big Data


Dosen : Dr. Rizal Fathoni A., M.Kom

Subject : Tugas Big Data - Percobaan Map Reduce Example : Word Count

OS Version : Windows 10 Sub System Ubuntu 16.04

Java : java-8-openjdk-amd64
Hadoop : hadoop-2.8.1

Source Code Class yang digunakan dalam percobaan ini adalah


sebagai berikut :

package org.apache.hadoop.examples;
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;
import org.apache.hadoop.util.GenericOptionsParser;

public class WordCount {

public static class TokenizerMapper


extends Mapper{

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 {
private IntWritable result = new IntWritable();

public void reduce(Text key, Iterable 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();
String[] otherArgs = new GenericOptionsParser(conf,
args).getRemainingArgs();
if (otherArgs.length < 2) {
System.err.println("Usage: wordcount [...] ");
System.exit(2);
}
Job job = Job.getInstance(conf, "word count");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
for (int i = 0; i < otherArgs.length - 1; ++i) {
FileInputFormat.addInputPath(job, new Path(otherArgs[i]));
}
FileOutputFormat.setOutputPath(job,
new Path(otherArgs[otherArgs.length - 1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}

Class diatas merupakan contoh bawaan ketika melakukan instalasi Hadoop. Letak contoh tersebut
pada folder /usr/local/hadoop/share/hadoop/mapreduce/ hadoop-mapreduce-
examples-2.8.1.jar percobaan yang dilakukan adalah pada class WordCount.java

Class WordCount.java digunakan untuk menghitung jumlah kata yang ada pda suatu file untuk
melakukan percobaan dilakukan beberapa langkah yaitu :

1. Buat file sebuah folder dengan cara :


jajangtea@DESKTOP-CDURNQ9:~$ mkdir jumlahKata
2. Masuk kedalam folder jumlahKata dengan perintah :
cd jumlahKata
3. Didalam folder tersebut Buat file dengan nama oop.txt :
jajangtea@DESKTOP-CDURNQ9:~/jumlahKata $
jajangtea@DESKTOP-CDURNQ9:~/jumlahKata $mkdir input
jajangtea@DESKTOP-CDURNQ9:~/jumlahKata/input$cd input
jajangtea@DESKTOP-CDURNQ9:~/jumlahKata/input$sudo nano oop.txt

kemudian diisi kalimat sebagai berikut :


4. Setelah itu Ctrl+X kemudian jalankan perintah :

Keterangan gambar diatas adalah :


 jajangtea@DESKTOP-CDURNQ9:~$ /usr/local/hadoop/bin/hadoop
jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-
mapreduce-examples-2.8.1.jar adalah letak dari example library yang telah
tersedia di Hadoop
 a adalah salah satu class yang ada pada hadoop-mapreduce-examples-2.8.1.jar
 /home/jajangtea/jumlahKata/input/oop.txt adalah letak file yang akan
dieksekusi
 /home/jajangtea/jumlahKata/output adalah letak output setelah mapreduce
wordcount dijalankan

Setelah ditekan enter maka akan muncul seperti ini pada baris akhir yang menyatakan fungsi
mapreduce berhasil dijalankan
Untuk mengecek hasil jalankan perintah berikut :
jajangtea@DESKTOP-CDURNQ9:~$/usr/local/hadoop/bin/hadoop dfs -
cat /home/jajangtea/jumlahKata/output/*
Output directory pada nautilus explorer :

You might also like