1. 程式人生 > >在CDH5.14上離線安裝Spark2.3

在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.

解決:

  1. 在每個節點安裝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%]

  1. 在CM節點配置JAVA_HOME

[[email protected] ~]# vi /etc/default/cloudera-scm-server

export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64

  1. 在CM中每個主機的上配置JAVA_HOME

在CM中的點 -> 主機 -> 選擇一host 

在高階頁新增新的JAVA_HOME目錄

  1. 重新啟動CM服務和叢集

# service cloudera-scm-server restart

安裝完成後,再重新新增Spark2服務正常。

參考: