spark3.0教程:yarn模式部署(spark-3.0.0-bin-without-hadoop)

介绍

依赖 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

原文出处:/show_1IXnbu9MnD6.html