0

I have installed predictionIO in RHEL 6.6. But when I start pio with pio-start-all I am getting error as follows

$ pio-start-all 
Starting Elasticsearch...
Starting HBase...
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/hadoop/hbase/util/HBaseConfTool : 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.hbase.util.HBaseConfTool. Program will exit.
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/hadoop/hbase/zookeeper/ZKServerTool : 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.hbase.zookeeper.ZKServerTool. Program will exit.
starting master, logging to /home/itdevel/PredictionIO/vendors/hbase-1.0.0/bin/../logs/hbase-itdevel-master-Puget-129416.out
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/hadoop/hbase/master/HMaster : 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)
starting regionserver, logging to /home/itdevel/PredictionIO/vendors/hbase-1.0.0/bin/../logs/hbase-itdevel-1-regionserver-Puget-129416.out
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/hadoop/hbase/regionserver/HRegionServer : 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)
Waiting 10 seconds for HBase to fully initialize...
Starting PredictionIO Event Server...

pio server is not started after all. I have created a new user and installed java for that user as the system wide java installation is 1.6. I have successfully installed java 1.8 for the new user

$java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

I have edited path in pio-start-all to point to my java installation since pio-start-all cannot find jdp. I have checked my java path.

 $echo $JAVA_HOME
/home/me/jdk1.8.0_45/bin

After changing path in pio-start-all from /home/me/jdk1.8.0_45/bin/bin to /home/me/jdk1.8.0_45/bin jdp error was fixed but I am struck at current error. I have installed pio in a couple of ubuntu machines and servers, customized pio to meet my custom engine template requirements and it is running without issues. Do predictionIO supports Redhat? Hope this is all the error trace you needed. thanks in advance :)

4

2 回答 2

0

java.lang.UnsupportedClassVersionError绝对抛出的 when或它运行的pio-start-all其他脚本仍然使用predictionIO. 您必须彻底检查所使用的 Java 版本。

一种方法是尝试下root

alternatives --config java

你会有这样的东西

There are 2 choices for the alternative java (providing /usr/bin/java).

Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      manual mode

Press enter to keep the current choice[*], or type selection number:

选择最新的 Java 版本。

您也可以配置JAVA_HOME。请检查 RedHat 的说明

于 2015-07-01T13:30:26.030 回答
0

我已经解决了这个问题。在我的情况下,hbase 指向错误的 java 安装。JAVA_HOME在hbase 中更新后/home/me/PredictionIO/vendors/hbase-1.0.0/bin/hbase启动并运行,我的问题得到修复。感谢您的支持 :)

于 2015-07-02T09:34:58.690 回答