第一次部屬 Hadoop 就上手 – Part 4 – Spark及 Jupyter 應用程式安裝
承上 part 3 , 將 Hadoop 相關服務均啟動後,開始安裝 Spark 及啟動 Jupyter Notebook
-
請先確認叢集均已啟動 hdfs 及 yarn 服務
-
下載及安裝Spark(管理者身份)
- 下載
cd wget http://ftp.tc.edu.tw/pub/Apache/spark/spark-2.4.4/spark-2.4.4-bin-hadoop2.7.tgz
- 如檔案過期或是失效,請至Spark官方網站下載
- 解壓縮
tar -xvf spark-2.4.4-bin-hadoop2.7.tgz -C /usr/local
- 更名
mv /usr/local/spark-2.4.4-bin-hadoop2.7 /usr/local/spark
- 修改spark資料夾及檔案使用者
chown -R hadoop:hadoop /usr/local/spark
-
修改Spark環境變數(hadoop身份)
- 設定.bashrc
nano ~/.bashrc
- 重新載入設定檔
source ~/.bashrc #( . .bashrc)
- 查看環境變數
-
更改 Spark運行程式時環境腳本(hadoop身份)
- 複製並建立一份spark-env腳本
cp /usr/local/spark/conf/spark-env.sh.template /usr/local/spark/conf/spark-env.sh
- 編輯spark-env腳本
nano /usr/local/spark/conf/spark-env.sh
- 跑個pi 測試一下Spark(hadoop身份)
cd $SPARK_HOME
./bin/spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
--num-executors 3 \
--queue default \
examples/jars/spark-examples*.jar \
100
- 明顯看出Spark 遠遠勝過 MapReduce (同樣跑pi 100次)
MapReduce花費3分11秒
Spark花費14秒
- 停止Spark運行程式時都要上傳jar檔到hdfs方式(hadoop身份)
-
每次都要上傳那麼多檔案擾民…
- 在 hdfs 建立目錄放jar檔
hdfs dfs -mkdir -p /user/spark/share/jars hdfs dfs -put $SPARK_HOME/jars/* /user/spark/share/jars/ hdfs dfs -ls /user/spark/share/jars
- 上傳jar檔到hdfs
hdfs dfs -mkdir -p /user/spark/share/jars hdfs dfs -put $SPARK_HOME/jars/* /user/spark/share/jars/
- 確認jar檔都上傳
hdfs dfs -ls /user/spark/share/jars | wc -l
- 編輯spark-defaults.conf 的hdfs路徑
cp /usr/local/spark/conf/spark-defaults.conf.template /usr/local/spark/conf/spark-defaults.conf nano /usr/local/spark/conf/spark-defaults.conf
- 跑個pi 檢測一下
出現一堆的Not copying就代表成功了
)
時間減少1秒
-
使用PySpark shell(hadoop身份)
- 使用Spark的readme當範本測試一下
- 開啟pyspark shell
cd $SPARK_HOME ./bin/pyspark --master yarn --deploy-mode client --num-executors 1 --executor-cores 1
- 運行程式看看
-
安裝jupter 系列及pyspark 等套件(管理者身份)
-
如 Part 1 略過 Python3 安裝,請先回去執行 !!
-
安裝pyspark 套件
pip3 install pyspark
- 安裝jupter 系列套件
pip3 install jupyterlab
-
-
jupyter 系列遠端使用及產生密碼(一般使用者身份)
- 創建jupyter設定檔
jupyter notebook --generate-config
- 修改設定檔
nano .jupyter/jupyter_notebook_config.py
- 將登入網域開成全域
c.NotebookApp.ip = '0.0.0.0'
- 產生密碼
jupyter notebook password
- 開啟筆記本或是Lab
jupyter notebook #jupyter lab
- 就可以藉由瀏覽器登入
或是用手機登入打code…瘋掉拉