Streaming Hadoop: Menulis Program MapReduce Hadoop Dengan Python



Posting blog ini di Hadoop Streaming adalah panduan langkah demi langkah untuk belajar menulis program Hadoop MapReduce dengan Python untuk memproses Big Data dalam jumlah besar.

Jumlah data digital yang dihasilkan setiap hari tumbuh secara eksponensial dengan munculnya Media Digital, Internet of Things, dan perkembangan lainnya. Skenario ini menimbulkan tantangan dalam menciptakan alat dan teknologi generasi berikutnya untuk menyimpan dan memanipulasi data ini. Di sinilah Hadoop Streaming masuk! Diberikan di bawah ini adalah grafik yang menggambarkan pertumbuhan data yang dihasilkan setiap tahun di dunia dari tahun 2013. IDC memperkirakan bahwa jumlah data yang dibuat setiap tahun akan mencapai 180 Zettabytes pada tahun 2025!

data-by-2025-hadoop-streaming





Sumber: IDC

IBM menyatakan bahwa, setiap hari, hampir 2,5 triliun byte data dibuat, dengan 90 persen data dunia dibuat dalam dua tahun terakhir! Ini adalah tugas yang menantang untuk menyimpan data dalam jumlah yang begitu besar. Hadoop dapat menangani volume besar data terstruktur dan tidak terstruktur dengan lebih efisien daripada Gudang Data perusahaan tradisional. Ini menyimpan kumpulan data yang sangat besar ini di seluruh kelompok komputer yang terdistribusi. Streaming Hadoop menggunakan kerangka kerja MapReduce yang dapat digunakan untuk menulis aplikasi untuk memproses data dalam jumlah besar.



Karena kerangka kerja MapReduce didasarkan pada Java, Anda mungkin bertanya-tanya bagaimana pengembang dapat mengerjakannya jika dia tidak memiliki pengalaman di Java. Nah, pengembang dapat membuat aplikasi mapper / Reducer menggunakan bahasa pilihan mereka dan tanpa banyak pengetahuan tentang Java, menggunakan Streaming Hadoop daripada beralih ke alat atau teknologi baru seperti Pig and Hive.

Apa itu Streaming Hadoop?

Streaming Hadoop adalah utilitas yang disertakan dengan distribusi Hadoop. Ini dapat digunakan untuk menjalankan program untuk analisis data besar. Streaming Hadoop dapat dilakukan menggunakan bahasa seperti Python, Java, PHP, Scala, Perl, UNIX, dan banyak lagi. Utilitas memungkinkan kita untuk membuat dan menjalankan pekerjaan Map / Reduce dengan eksekusi atau skrip apa pun sebagai mapper dan / atau reducer. Sebagai contoh:

$ HADOOP_HOME / bin / hadoop jar $ HADOOP_HOME / hadoop-streaming.jar



-input myInputDirs

-output myOutputDir

-folder / bin / cat

-reducer / bin / wc

Deskripsi Parameter:

Kode MapReduce Python:

mapper.py #! / usr / bin / python import sys #Word Count Example # input berasal dari input standar STDIN untuk baris di sys.stdin: line = line.strip () #remove di depan dan di belakang spasi kata = line.split ( ) # pisahkan baris menjadi kata-kata dan kembalikan sebagai daftar kata dalam kata-kata: # tulis hasil ke keluaran standar STDOUT print '% s% s'% (word, 1) #Emit the word

reducer.py

#! / usr / bin / python import sys dari operator import itemgetter # menggunakan kamus untuk memetakan kata ke jumlah mereka current_word = Tidak ada current_count = 0 kata = Tidak ada # masukan berasal dari STDIN untuk baris di sys.stdin: line = line.strip () word, count = line.split ('', 1) coba: count = int (count) kecuali ValueError: lanjutkan jika current_word == word: current_count + = count else: if current_word: print '% s% s'% (current_word, current_count) current_count = count current_word = kata jika current_word == kata: print '% s% s'% (current_word, current_count)

Lari:

  1. Buat file dengan konten berikut dan beri nama word.txt.

Kucing singa kancil rusa harimau singa Gajah singa rusa

  1. Salin skrip mapper.py dan reducer.py ke folder yang sama tempat file di atas berada.

  1. Buka terminal dan Cari direktori file tersebut. Perintah: ls: untuk menampilkan semua file di direktoricd: untuk mengubah direktori / folder

cara menginstal hadoop di ubuntu
  1. Lihat konten file.
    Perintah: kucing nama file

> konten mapper.py

perintah: cat mapper.py

> Isi reducer.py

perintah: kucing reducer.py

Kita dapat menjalankan mapper dan reducer pada file lokal (misal: word.txt). Untuk menjalankan Map dan mengurangi pada Hadoop Distributed File System (HDFS), kita membutuhkan file Stoples Streaming Hadoop. Jadi sebelum kita menjalankan skrip pada HDFS, mari kita jalankan secara lokal untuk memastikan bahwa skrip tersebut berfungsi dengan baik.

> Jalankan mapper

perintah: kucing word.txt | python mapper.py

cara mengatur classpath di windows

> Jalankan reducer.py

perintah: kucing word.txt | python mapper.py | urutkan -k1,1 | python reducer.py

Kami dapat melihat bahwa mapper dan peredam berfungsi seperti yang diharapkan sehingga kami tidak akan menghadapi masalah lebih lanjut.

Menjalankan Kode Python di Hadoop

Sebelum kita menjalankan tugas MapReduce di Hadoop, salin data lokal (word.txt) ke HDFS

> contoh: hdfs dfs -put sumber_directory hadoop_destination_directory

perintah: hdfs dfs -put /home/edureka/MapReduce/word.txt / pengguna / edureka

Salin jalur file jar

Jalur tabung Streaming Hadoop berdasarkan versi tabung adalah:

/usr/lib/hadoop-2.2.X/share/hadoop/tools/lib/hadoop-streaming-2.2.X.jar

Jadi cari stoples Hadoop Streaming di terminal Anda dan salin jalurnya.

perintah:

ls /usr/lib/hadoop-2.2.0/share/hadoop/tools/lib/hadoop-streaming-2.2.0.jar

Jalankan pekerjaan MapReduce

perintah:

jar hadoop /usr/lib/hadoop-2.2.0/share/hadoop/tools/lib/hadoop-streaming-2.2.0.jar -file /home/edureka/mapper.py -mapper mapper.py -file / home / edureka / reducer.py -reducer reducer.py -input / user / edureka / word -output / user / edureka / Wordcount

Hadoop menyediakan antarmuka web dasar untuk statistik dan informasi. Saat cluster Hadoop berjalan, buka http: // localhost: 50070 di browser. Berikut adalah tangkapan layar dari antarmuka web Hadoop.

metode system.exit akan mengakhiri aplikasi.

Sekarang telusuri sistem file dan cari file wordcount yang dihasilkan untuk melihat hasilnya. Berikut tangkapan layarnya.

Kita dapat melihat outputnya di terminal menggunakan perintah ini

perintah: hadoop fs -cat / user / edureka / Wordcount / part-00000

Anda sekarang telah belajar bagaimana menjalankan program MapReduce yang ditulis dengan Python menggunakan Hadoop Streaming!

Edureka memiliki kursus langsung dan dipimpin instruktur tentang Big Data & Hadoop, yang dibuat bersama oleh praktisi industri.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar dan kami akan menghubungi Anda kembali.