“Sarı Fil ve Arkadaşları Dövüş Kulübü Kuruyor.. MapReduce’” Ortaya Karışık Yazılım Serisi — 9
Previously on Ortaya Karışık Yazılım Serisi (Sarı Fil ve Arkadaşları Dövüş Kulübü Kuruyor.. HDFS Ortaya Karışık Yazılım Serisi — 8) => LINK
MapReduce, Hadoop Dosya Sistemi’nde (HDFS) depolanan büyük verilere erişmek için kullanılan Hadoop içinde bir programlama modelidir.
Hadoop çerçevesinin işleyişine ayrılmaz bir temel bileşendir. MapReduce, petabaytlarca veriyi daha küçük parçalara bölerek ve bunları Hadoop sunucularında paralel olarak işleyerek eşzamanlı işlemeyi kolaylaştırır ve en sonunda, birden çok sunucudan gelen tüm verileri birleştirilmiş bir çıktıyı uygulamaya geri döndürmek için toplar.

İsminden anlaşılacağı üzere Mapped(Transformed) ve Reduced(Aggregated) olarak iki kısımdan oluşur.
Mapper raw source datayı key-value’ya çevirir. Shuffling kısmında karıştırır ve sıralar Reducer ise python len() fonksiyonu gibi düşünebilirsiniz ama daha çok işi birleştirmek.

Let’s make MapReduce great again MrJob
Mrjob, Hadoop’ta çalışan Python programları yazmanın en kolay yoludur. mrjob kullanıyorsanız, kodunuzu Hadoop’u yüklemeden yerel olarak test edebilir veya seçtiğiniz bir kümede çalıştırabilirsiniz.
Ayrıca, mrjob Amazon Elastic MapReduce ile kapsamlı entegrasyona sahiptir.
MapReduce’u kolayca kullanmak istiyorsanız mrjob tam sizin için bir şey olabilir. [1]
Eğer clouderayı yüklemiş olduğunuz sistemde pip vs kurmadıysanız sırayla;
- yum install python-pip
- pip install mrjob
İki şekilde çalıştırabiliriz ilki local olarak ikincisi ise hadoop üzerinden
python ornek.py verisetimiz.csv
python ornek.py -r hadoop --hadoop-streaming-jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-streaming.jar
Not: Hadoop üzerinde çalıştırmak istersek eğer mutlaka hadoop-streaming.jar’ın pathini vermemiz gerekiyor AWS vb platformlarda bu kural geçerli değil Amazon kendi çözüyor bunu.
Daha önce yüklemiş olduğumuz veriseti üzerinden ilerliyoruz, ilk önce arayüzden böyle bir veriseti var mı yok mu kontrol ediyoruz.

Ben direk MrJob da yayınlanan bir örnek üzerinden deniyorum.[2]

python app.py -r hadoop --hadoop-streaming-jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-streaming.jar hdfs:///user/maria_dev/ornek/term-deposit-marketing-2020.csv
HDFS’e yüklemiş olduğunuz dosyalara bu sekilde erişebilirsiniz. Bununla birlikte ya kardeşim biz amele miyiz niye sürekli path belirtiyoruz diyenler için
export HADOOP_HOME=/usr/lib/hadoop
sudo ln -s /usr/lib/hadoop-mapreduce/hadoop-streaming.jar /usr/lib/hadoop
python app.py -r hadoop hdfs:///user/maria_dev/ornek/term-deposit-marketing-2020.csv

Yine klasik kapanışımız ile kapatalım. Ortaya Karışık Yazılım Serisi’ne kendinizi yakın hissediyorsanız paylaşarak destek olabilirsiniz yaptığım hata ve öneriler için Twitter üzerinden ulaşabilirsiniz.
