Studi Kasus (Run Kode Program)

4.5 Studi Kasus (Run Kode Program)

Running Code Program Pada Hadoop Single/Multi Node Cluster Pada Linux:

- Klasifikasi: NB, KNN - Clustering: K-Means - WordCount: Load+Simpan Hasil di HDFS Folder (Pert. Ke-

12-13) - WordCount: Load+Simpan Hasil di NoSQL (MongoDB) - Movie Ratings: Load di HDFS Folder+Simpan Hasil di

NoSQL (MongoDB)

4.5.1 Klasifikasi: NB dengan Terminal

1. Siapkan semua

(dari algoritma Naive_Bayes_Classifier_MapReduce,

file

*.java

kode: https://goo.gl/CEdr2R ) untuk dicompile ke *.jar:

link

Gambar 4.77 File *.java dari Algoritma Naive_Bayes_Classifier_MapReduce

cek pada setiap file *.java tersebut, apakah terdapat package atau tidak

2. Jika tidak terdapat package, langsung file *.java tersebut dicopy-paste ke folder /usr/local/hadoop

Gambar 4.78 Folder /usr/local/hadoop

NBCDriver.java

NBCMap.java

NBCReduce.java

3. Jika ada

misal “package comratingbymovies.nidos;”,

package- nya,

maka “comratingbymovies.nidos” masing-masing akan menjadi folder “comratingbymovies”, lalu “nidos”.

RatingCounterByMovieMongo.java

package comratingbymovies.nidos; import org.apache.hadoop.conf.Configuration; ..... ... public class RatingCounterByMovieMongo extends Configured implements Tool{

public int run(String[] args) throws Exception { .... ..

System.exit(res); }

Source Code 4.39 RatingCounterByMovieMongo.java

4. Maka di folder “/usr/local/hadoop”, akan ada folder “comratingbymovies/nidos” yang berisi file

Gambar 4.79 File *.java “RatingCounterByMovieMongo.java”, dan file *.java

lainnya yang memang memiliki package yang sama.

5. Jika pada file *.java tidak ada package-nya, maka di folder “/usr/local/hadoop”, akan langsung diisi dengan semua file

*.java tersebut

Copy-Paste

Gambar 4.80 File *.java pada Folder Hadoop

6. Lakukan perintah (Membuat file *.class): nidos@master:/usr/local/hadoop$ bin/hdfs

com.sun.tools.javac.Main *.java Note: NBCDriver.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details.

Source Code 4.40 File *.class

Gambar 4.81 File *.class pada Folder Hadoop

7. Lakukan perintah (Membuat file *.class  *.jar): nidos@master:/usr/local/hadoop$ bin/hdfs

com.sun.tools.javac.Main *.java Note: NBCDriver.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details.

Atau bisa dengan nidos@master:/usr/local/hadoop$ bin/hdfs com.sun.tools.javac.Main - Xlint:deprecation *.java nidos@master:/usr/local/hadoop$ jar cf NB.jar *.class NBCDriver.java:16: warning: [deprecation] Job(Configuration) in Job has been depre- cated

Job job = new Job(conf);

1 warning Buat folder HDFS, “nb” dan “input”

nidos@master:/usr/local/hadoop$ bin/hdfs dfs -mkdir /user/nidos/nb nidos@master:/usr/local/hadoop$ bin/hdfs dfs -mkdir /user/nidos/input

-copyFromLocal, misal file“1.txt” ada difolder “/home/nidos/Desktop/kode/Naive_Bayes_Clas sifier_MapReduce/input”  “1.txt” sebagai data training nidos@master:/usr/local/hadoop$ bin/hadoop jar NB.jar NBCDriver Urgent,Yes,Yes /user/nidos/nb/input/1.txt /user/nidos/nb/output

Source Code 4.41 Membuat file *.class  *.jar

8. Hasil 1 of 2:

Gambar 4.82 Hasill 1 of 2

9. Hasil 2 of 2:

Gambar 4.83 Hasil 2 of 2

4.5.2 Klasifikasi: NB dengan Eclipse

- Tampilan NBbyArgument

Eclipse, link kode: “https://goo.gl/QhQ1nr”

pada

Gambar 4.84 NBbyArgument pada Eclipse

- Pada “Referenced Libraries” list file jar “https://goo.gl/zZm21m”: /usr/local/hadoop/share/hadoop/common/hadoop-common-

2.7.3.jar /usr/local/hadoop/share/hadoop/common/hadoop-common- 2.7.3-tests.jar /usr/local/hadoop/share/hadoop/common/hadoop-nfs- 2.7.3.jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop- mapreduce-client-app-2.7.3.jar . . /usr/local/hadoop/share/hadoop/common/lib/xz-1.0.jar /usr/local/hadoop/share/hadoop/common/lib/zookeeper- 3.4.6.jar

- Running “NBbyArgument”: Pada NBCDriver.java terdapat “args[0], args[1],

args[2]”

Gambar 4.85 Running “NBbyArgument” ke-1

- Running “NBbyArgument”:

Klik Kanan Project “NBbyArgument”, Klik “Run As”, Klik “RunConfigurations..”

Gambar 4.86 Running “NBbyArgument” ke-2

- Running “NBbyArgument”:

Pada Java Application, jika belum ada “NB”, bisa dibuat dengan klik Buat nama, misal ”NB”, lalu pada “MainClass” isikan “org.myhadoop.trainings.NBCDriver”

Gambar 4.87 Running “NBbyArgument” ke-3

- Running “NBbyArgument”: Dan pada Tab “Arguments” isikan “Urgent,Yes,Yes hdfs://localhost:9000/user/hduser/nb/input/1.txt

hdfs://localhost:9000/user/hduser/nb/output2”

Gambar 4.88 Running “NBbyArgument” ke-4

- Running “NBbyArgument”: hdfs://localhost:9000/user/hduser/nb/ output2 ”

Jika sudah digunakan, ketika di klik “Run” akan muncul error seperti berikut:

“ Output directory hdfs://localhost:9000/user/hduser/nb/output2 already

exists ”

Gambar 4.89 Running “NBbyArgument” ke-5

- Running “NBbyArgument”: args[2] =

hdfs://localhost:9000/user/hduser/nb/output3 Klik Apply, Klik Run

Gambar 4.90 Running “NBbyArgument” ke-6

- Running “NBbyArgument”: args[2] =

hdfs://localhost:9000/user/hduser/nb/ output3 Klik Apply, Klik Run, berikut tampilan jika berhasil dijalankan

Gambar 4.91 Running “NBbyArgument” ke-7

- Running “NBbyArgument”: args[2] =

hdfs://localhost:9000/user/hduser/nb/ output3 Klik Apply, Klik Run, berikut tampilan jika berhasil dijalankan & hasil klasifikasinya

Gambar 4.92 Running “NBbyArgument” ke-8

- Tampilan NBtanpaArgument

Eclipse, link kode: “https://goo.gl/ofBqKg”

di

Kode yang diubah: conf.set("test_input", args[0]);  conf.set("test_input", "Urgent,Yes,Yes");

FileInputFormat.setInputPaths(job, new Path(args[1]));  FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/user/hduser/nb/input/1.txt"));

FileOutputFormat.setOutputPath(job, new Path(args[2]));  FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/user/hduser/nb/output4"));

Gambar 4.93 Running “NBtanpaArgument” ke-1

- Runnin g “NBtanpaArgument”: Set “Run Configuration”, klik Apply, klik Run

Gambar 4.94 Running “NBtanpaArgument” ke-2

- Running “NBtanpaArgument”: Hasil “Run Configuration”, klik Apply, klik Run

Gambar 4.95 Running “NBtanpaArgument” ke-3

- Running “NBtanpaArgument”: Hasil “Run Configuration”, klik Apply, klik Run, dan

hasil klasifikasinya

Gambar 4.96 Running “NBtanpaArgument” ke-4

4.5.3 Clustering: K-Means

1. Siapkan semua file *.java (dari algoritma K-Means, link kode: https://goo.gl/N0QjY8 ) untuk dicompile ke *.jar:

Gambar 4.97 File *.java dari Algoritma K-Means

dalam folder “mapreduce”, semua file java-nya terdapat package “com. clustering.mapreduce”, dan dalam

folder “model”, semua file java-nya terdapat package “com.clustering.model”, jadi copy paste-nya ke folder “/usr/local/hadoop” mulai dari folder “com”

2. Jika pada file *.java yang ada package-nya sesuai penjelasan sebelumnya, maka di folder “/usr/local/hadoop”, akan

langsung diisi dengan folder “com” tersebut

Gambar 4.98 Folder Com

3. Lakukan perintah (Membuat file *.class): 3. Lakukan perintah (Membuat file *.class):

Source Code 4.42 Membuat File *.class Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details.

Gambar 4.99 File *.class

nidos@master:/usr/local/hadoop$ jar

cf KMeans.jar com/clustering/mapreduce/*.class com/clustering/model/*.class

Gambar 4.100 File KMeans.jar

Dimana: nidos@master:/usr/local/hadoop$ bin/hadoop jar

KMeans.jar com/clustering/mapreduce/KmeansClusteringJob sebagai main class

4. Hasil 1 of 2:

Gambar 4.101 Hasil 1 of 2

5. Siapkan semua file *.java (dari algoritma K-Means, link kode: https://goo.gl/N0QjY8 ) untuk dicompile ke *.jar:

Gambar 4.102 Folder mapreduce dan model dalam folder “mapreduce”, semua file java-nya terdapat

package “com. clustering.mapreduce”, dan dalam folder “model”, semua file java-nya terdapat package “com.clustering.model”, jadi copy paste-nya ke folder “/usr/local/hadoop” mulai dari folder “com”

6. Jika pada file *.java yang ada package-nya sesuai penjelasan sebelumnya, maka di folder “/usr/local/hadoop”, akan

langsung diisi dengan folde r “com” tersebut

Gambar 4.103 Folder com dalam folder hadoop

7. Lakukan perintah (Membuat file *.class):

nidos@master:/usr/local/hadoop$ bin/hdfs com.sun.tools.javac.Main com/clustering/mapreduce/*.java com/clustering/model/*.java Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details.

Source Code 4.43 Membuat File *.class

Gambar 4.104 File *.class

8. Lakukan perintah (Membuat file *.class  *.jar): 8. Lakukan perintah (Membuat file *.class  *.jar):

cf KMeans.jar com/clustering/mapreduce/*.class com/clustering/model/*.class

Source Code 4.44 Perintah Membuat file *.class  *.jar

Gambar 4.105 File KMeans.jar

9. Hasil 1 of 2:

Gambar 4.106 Hasil 1 of 2

10. Hasil 2 of 2:

Gambar 4.107 Hasil 2 of 2