在CDH5.14上離線安裝Spark2.3
在先前裝的CDH5.14叢集中,預設安裝的spark是1.6.0版本。我們現在可以現有的叢集中再裝spark2.x版本,能和spark1.6版本並存。
當前CDH支援的Spark2.X最新版本是Spark2.3.0,目前Apache Spark最近版本是2.3.1,即CDH的版本更新是慢半拍的,但基本上不影響使用。
下面是在CDH中安裝Spark2.3的步驟:
這是官方給出安裝和升級方法說明:
一. 安裝準備
1. 下載所需的安裝包
SPARK2_ON_YARN-2.3.0.cloudera3.jar
SPARK2-2.3.0.cloudera3-1.cdh5.13.3.p0.458809-el6.parcel
SPARK2-2.3.0.cloudera3-1.cdh5.13.3.p0.458809-el6.parcel.sha1
manifest.json
說明:要選擇相對應的系統、CDH版本
我的系統是CentOS6.7所以選擇了el6,都選擇cloudera3相應的parcel包
2. Spark2.3安裝需求
● CDH Versions
● Cloudera Manager Versions
● JDK1.8+
● Scala 2.11, Python 2.7 or higher, Python 3.4 or higher
二、安裝步驟
1. 上傳CSD包到CM節點的/opt/cloudera/csd目錄
# chown cloudera-scm:cloudera-scm SPARK2_ON_YARN-2.3.0.cloudera3.jar
2. 上傳parcel的3個包到CM的/opt/cloudera/parcel-repo目錄下
[[email protected] parcel-repo]# ls
SPARK2-2.3.0.cloudera3-1.cdh5.13.3.p0.458809-el6.parcel
SPARK2-2.3.0.cloudera3-1.cdh5.13.3.p0.458809-el6.parcel.sha
manifest.json
如之前有manifest.json檔案,先把之前的更名後再上傳
3. 安裝JDK1.8
安裝Spark2.X必需要安裝JDK1.8以上版本,因我們在安裝CDH5.14時預設選擇安裝的是JDK1.7.0_67版本,所以要把JDK進行版本升級。否則在後面在安裝spark2時會報錯:
Java version 1.8 is required for Spark 2.3.
具體安裝過程和報錯解決在後面詳細介紹。
4. 重啟CM和叢集
# service cloudera-scm-agent restart
5. 通過CM安裝Spark2
CM頁面-> 主機 -> Parcel頁面可以看到新的spark2的parcel包
2.3.0.cloudera3-1.cdh5.13.3.p0.458809
然後點選 下載-進行分配-啟用
6. 在集中新增服務
點選-新增服務,選擇Spark2服務
選擇一組依賴關係
進行角色分配:
加密這時預設不做選擇:
進行下步安裝
安裝完成
完成後啟動Spark2服務。
可以看到正常啟動
7. 測試Spark2-shell
登入Spark2的安節點(hadoop[1-8])
三、遇到的問題
在叢集中安裝jdk1.8,修改CDH的JAVA_HOME方法
下面解決安裝Spark2時出現jdk版本低的問題,
問題:在新增Spark服務進出現下面的錯誤
日誌:
hu Aug 30 14:34:08 CST 2018
using /usr/java/jdk1.7.0_67-cloudera as JAVA_HOME
using 5 as CDH_VERSION
using /var/run/cloudera-scm-agent/process/ccdeploy_spark2-conf_etcspark2conf.cloudera.spark2_on_yarn_3511819582822760396 as CONF_DIR
using spark2-conf as DIRECTORY_NAME
using /etc/spark2/conf.cloudera.spark2_on_yarn as DEST_PATH
using spark2-conf as ALT_NAME
using /etc/spark2/conf as ALT_LINK
using 51 as PRIORITY
using scripts/control.sh as RUNNER_PROGRAM
using client as RUNNER_ARGS
using /usr/sbin/update-alternatives as UPDATE_ALTERNATIVES
Deploying service client configs to /etc/spark2/conf.cloudera.spark2_on_yarn
invoking optional deploy script scripts/control.sh
/var/run/cloudera-scm-agent/process/ccdeploy_spark2-conf_etcspark2conf.cloudera.spark2_on_yarn_3511819582822760396/spark2-conf /var/run/cloudera-scm-agent/process/ccdeploy_spark2-conf_etcspark2conf.cloudera.spark2_on_yarn_3511819582822760396
Thu Aug 30 14:34:08 CST 2018: Running Spark2 CSD control script...
Thu Aug 30 14:34:08 CST 2018: Detected CDH_VERSION of [5]
Java version 1.8 is required for Spark 2.3.
解決:
- 在每個節點安裝JDK1.8(可以與jdk1.7版本並存)
[[email protected] ~]# rpm -ivh jdk-8u181-linux-x64.rpm
warning: jdk-8u181-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ########################################### [100%]
1:jdk1.8 ########################################### [100%]
- 在CM節點配置JAVA_HOME
[[email protected] ~]# vi /etc/default/cloudera-scm-server
export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64
- 在CM中每個主機的上配置JAVA_HOME
在CM中的點 -> 主機 -> 選擇一host
在高階頁新增新的JAVA_HOME目錄
- 重新啟動CM服務和叢集
# service cloudera-scm-server restart
安裝完成後,再重新新增Spark2服務正常。
參考: