kitap onerisi: apache spark quick start guide

2 minute read

sirkette bazi uzaylilar var. bu uzaylilari taniyalim.

spark, spark sql, hadoop, hive, pig, yarn, …

spark ve hadoop

her biri yillar boyu benim icin uzayli arkadaslardi. bir yandan da yillardir kenarindan kosesinden bulasip, az bir seviyede de olsa bilgi sahibi olmak istiyordum.

is yerinde hem sorumluluk alabilmek, hem akisi daha iyi anlayabilmek hem de yer yer mudahale edebilmek icin bu uzayli arkadaslarla tanismaya karar verdim. bunun icin de amacima hizmet edebilecek bir kitap arayisina koyuldum ki su kitabi buldum:

uzayli kitabi

kitap hadoop 2.x uzerinde calismak uzere spark 2.x icin ornekler iceriyor. hadoop’a soylece bir deginip, spark ve alt basliklarina tanistirma surecinde guzelce yardimci olacak kadar yer vermis. benim gibi uzun vadeli bir dusunceniz yoksa ve bu arkadaslarla karsilastiginizda eliniz ayaginiz birbirine girsin istemiyorsaniz, guzel kitap.

packtpub’a uye olup bu kitaba ve yuzlercesine erisebiliyorsunuz. packtpub aylik $10, mis gibi fiyat. istediginiz zaman “pause” edebiliyorsunuz, en azindan oyle bir buton gordum. ayrica bu kitabin pesine okumalik bir kac hadoop ve spark kitabi eklemedim degil, yani kitap bol.

yazar kitapta okuyucuyu yer yer dusundurmek istemis: python functional mi dil?

ve yine yer yer okuyucunun calismasini da istemis ki kitapta duzgun bir hadoop & spark kurulum yonergesi yok. hevesiniz kirilmasin diyerek onu da ben yazayim dedim. detaya hic dokunmadan, jvm’in (jvm-8) kurulu oldugunu kabul ederek kuruluma baslayalim.

hadoop 2.x

bu sayfadan hadoop 2.x binary’i indiriyoruz. dosyayi extract edip /opt/hadoop altina tasiyin.

local’de ssh server kurup, kendi id_rsa.pub’inizi authorized key yapin. size birakiyorum bu adimi (:

extract edince etc/hadoop/hadoop-env.sh dosyasini bulacaksiniz, bu dosya icinde hizlica JAVA_HOME set ediyoruz:

export JAVA_HOME=/usr/java/latest

etc/hadoop/core-site.xml dosyasi:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

etc/hadoop/hdfs-site.xml dosyasi:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
    	<name>dfs.datanode.data.dir</name>
    	<value>file:///opt/hadoop/hdfs/datanode</value>
  	</property>
  	<property>
    	<name>dfs.namenode.name.dir</name>
    	<value>file:///opt/hadoop/hdfs/namenode</value>
  	</property>
</configuration>

ilgili dizinleri olusturun: /opt/hadoop/hdfs/datanode ve /opt/hadoop/hdfs/namenode. bu dizinlerde hdfs’e eklediginiz dosyalari goreceksiniz, merak ediyorsaniz kurcalayabilirsiniz, simdilik pek gerek yok.

etc/hadoop/mapred-site.xml dosyasi:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

etc/hadoop/yarn-site.xml dosyasi:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

son adimlar:

  • hdfs’imizi formatliyoruz: hdfs namenode -format -force
  • dfs servisini baslatiyoruz: /opt/hadoop/sbin/start-dfs.sh
  • yarn’i baslatiyoruz: /opt/hadoop/sbin/start-yarn.sh

artik hadoop kismi tamam. hdfs’i kurcalamaniz icin sunlara bakmanizda fayda var:

export PATH=/opt/hadoop/bin:$PATH

hdfs dfs -ls /
hdfs dfs -mkdir /hello
hdfs dfs -put localfile.txt /hello/localfile.txt
# ...

bir de UI burada: http://localhost:8088

spark 2.x

bu sayfadan spark 2.x’in hadoop 2.7 icin derlenmis versiyonunu indiriyoruz. tar dosyasini indirdik /opt/spark altina aldik. cok basit bir isimiz var: .bashrc dosyasina path eklemek:

export PATH=/opt/spark/bin:$PATH

spark-shell komutuyla spark’i kurcalamaya hazirsiniz. ayrica hdfs://localhost:9000/deneme/localfile.txt uri’sini kullanarak dosya uzerinde calisabilirsiniz.

gerisi kitapta. okumak guzel.