赞
踩
我们公司用的是Spark2.3.2,但是现在测试DeltaLake又需要用到Spark3.0,所以在当前集群做多个Spark版本共存。
下载当然是要去Spark官网下载咯。自己选择对应的版本下载。
当然,如果没有对应的版本,就需要自己下载源码,更改版本然后重新进行编译。
1、下载
$ wget https://mirror.bit.edu.cn/apache/spark/spark-3.0.0/spark-3.0.0-bin-hadoop3.2.tgz
2、解压,路径为/data/software/
$ tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /data/software/
3、增大权限,或者根据自己用户进行赋权
$ chmod -R 755 /data/software/spark-3.0.0-bin-hadoop3.2
或者
$ chown -R hadoop:hadoop /data/software/spark-3.0.0-bin-hadoop3.2
1、进入目录 $ cd /data/software/spark-3.0.0-bin-hadoop3.2/conf 2、卍配置文件卍(卍解) $ cp spark-env.sh.template spark-env.sh $ cp spark-defaults.conf.template spark-defaults.conf $ cp log4j.properties.template log4j.properties 3、复制hive-site.xml $ cp $HIVE_HOME/conf/hive-site.xml ./ 4、配置 spark-env.sh (配置自己的,别照抄) $ vim spark-env.sh export HADOOP_CONF_DIR= $HADOOP_HOME/etc/hadoop/ export SPARK_LOG_DIR=/var/log/spark2 export SPARK_PID_DIR=/var/run/spark2 $ vim spark-defaults.conf spark.ui.showConsoleProgress true spark.sql.adaptive.enabled true spark.master yarn
首先了解环境变量加载的优先级:/etc/profile > ~/.bashrc > ~/.bash_profile
接下来,检查自己原版本Spark2的环境变量都再哪里设置了。
个人建议,在用户家目录~/.bashrc下改环境配置就OK了。
1、把所有环境变量中如果存在SPARK_HOME,全部改成SPARK2_HOME
#export SPARK_HOME= Spark2的路径
#PATH = $SPARK_HOME/bin:
export SPARK2_HOME= Spark2的路径
PATH = $SPARK2_HOME/bin:
#加入SPARK3_HOME
export SPARK3_HOME= Spark3的路径
PATH = $SPARK3_HOME/bin3:
2、退出后记得刷新环境变量: source 环境变量文件
3、检查环境变量是否为空,啥都木有是正确的
$ echo $SPARK_HOME
那是因为Spark-shell启动的时候,检查的是相对路径,也就是SPARK_HOME的位置(脚本内容不贴了)。
如果不改环境变量,Spark3-shell启动后,会启动Spark2-shell。而不是Spark3-shell。
我们必须保证echo $SPARK_HOME是空的,不被识别。
启动shell或者sql才会执行find-spark-home,去找自己对应的的环境。
1、进入目录
$ cd /data/software/spark-3.0.0-bin-hadoop3.2
2、创建目录并进入
$ mkdir bin3
$ cd bin3
3、建立软连接(find-spark-home必须有,全靠这个找环境变量)
$ ln -s ../bin/spark-submit spark3-submit
$ ln -s ../bin/spark-shell spark3-shell
$ ln -s ../bin/spark-sql spark3-sql
$ ln -s ../bin/find-spark-home find-spark-home
分别启动
$ spark2-shell
$ spark3-shell
美得很~
没啥总结的,多点关注多点爱~
每篇一个小彩蛋,发现了么?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。