Selasa, 29 November 2022

Hadoop Wordcount MapReduce Solusi Untuk Menghitung Jumlah Kata

MapReduce adalah bagian dari Hadoop Framework, tool ini berupa aplikasi pemprogaman yang didesain untuk dapat melakukan pemrosesan data dengan jumlah yang sangat besar dengan cara membagi pemrosesan tersebut ke dalam cluster menggunakan paralelisasi dan distribusi otomatis dalam ekosistem Hadoop.

MapReduce terbagi dibagi 2 kata “Mapping” dan “Reduce”, gambaran cara kerjanya kurang lebih macam ini :

Berdasarkan definisi diatas, MapReduce dapat dibagi menjadi beberapa tahap:

1.     Pemecahan data (Splitting). Pada proses ini data masukan yang diberikan oleh pengguna MapReduce (klien) akan dipecah menjadi bagian-bagian yang lebih kecil. Pada kasus Hadoop MapReduce, dalam kondisi ideal, data akan dipecah menjadi beberapa bongkahan berukuran maksimal 128MB.

2.     Mapping. Mapping adalah salah satu tahap terpenting dari MapReduce. Pada fase Mapping, bongkahan data yang telah dipecah akan di proses untuk menghasilkan intermediary key-value pairs. Pada contoh wordcount (Gambar 1) diatas, data yang mengandung “Dear Bear River” akan diproses sehingga menghasilkan pasangan key-value Dear:1, Bear:1, dan River:1. Dalam fase Mapping, bisa jadi ada satu atau lebih mesin pekerja (worker) yang melakukan proses terhadap beberapa bongkahan data yang berbeda. Semakin banyak jumlah mesin atau tingkatan parallelisme yang digunakan, maka durasi pemrosesan seluruh data dapat berjalan jauh lebih cepat.

3.     Pengacakan atau (Shuffling) Fase mapping bisa berjalan di satu atau banyak mesin. Akibatnya, pasangan key-value yang dihasilkan oleh sebuah mapper bisa tersebar di berbagai mesin. Namun, jika pengolahan yang ingin dilakukan adalah perhitungan dengan menggunakan key yang sama, maka data dengan key yang sama harus berada pada mesin yang sama pada fase reduce. Oleh karena itu, sebelum fase reduce, fase shuffling bertugas untuk mengumpulkan satu atau lebih key yang berbeda disebuah mesin tertentu agar aggregasi dapat dilakukan dengan mudah. Pada contoh diatas, seluruh kata Bear yang dihasilkan fase mapping akan berada dalam sebuah mesin yang sama. Begitu juga dengan kata-kata lain.

4.     Reducing. Fase reducing bertugas untuk melakukan aggregasi terhadap seluruh pasangan intermediary key-value dengan key yang sama. Pada gambar diatas, pasangan key-value Bear:1 dan Bear:1 akan diaggregasi oleh reducer sehingga pada akhirnya reducer akan menghasilkan keluaran Bear:2 seperti pada contoh kasus wordcount.

Formats read supported by Hadoop :

  •      Basic file formats: Text format/CSV/JSON, Key-Value Format, Sequence format
  •     Format lain : Avro, Parquet, RC or Row-Columnar format, ORC or Optimized Row Columnar 

      Ok, next setelah kita paham dikit teori tentang MapReduce ini.. kita akan praktek implementasinya, Jalankan Cluster Hadoop yang sudah kita install kemarin hari !

        1. Membuat contoh file text di server master








        atau bisa menggunakan text lain yang berisi banyak kata, seperti berikut : https://www.gutenberg.org/files/5000/5000-8.txt

      2.  Masukan file text tersebut ke dalam HDFS

  • $ hadoop fs -mkdir /testkata
  • $ hadoop fs -put [file] /[folder-hdfs]



3. Jika file sudah berada dalam file-system HDFS kita dapat menjalankan program mapreduce ini, Secara default MapReduce sudah tersedia di dalam Hadoop. Filenya berada di :

“/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar”

Untuk mengunakan aplikasi tersebut dapat menggunakan perintah berikut

$ hadoop jar [alamat-aplikasi] wordcount /[alamat-file-input] [alamat-output]

Jika Proses selsei, lihat pada folder "hasil" akan terdapat dua file seperti gambar dibawah :

Hasil dari wordcount nya dapat dilihat pada file yang nama depannya part, pada kasus ini part-r-00000.

Kita dapat melakukan pengecekan pada isi file tersebut dengan perintah berikut :

$ hadoop fs -cat /[alamat-file-hasil]

Pada kasus WordCount, Fungsi Map memisahkan setiap kata yang terdapat dalam contents untuk menghasilkan pasangan key-value dengan key berupa kata tertentu dengan value 1.

Fungsi Reduce akan menjumlahkan seluruh value yang dimiliki oleh sebuah key. Sehingga pada akhirnya klien bisa mendapatkan jumlah kemunculan setiap kata yang terdapat pada variabel contents .

Oiya, MapReduce tidak hanya bisa Wordcount.. tapi juga bisa melakukan hal berikut :


Mungkin kedepan nya kita bisa menggunakan MapReduce lebih bermanfaat lagi penggunaan nya untuk menganalisa Big Data...

Ok. Sekian tulisan kali ini.

Share:
Dki Jakarta,Indonesia Indonesia