Aliran Hadoop: Menulis Program Penurunan Peta Hadoop Di Python

Catatan blog ini di Hadoop Streaming adalah panduan langkah demi langkah untuk belajar menulis program Hadoop MapReduce di Python untuk memproses sejumlah besar Data Besar.

Kuantiti data digital yang dihasilkan setiap hari semakin meningkat dengan munculnya Media Digital, Internet of Things antara perkembangan lain. Senario ini telah menimbulkan cabaran dalam membuat alat dan teknologi generasi akan datang untuk menyimpan dan memanipulasi data ini. Di sinilah Hadoop Streaming masuk! Diberikan di bawah adalah grafik yang menggambarkan pertumbuhan data yang dihasilkan setiap tahun di dunia dari tahun 2013. IDC menganggarkan bahawa jumlah data yang dibuat setiap tahun akan mencapai 180 Zettabyte pada tahun 2025!

data-by-2025-hadoop-streaming





Sumber: IDC

IBM menyatakan bahawa, setiap hari, hampir 2.5 quintillion bait data dibuat, dengan 90 peratus data dunia dibuat dalam dua tahun terakhir! Adalah tugas yang mencabar untuk menyimpan sejumlah besar data. Hadoop dapat menangani sejumlah besar data berstruktur dan tidak berstruktur dengan lebih berkesan daripada Gudang Data perusahaan tradisional. Ia menyimpan set data yang sangat besar ini di sekumpulan komputer yang diedarkan. Hadoop Streaming menggunakan kerangka MapReduce yang dapat digunakan untuk menulis aplikasi untuk memproses sejumlah besar data.



Oleh kerana kerangka MapReduce didasarkan pada Java, Anda mungkin bertanya-tanya bagaimana pengembang dapat mengusahakannya jika dia tidak memiliki pengalaman di Java. Oleh itu, pembangun boleh menulis aplikasi mapper / Reducer menggunakan bahasa pilihan mereka dan tanpa banyak pengetahuan tentang Java, menggunakan Penstriman Hadoop daripada beralih ke alat atau teknologi baru seperti Babi dan Sarang.

apakah kekangan dalam sql

Apakah Hadoop Streaming?

Hadoop Streaming adalah utiliti yang disertakan dengan pengedaran Hadoop. Ini dapat digunakan untuk melaksanakan program untuk analisis data besar. Streaming Hadoop dapat dilakukan dengan menggunakan bahasa seperti Python, Java, PHP, Scala, Perl, UNIX, dan banyak lagi. Utiliti ini membolehkan kita membuat dan menjalankan pekerjaan Map / Reduce dengan mana-mana atau skrip yang boleh dilaksanakan sebagai mapper dan / atau reducer. Sebagai contoh:

$ HADOOP_HOME / tong / hadoop balang $ HADOOP_HOME / hadoop-streaming.jar



-masukkan myInputDirs

-keluarkan myOutputDir

-folder / tong sampah / kucing

-reducer / bin / wc

Penerangan Parameter:

Kod Python MapReduce:

mapper.py #! / usr / bin / python import sys #Word Count Contoh # input berasal dari STDIN input standard untuk baris dalam sys.stdin: line = line.strip () #menghapus kata-kata spasi utama dan belakang = line.split ( ) #susun baris menjadi kata-kata dan kembali sebagai senarai kata demi kata: # tulis hasilnya ke output standard Cetakan STDOUT '% s% s'% (perkataan, 1) #Emalkan perkataan

reducer.py

#! / usr / bin / python import sys dari operator import itemgetter # menggunakan kamus untuk memetakan perkataan ke kiraannya current_word = None current_count = 0 word = None # input berasal dari STDIN untuk baris di sys.stdin: line = line.strip () word, count = line.split ('', 1) try: count = int (count) kecuali ValueError: teruskan jika current_word == word: current_count + = count other: if current_word: print '% s% s'% (current_word, current_count) current_count = hitung current_word = word if current_word == word: cetak '% s% s'% (current_word, current_count)

Jalankan:

  1. Buat fail dengan kandungan berikut dan beri nama word.txt.

Kucing singa rusa singa Harimau singa Gajah singa rusa

  1. Salin skrip mapper.py dan reducer.py ke folder yang sama dengan fail di atas.

  1. Buka terminal dan Cari direktori fail. Perintah: ls: untuk menyenaraikan semua fail dalam direktoricd: untuk menukar direktori / folder

  1. Lihat kandungan fail.
    Arahan: kucing nama fail

> kandungan mapper.py

arahan: cat mapper.py

> Kandungan reducer.py

arahan: kucing reducer.py

Kita boleh menjalankan mapper dan pengurang pada fail tempatan (cth: word.txt). Untuk menjalankan Peta dan mengurangkan Sistem Fail Terdistribusi Hadoop (HDFS), kami memerlukannya Balang Hadoop Streaming. Oleh itu, sebelum kita menjalankan skrip di HDFS, mari jalankannya secara tempatan untuk memastikannya berfungsi dengan baik.

> Jalankan mapper

arahan: kata kucing.txt | python mapper.py

mysql_fetch_array php

> Jalankan reducer.py

arahan: kata kucing.txt | python mapper.py | urutkan -k1,1 | python reducer.py

Kami dapat melihat bahawa mapper dan reducer berfungsi seperti yang diharapkan sehingga kami tidak akan menghadapi masalah lagi.

Menjalankan Kod Python pada Hadoop

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

> contoh: hdfs dfs -put source_directory hadoop_destination_directory

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

Salin jalan fail balang

Jalan balang Hadoop Streaming berdasarkan versi balang adalah:

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

Oleh itu, cari balang Hadoop Streaming di terminal anda dan salin jalannya.

arahan:

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

Jalankan tugas MapReduce

arahan:

hadoop jar /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 / rumah / edureka / reducer.py -reducer reducer.py -input / user / edureka / word -output / user / edureka / Wordcount

Hadoop menyediakan antara muka web asas untuk statistik dan maklumat. Semasa kluster Hadoop berjalan terbuka http: // localhost: 50070 dalam penyemak imbas. Berikut adalah tangkapan skrin antara muka web Hadoop.

Sekarang layari sistem fail dan cari fail jumlah kata yang dihasilkan untuk melihat keluarannya. Berikut adalah tangkapan skrin.

Kita dapat melihat output di terminal menggunakan perintah ini

arahan: hadoop fs -cat / user / edureka / Wordcount / bahagian-00000

Anda kini telah belajar bagaimana melaksanakan program MapReduce yang ditulis dalam Python menggunakan Hadoop Streaming!

rancangan pemantauan dan kawalan projek

Edureka mempunyai kursus langsung dan pengajaran yang diketuai oleh Big Data & Hadoop, yang dicipta bersama oleh pengamal industri.

Ada soalan untuk kami? Sila sebutkan di bahagian komen dan kami akan menghubungi anda.