PyCon Taiwan 2018: PYSPARK workshop [環境]

這邊筆記一下參加今年的pycon workshop的心得,主題是:

老司機帶你飛~手把手使用 PySpark 探索大數據

 

Git repo

會用到的docker:

https://github.com/bryanyang0528/docker-cdh-spark

練習的code:

https://github.com/bryanyang0528/spark_practice

 

Docker container


首先要有docker,因此:

https://docs.docker.com/docker-for-mac/install/#install-and-run-docker-for-mac

裝好docker後,首先進到資料夾裡,接著run build,這裡作者推薦的方式是透過ducker-compose:

$ docker-compose build

接著啟動他:

$ docker-compose up -d

這裡起來之後他會在背景執行,因此要跟他互動就可以透過啟動他的bash:

$ docker-compose exec cdh-spark /bin/bash

 

然後如果要檢查系統中有哪些正在跑的container:

$ docker ps

以及如果想要完全關閉這個container,在你的原生host上:

$ docker-compose down

 

到這裡環境就算是搞定了,我覺得講師也蠻貼心的,用這個方式讓大家少踩一些環境上的坑,當天才不會花太多時間在這上面。

 

這裡補充一下,如果不用docker compose也可以直接:

$ docker build -t cdh-spark:2.2 .
$ docker run --hostname=quickstart.cloudera --privileged=true -ti --rm cdh-spark:2.2 /bin/bash

一樣可以build跟操作

 

Jupyter

jupyter是個好用的python editor,提供很棒的web interface,因此先在docker裡啟動:

$ jupyter notebook --allow-root --ip 0.0.0.0 --port 18888

作者已經綁好docker跟host的port,因此啟動好notebook之後可以透過瀏覽器前往 0.0.0.0:18888 來使用。

進入之後會看到需要token,token在docker裡啟動notebook時會吐出來的那堆東西裡,比如:

[root@quickstart workspace]# jupyter notebook --allow-root --ip 0.0.0.0 --port 18888
[I 08:50:46.512 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[I 08:50:46.812 NotebookApp] Serving notebooks from local directory: /workspace
[I 08:50:46.812 NotebookApp] 0 active kernels
[I 08:50:46.812 NotebookApp] The Jupyter Notebook is running at:
[I 08:50:46.812 NotebookApp] http://quickstart.cloudera:18888/?token=5aa036c8fa24e9ef6b6196c673e6a40044b4f50ca9e842c3
[I 08:50:46.812 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). 

接著把吐出來的token貼近去就可以開始囉

這邊我docker裡pull了一遍練習的git repo,注意是docker裡面,一開始放在原生host裡還在奇怪jupyter裡怎麼找不到(QQ)