安裝 Spark 到遠端伺服器
Apache Spark 是一個平行運算的運算平台,由於他在處理不同檔案格式都有強大的資源庫支援,所以如果 leverage 來進行一些資料處理的開發很合適,另外 Spark 可以使用 local 或是 yarn 模式,使用 local 模式開發的進入障礙不會很大,本篇說明如何安裝 Spark 到遠端伺服器上面,部署並執行 spark 的程式!
安裝 Java:
要執行 Spark 的程式要執行,需要 java 1.8 的版本,所以要先安裝 jdk 1.8,安裝完之後可以確認 java 的版本是否是自己想要安裝的版本:
yum install java-1.8.0-openjdk-devel.x86_64
java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
備註:需要特別注意版本必須要是 1.8 不能超過,目前 spark 還沒有支援 Java 1.8+
安裝 Python 與 PySpark:
這邊可以參考我們之前寫的 Python 版本切換教學,只是要利用 pip 另外安裝 pyspark 。
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install pyspark
安裝 Spark:
cd /opt
wget http://apache.crihan.fr/dist/spark/spark-2.3.2/spark-2.3.2-bin-hadoop2.7.tgz
tar zxvf spark-2.3.2-bin-hadoop2.7.tgz
備註:關於最新的 Spark 的版本可以到連結下載。
增加環境變數設定:
要能夠執行 Spark 還需要以下的設定:
PATH=/opt/spark-2.3.2-bin-hadoop2.7/bin:/usr/local/jdk1.8.0_201/bin
PYSPARK_PYTHON=/usr/bin/python3
SPARK_HOME=/opt/spark-2.3.2-bin-hadoop2.7
設定 PYSPARK_PYTHON 可以放在 /opt/spark-2.3.2-bin-hadoop2.7/etc/config/spark-env.sh 裡面,設定 SPARK_HOME 則可以放在 .bashrc 裡面。後來還發生以下的錯誤,參考解決:
File "....py", line 5, in <module>
sc = SparkContext() File "/usr/local/lib/python3.4/site-packages/pyspark/context.py", line 118, in __init__
conf, jsc, profiler_cls) File "/usr/local/lib/python3.4/site-packages/pyspark/context.py", line 195, in _do_init
self._encryption_enabled = self._jvm.PythonUtils.getEncryptionEnabled(self._jsc) File "/usr/local/lib/python3.4/site-packages/py4j/java_gateway.py", line 1487, in __getattr__
"{0}.{1} does not exist in the JVM".format(self._fqn, name)) py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.getEncryptionEnabled does not exist in the JVM
最後只使用 .bashrc 去做環境變數的調校,總共需要以下環境變數:
PATH=/opt/spark-2.3.2-bin-hadoop2.7/bin:/opt/spark-2.3.2-bin-hadoop2.7/python
PYSPARK_PYTHON=/usr/bin/python3
PYTHONPATH=/opt/spark-2.3.2-bin-hadoop2.7/python:/opt/spark-2.3.2-bin-hadoop2.7/python/lib/py4j-0.10.4-src.zip:
SPARK_HOME=/opt/spark-2.3.2-bin-hadoop2.7
One thought on “安裝 Spark 到遠端伺服器”