介绍
依赖 yarn 资源调度,这种部署目前最为广泛
spark without hadoop 版本
从 Spark 1.4 版本开始,该项目打包了 Hadoop free 版本,不包含 hadoop 相关的 jar,可以更轻松地将 Spark 连接到任何 Hadoop 版本
但要设置 SPARK_DIST_CLASSPATH,下面有详细解释
缺点
使用 spark without hadoop 版本,部署 Spark on Hive ,需要额外增加很多 jar 包,否则无法运行,很不方便
安装
上传到linux
登录 hadoop1,上传 spark-3.0.0-bin-without-hadoop.tgz 到 /program 目录下
解压缩
tar -zxvf spark-3.0.0-bin-without-hadoop.tgz --no-same-owner
修改文件名
mv spark-3.0.0-bin-without-hadoop spark-3.0.0
修改 yarn-site.xml
修改 hadoop 配置文件 $HADOOP_HOME/etc/hadoop/yarn-site.xml
vim $HADOOP_HOME/etc/hadoop/yarn-site.xml
增加下面内容:
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
同步到 hadoop2
rsync -av /program/hadoop-3.0.3/etc/hadoop/ root@hadoop2:/program/hadoop-3.0.3/etc/hadoop/
同步到 hadoop3
rsync -av /program/hadoop-3.0.3/etc/hadoop/ root@hadoop3:/program/hadoop-3.0.3/etc/hadoop/
重启hadoop
停止:
/program/bin/hadoop.sh stop
启动:
/program/bin/hadoop.sh start
配置环境变量
vim /etc/profile.d/bigdata_env.sh
增加下面内容:
export SPARK_HOME=/program/spark-3.0.0
export PATH=${SPARK_HOME}/bin:$PATH
立即生效
source /etc/profile
测试
echo $SPARK_HOME
创建 spark-env.sh
cd /program/spark-3.0.0/conf/
根据模板复制 spark-env.sh 文件:
cp spark-env.sh.template spark-env.sh
编辑文件:
vim spark-env.sh
在末尾添加下面内容:
export JAVA_HOME=/program/jdk1.8.0_202
export HADOOP_CONF_DIR=/program/hadoop-3.0.3/etc/hadoop
export YARN_CONF_DIR=/program/hadoop-3.0.3/etc/hadoop
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
解释:
JAVA_HOME:必须 指定 java 绝对路径,否则可能会报错指定
HADOOP_CONF_DIR配置目录,可以读取 HDFS 集群相关的配置指定
YARN_CONF_DIR配置目录,可以读取 YARN 集群相关的配置由于是
without-hadoop版本,所以需要指定SPARK_DIST_CLASSPATH否则找不到 hadoop jar包LD_LIBRARY_PATH:详见 链接
重启hadoop(可略)
停止:
/program/bin/hadoop.sh stop
启动:
/program/bin/hadoop.sh start