正在更改使用部署的集群上的JDK/spark-ec2



我已经部署了一个类似Spark的AmazonEC2集群:

~/spark-ec2 -k spark -i ~/.ssh/spark.pem -s 2 --region=eu-west-1 --spark-version=1.3.1 launch spark-cluster

我首先将我需要的文件复制到主文件,然后使用从主文件复制到HDFS

ephemeral-hdfs/bin/hadoop fs -put ~/ANTICOR_2_10000.txt ~/user/root/ANTICOR_2_10000.txt

我有一个我想运行的jar,它是用JDK8编译的(我使用了很多Java 8功能),所以我用scp复制它,并用运行它

spark/bin/spark-submit --master spark://public_dns_with_port --class package.name.to.Main job.jar -f hdfs://public_dns:~/ANTICOR_2_10000.txt

问题是spark-ec2用JDK7加载集群,所以我得到了Unsupported major.minor version 52.0

我的问题是,我需要将JDK7更改为JDK8的地方是哪些?

到目前为止,我在master上所做的步骤是:

  • 使用yum安装JDK8
  • 使用sudo alternatives --config java并将preferred java更改为java-8
  • export JAVA_HOME=/usr/lib/jvm/openjdk-8

我必须对所有节点都这样做吗?我还需要更改hadoop在ephemeral-hdfs/conf/hadoop-env.sh中使用的java路径吗?或者我还错过了其他地方吗?

不幸的是,亚马逊还没有提供开箱即用的Java 8安装:请参阅可用版本。

你看过这篇关于如何在运行的实例上安装它的帖子吗?

以下是我对所有java安装所做的操作,这些安装与默认安装提供的版本不同:-

  1. 在每台机器/节点上配置JAVA_HOME环境变量:-

    导出JAVA_HOME=/HOME/ec2用户/软件/jdk1.7.0_25

  2. 修改默认的PATH,并将"java/bin"目录放在所有节点/机器上PATH的其余部分之前。

    导出路径=/home/ec2 user/softwares/jdk1.7.0_25/bin/:$M2:$SCALA_home/bin/:$HIVE_home/bin/:$PATH:

上述操作需要使用相同的"操作系统用户"来完成,该用户用于执行/拥有spark master/worker进程。

相关内容

  • 没有找到相关文章

最新更新