CM5.x配置spark錯誤解決


通過cloudera manager 5.x添加spark服務,在創建服務過程中,發現spark服務創建失敗,可以通過控制台錯誤輸出看到如下日志信息:

+ perl -pi -e 's#{{CMF_CONF_DIR}}#/etc/spark/conf.cloudera.spark_on_yarn/yarn-conf#g' /opt/cm-5.9.2/run/cloudera-scm-agent/process/ccdeploy_spark-conf_etcsparkconf.cloudera.spark_on_yarn_1615663591259519890/spark-conf/yarn-conf/yarn-site.xml

++ get_default_fs /opt/cm-5.9.2/run/cloudera-scm-agent/process/ccdeploy_spark-conf_etcsparkconf.cloudera.spark_on_yarn_1615663591259519890/spark-conf/yarn-conf

++ get_hadoop_conf /opt/cm-5.9.2/run/cloudera-scm-agent/process/ccdeploy_spark-conf_etcsparkconf.cloudera.spark_on_yarn_1615663591259519890/spark-conf/yarn-conf fs.defaultFS

++ local conf=/opt/cm-5.9.2/run/cloudera-scm-agent/process/ccdeploy_spark-conf_etcsparkconf.cloudera.spark_on_yarn_1615663591259519890/spark-conf/yarn-conf

++ local key=fs.defaultFS

++ '[' 1 == 1 ']'

++ /opt/cloudera/parcels/CDH-5.9.2-1.cdh5.9.2.p0.3/lib/hadoop/../../bin/hdfs --config /opt/cm-5.9.2/run/cloudera-scm-agent/process/ccdeploy_spark-conf_etcsparkconf.cloudera.spark_on_yarn_1615663591259519890/spark-conf/yarn-conf getconf -confKey fs.defaultFS

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/hadoop/hdfs/tools/GetConf : Unsupported major.minor version 51.0

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:643)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)

at java.net.URLClassLoader.access$000(URLClassLoader.java:73)

at java.net.URLClassLoader$1.run(URLClassLoader.java:212)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:205)

at java.lang.ClassLoader.loadClass(ClassLoader.java:323)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)

at java.lang.ClassLoader.loadClass(ClassLoader.java:268)

Could not find the main class: org.apache.hadoop.hdfs.tools.GetConf. Program will exit.

+ DEFAULT_FS=

根據輸出日志信息大致可以判斷這是因為jdk版本導致的添加spark服務失敗。因為這是我全權安裝的環境,所以印象中jdk版本是滿足cm5安裝要求的,我這里使用的是jdk1.7.0_67,如下:

# java -version

java version "1.7.0_67"

Java(TM) SE Runtime Environment (build 1.7.0_67-b01)

Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

You have new mail in /var/spool/mail/root

針對於目前java版本並沒有問題,滿足當前安裝的cm5版本要求。所以判斷可能是因為我是通過tar包方式安裝的java的原因,正常通過rpm包安裝應該沒有這個問題。下面驗證自己的猜測:

這里使用alternatives命令,alternatives命令通常用來管理服務器上的相同軟件多版本問題。

--查看服務器java版本,發現jdk1.7.0_67沒有再服務器管理之下:

[root@db01 ~]# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command

-----------------------------------------------

   1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java

*+ 2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

Enter to keep the current selection[+], or type selection number:

--將jdk1.7.0_67添加到服務器管理中:

[root@db01 ~]# alternatives --install /usr/bin/java java /opt/java/jdk1.7.0_67/bin/java 3

--再次查看服務器java版本信息,並且調整優先級最高的為jdk1.7.0_67:

[root@db01 ~]# alternatives --config java

There are 3 programs which provide 'java'.

  Selection    Command

-----------------------------------------------

   1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java

*+ 2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

   3           /opt/java/jdk1.7.0_67/bin/java

Enter to keep the current selection[+], or type selection number: 3

[root@db01 ~]# alternatives --config java

There are 3 programs which provide 'java'.

  Selection    Command

-----------------------------------------------

   1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java

*  2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

+ 3           /opt/java/jdk1.7.0_67/bin/java

Enter to keep the current selection[+], or type selection number:

調整java版本信息后,再次添加spark服務,成功。

或者卸載原生的java版本,如:

# rpm -e java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64 java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64 tzdata-java-2013g-1.el6.noarch java_cup-0.10k-5.el6.x86_64 java-1.6.0-openjdk-devel-1.6.0.0-1.66.1.13.0.el6.x86_64 gcc-java-4.4.7-4.el6.x86_64 --nodeps

 

如果以上方法不可用,采用以下方法,直接指定環境變量:

find / -type f -name "*cc.sh"
定位到/opt/program/cm-5.9.0/lib64/cmf/service/client/deploy-cc.sh

直接在上面加上

JAVA_HOME=/opt/java
export JAVA_HOME=/opt/java


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM