“Sarı Fil ve Arkadaşları Dövüş Kulübü Kuruyor.. MapReduce’” Ortaya Karışık Yazılım Serisi — 9

Kemalcan Bora
3 min readJan 24, 2021

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.

https://memegenerator.net/img/instances/400x/71466364.jpg

İ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]

localde çalışan örnek için
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.

https://cdn.lowgif.com/full/5a703ba463059714-.gif

Referanslar

--

--