Instalasi Java (JDK)
Sebelum dapat bekerja dengan Spark, kita diharuskan menginstall JDK terbaru, yang bisa didownload di Download Center Oracle Java, atau distro JDK yang lain seperti OpenJDK dsb. Pada tutorial ini saya menggunakan distro dari Oracle. Setelah selesai, copy file tar.gz ke directory /usr/local/ dan extract file tar.gz tersebut.
$ tar -xvzf jdk-8u151-linux-x64.tar.gz
Kemudian, daftarkan variabel JAVA_HOME ke dua file yaitu /home/<user>/.bashrc dan /etc/environment.
$ nano /home/irfan/.bashrc...> export JAVA_HOME=/usr/local/jdk1.8.0_151$ nano /etc/environment...PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/jdk1.8.0_151/bin"
Untuk mereload kedua file tersebut, jalankan perintah source:
$ source /home/irfan/.bashrc
$ source /etc/environment
Instalasi Python3 dan Jupyter Notebook
Oh ya, karena di sini kita menggunakan PySpark (Python) dan kita butuh editor yang powerful untuk coding, kita pastikan terlebih dahulu instalasi Python 3 di mesin yang baru kita install. Cukup dengan menjalankan command di bawah ini:
irfan@spark-master:~$ python3
Python 3.5.2 (default, Sep 14 2017, 22:51:06)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Untuk Jupyter, lakukan instalasi dengan menggunakan pip, package manager Python.
$ pip3 install jupyter
Jika, pip belum terinstall, jalankan command berikut ini
$ sudo apt install python3-pip
Instalasi Spark(+Hadoop)
$ source /home/irfan/.bashrc
$ source /etc/environment
Oh ya, karena di sini kita menggunakan PySpark (Python) dan kita butuh editor yang powerful untuk coding, kita pastikan terlebih dahulu instalasi Python 3 di mesin yang baru kita install. Cukup dengan menjalankan command di bawah ini:
Untuk Jupyter, lakukan instalasi dengan menggunakan pip, package manager Python.irfan@spark-master:~$ python3
Python 3.5.2 (default, Sep 14 2017, 22:51:06)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ pip3 install jupyter
Jika, pip belum terinstall, jalankan command berikut ini
$ sudo apt install python3-pip
Instalasi Spark(+Hadoop)
Download distribusi Apache Spark terbaru dari http://www-eu.apache.org/dist/spark/spark-2.2.0/ dan Apache Hadoop dari http://www-us.apache.org/dist/hadoop/common/hadoop-2.8.2/hadoop-2.8.2.tar.gz. Distribusi Hadoop ini sebenarnya tidak dibutuhkan ketika kita membangun Standalone Cluster, namun setiap kali kita memanggil interpreter Spark, akan selalu dilakukan pengecekan instalasi Hadoop dengan memeriksa variabel HADOOP_HOME di mesin kita. Jadi agar interpreter kita 'bersih', dan ketika di kemudian hari kita ingin membangun sebuah cluster Spark di atas HDFS Hadoop kita tidak perlu repot melakukan instalasi lagi ;)
$ wget http://www-eu.apache.org/dist/spark/spark-2.2.0/SparkR_2.2.0.tar.gz $ wget http://www-us.apache.org/dist/hadoop/common/hadoop-2.8.2/hadoop-2.8.2.tar.gz
Extract di sebarang directory untuk dijadikan SPARK_HOME dan HADOOP_HOME, untuk kemudahan saya letakkan di /home/irfan. Setelah itu, daftarkan variabel SPARK_HOME dan HADOOP_HOME di /home/<user>/.bashrc sehingga file /etc/.bashrc kurang lebih menjadi seperti di bawah ini:
$ nano /home/irfan/.bashrc...export JAVA_HOME=/usr/local/jdk1.8.0_151 export SPARK_HOME=/home/irfan/spark-2.2.0-bin-hadoop2.7 export PYSPARK_DRIVER_PYTHON=jupyter export PYSPARK_DRIVER_PYTHON_OPTS='notebook --no-browser --port=8889' export PYSPARK_PYTHON=python3 export HADOOP_HOME=/home/irfan/hadoop-2.8.2 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native
Di mana,
PYSPARK_DRIVER_PYTHON adalah variabel yang akan menentukan interpreter apakah yang akan digunakan, di sini saya akan menggunakan Jupyter notebook. PYSPARK_DRIVER_PYTHON_OPTS adalah opsi yang akan menentukan bagaimana Jupyter akan dijalankan. Untuk opsi --no-browser di atas, Jupyter akan dijalankan secara 'silent', di mana browser tidak akan otomatis dibuka ketika pyspark dijalankan. Untuk opsi --port akan menentukan pada port berapa jupyter akan dibuka.
Untuk bisa membuka jupyter secara remote (karena Ubuntu server secara default tidak mempunyai XDesktop), kita akan mengkonfigurasi Jupyter terlebih dahulu. Jalankan command berikut ini:
$ jupyter notebook --generate-config
$ jupyter notebook password
Enter password: ****
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to
/home/irfan/.jupyter/jupyter_notebook_config.json
Command di atas akan mengenerate konfigurasi untuk Jupyter dan password yang dibutuhkan untuk membuka jupyter secara remote. Berikutnya, copy password dari file jupyter_notebook_config.json ke file jupyter_notebook_config.py. Selain itu, agar dapat dibuka dari mesin lain, untuk parameter c.NotebookApp.ip kita set dengan wildcard '*', atau dengan IP tertentu. Opsi yang lain, yaitu open_browser kita set False agar jupyter tidak akan membuka browser baru.
$ nano /home/irfan/jupyter_notebook_config.py
# The string should be of the form type:salt:hashed-password. c.NotebookApp.password = u'sha1:8c3777360745:c70188e50309527e01b5f73284dd412ed04b2204'
# The string should be of the form type:salt:hashed-password. c.NotebookApp.password = u'sha1:8c3777360745:c70188e50309527e01b5f73284dd412ed04b2204'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
Jika sudah, pertama kita akan buka interpreter pyspark di mesin Master:
irfan@spark-master:~/spark-2.2.0-bin-hadoop2.7/bin$ ./pyspark
./pyspark: line 45: python: command not found
[I 08:05:57.612 NotebookApp] Writing notebook server cookie secret to /run/user/1000/
jupyter/notebook_cookie_secret [W 08:06:01.741 NotebookApp] WARNING: The notebook server is listening on all
IP addresses and not using encryption. This is not recommended. [I 08:06:01.793 NotebookApp] Serving notebooks from local directory:
/home/irfan/spark-2.2.0-bin-hadoop2.7/bin [I 08:06:01.793 NotebookApp] 0 active kernels [I 08:06:01.794 NotebookApp] The Jupyter Notebook is running at: [I 08:06:01.794 NotebookApp] http://[all ip addresses on your system]:8889/ [I 08:06:01.794 NotebookApp] Use Control-C to stop this server and shut down
all kernels (twice to skip confirmation).
jupyter/notebook_cookie_secret [W 08:06:01.741 NotebookApp] WARNING: The notebook server is listening on all
IP addresses and not using encryption. This is not recommended. [I 08:06:01.793 NotebookApp] Serving notebooks from local directory:
/home/irfan/spark-2.2.0-bin-hadoop2.7/bin [I 08:06:01.793 NotebookApp] 0 active kernels [I 08:06:01.794 NotebookApp] The Jupyter Notebook is running at: [I 08:06:01.794 NotebookApp] http://[all ip addresses on your system]:8889/ [I 08:06:01.794 NotebookApp] Use Control-C to stop this server and shut down
all kernels (twice to skip confirmation).
Nah, sekarang kita sudah bisa bermain-main dengan Apache Spark.
Komentar
Posting Komentar