我部署了一个带有spark的amazon ec2集群,如下所示:
~/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编译的(我使用了很多java8特性),所以我用 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或up2date,安装jdk8
使用 sudo alternatives --config java
与java-8相比,change更喜欢java export JAVA_HOME=/usr/lib/jvm/openjdk-8
我必须对所有节点都这样做吗?我还需要更改hadoop在运行时使用的java路径吗 ephemeral-hdfs/conf/hadoop-env.sh
或者还有其他我错过的地方吗?
2条答案
按热度按时间yhqotfr81#
不幸的是,amazon还没有提供现成的java8安装:请参阅可用版本。
你看过这篇关于如何在运行的示例上安装它的文章吗?
9nvpjoqh2#
以下是我为所有不同于默认安装提供的版本的java安装所做的工作:-
在每台计算机/节点上配置java\u home环境变量:-
导出java\u home=/home/ec2 user/softwares/jdk1.7.0\u 25
修改默认路径并将“java/bin”目录放在所有节点/机器上路径的其余部分之前。
export path=/home/ec2 user/softwares/jdk1.7.0_25/bin/:$m2:$scala_home/bin/:$hive_home/bin/:$path:
上述操作需要使用同一个“os用户”来完成,该用户用于执行/拥有spark主/工作进程。