Anda di halaman 1dari 15

BIG DATA IKS335

TEKNIK INFORMATIKA
UNIVERSITAS TRISAKTI

MODUL 2 CLOUDERA DISTRIBUTION


Implementasi MapReduce Program Penghitung Kata (WordCount)
pada Cloudera Distribution

A. Instalasi Cloudera pada Virtualbox


Persiapkan 2 software berikut ini :

 Modul ini menggunakan Oracle VirtualBox yang dapat diunduh melalui link berikut
https://download.virtualbox.org/virtualbox/6.1.12/VirtualBox-6.1.12-139181-Win.exe
 Hadoop Distribution (Cloudera) dapat diunduh melalui link berikut :
https://downloads.cloudera.com/demo_vm/virtualbox/cloudera-quickstart-vm-5.12.0-
0-virtualbox.zip

B. Operasi File pada Cloudera HDFS


HDFS merupakan sistem penyimpanan terdistribusi, yang melakukan proses pemecahan file
besar menjadi bagian-bagian lebih kecil kemudian didistribusikan ke cluster-cluster dari komputer.
Cluster ini biasanya terdiri dari banyak node atau komputer/server. Setiap node di dalam cluster ini
harus terinstal Hadoop untuk bisa berfungsi. Sebagai distributed file system, HDFS berguna untuk
menangani data berukuran raksasa yang disimpan tersebar dalam cluster-nya [1].
Hampir semua aktifitas operasi file pada kegiatan praktikum ini membutuhkan akses
menggunakan Terminal
1. Melihat isi direktori HDFS :
hdfs dfs -ls /

2. Untuk melihat lebih jauh, misal direktori user :


hdfs dfs -ls /user
Setiap tools seperti hive, spark, oozie juga mempunyai direktorinya masing-masing. Jadi,
sebenarnya saat mengakses direktori user, kita sudah masuk ke HDFS.

3. Pekerjaan selanjutnya membuat direktori wordcount, masukan dan keluaran tempat Job
penghitung jumlah kata Hadoop bekerja. Folder local directory HDFS wordcount adalah
tempat data/file masukan dan juga tempat hasil/keluaran pemrosesan data. Perintah
membuat folder wordcount di direktori user/cloudera :
hdfs dfs -mkdir /user/cloudera/wordcount
hdfs dfs -mkdir /user/cloudera/wordcount/masukan
hdfs dfs -mkdir /user/cloudera/wordcount/keluaran

4. Berikutnya buat file dengan nama input.txt, dengan perintah cat> pada direktori lokal :
cat> input.txt
5. Pindahkan file input.txt dari direktori lokal ke direktori /user/cloudera/wordcount/masukan
hdfs dfs -put input.txt /user/cloudera/wordcount/masukan

C. Implementasi MapReduce Pada Program Penghitung Kata WordCount


Map Reduce adalah model komputasi pada sistem terdistribusi dalam rangka mendukung
aplikasi Big Data. Diberi nama MapReduce dikarenakan terdiri atas dua proses utama yaitu map
dan reduce. Program Word Count merupakan salah satu implementasi dari Map Reduce :

MapReduce Penghitungn Kata (WordCount)

1. Buka aplikasi Eclipse (IDE Java) pada cloudera desktop.

2. Buat Project wordcount

File > New > Java Project. Isi nama project : WordCount lalu Next.
3. Pada tab Libraries pilih Add External JARs.

4. Masuk ke File System > usr > lib > hadoop.


5. Pilih semua file berformat .jar, Lalu OK.
6. Pilih kembali Add External JARs, Masuk ke File System > usr > lib > hadoop>client.

7. Pilih semua file berformat .jar, lalu OK.

8. Setelah Library Hadoop dan Client selesai ditambahkan, lalu Finish.


9. Buat class WordCount pada project WordCount yang sudah dibuat, dengan klik kanan
pada src project WordCount. Pilih New>class

10. Tulis nama class : WordCount, lalu Finish

11. Tulis script program berikut pada WordCount.java.


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.mapreduce.*;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
public class WordCount {

public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> {


private final static IntWritable one = new IntWritable(1);
private Text word = new Text();

public void map(LongWritable key, Text value, Context context) throws IOException,
InterruptedException {
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
context.write(word, one);
}
}
}

public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> {


public void reduce(Text key, Iterable<IntWritable> values, Context context)

throws IOException, InterruptedException {


int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}

context.write(key, new IntWritable(sum));


}
}

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


Configuration conf = new Configuration();

@SuppressWarnings(“deprecation”)
Job job = new Job(conf, “wordcount”);
job.setJarByClass(WordCount.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
job.setMapperClass(Map.class);
job.setReducerClass(Reduce.class);
job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);

FileInputFormat.addInputPath(job, new Path(args[0]));


FileOutputFormat.setOutputPath(job, new Path(args[1]));
job.waitForCompletion(true);
}
}

WordCount.java

Pada script diatas terdapat method Mapper dan Reducer, Map untuk menghitung pattern
kata misal berapa kali kata X muncul pada file, dan pada method Reduce berfungsi untuk
merangkum hasil.
12. Mengeksport script menjadi format .jar, dengan memilih File > export > java > JAR
file, lalu Next.

13. Centang project WordCount serta .classpath dan .project, Pilih Browse untuk mengatur
nama dan lokasi hasil export .jar.
14. Pilih destination filenya di home/cloudera, dan berinama WordCount.jar, lalu OK.

15. Jika semua sudah sesuai pilih Finish untuk mengexport .jar.
16. Jika ada warning OK saja.

17. Check pada folder Cloudera Home maka akan ada file baru WordCount.jar.

18. Menjalankan WordCount.jar untuk menghitung jumlah kata pada input.txt yang
tersimpan di HDFS yang sudah dilakukan sebelumnya, dengan perintah :
hadoop jar WordCount.jar WordCount
/user/cloudera/wordcount/masukan/input.txt
/user/cloudera/wordcount/keluaran/output_1

Hasil dari program WordCount.jar disimpan difolder baru yang diberi nama output_1.
19. Process MapReduce

20. Hasil MapReduce bisa dilihat dengan melihat isi folder output_1 :
hdfs dfs -ls /user/cloudera/wordcount/keluaran/output_1
21. Hasil komputasi algoritme MapReduce disimpan di file part-r-00000, untuk melihat
isinya menggunakan perintah :
hdfs dfs -cat /user/cloudera/wordcount/keluaran/output_1/part-r-
00000

Dari gambar diatas, program MapReduce Penghitung Kata (WordCount) menghitung jumlah
kata pada file input.txt secara case sensitive.

Anda mungkin juga menyukai