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