介绍
依赖 yarn 资源调度,这种部署目前最为广泛
安装
上传到linux
登录 hadoop1,上传 spark-3.0.0-bin-hadoop3.2.tgz 到 /program 目录下
解压缩
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz --no-same-owner
修改文件名
mv spark-3.0.0-bin-hadoop3.2 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
登录 hadoop1,
停止:
/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
增加 python3 环境变量(推荐)
spark-submit 和 pyspark 都使用python3
export PYSPARK_PYTHON=python3
立即生效
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:详见 链接
增加 python3 环境变量(不推荐)
spark-submit 和 pyspark 都使用python3
export PYSPARK_PYTHON=python3
启动 hadoop
start-dfs.sh
start-yarn.sh
测试 pyspark
执行下面命令:
pyspark --master yarn
执行结果如下:
查看yarn web页面
退出
输入下面命令退出:
exit()
测试 spark-submit
在生产环境中,一般用 scala、java实现,并打成 jar 包,然后提交并运行
spark 提供了一些例子,在 /examples/src/main/python 中
client 模式
spark-submit --master yarn /program/spark-3.0.0/examples/src/main/python/pi.py 10
解释:
--master yarnmaster为yarn/program/spark-3.0.0/examples/src/main/python/pi.py表示要执行的程序文件10:蒙特卡洛 算法计算 PI,这个数字越大,那么计算出PI的结果越准确
执行过程
通过下图红框处的 URL,可以访问 WEB 监控页面:
cluster 模式
spark-submit --master yarn --deploy-mode cluster /program/spark-3.0.0/examples/src/main/python/pi.py 10
解释:
--master yarnmaster为yarn--deploy-mode cluster表示 driver 运行在 yarn 上/program/spark-3.0.0/examples/src/main/python/pi.py表示要执行的程序文件10:蒙特卡洛 算法计算 PI,这个数字越大,那么计算出PI的结果越准确
执行过程
通过下图红框处的 URL,可以访问 WEB 监控页面:
执行结果
下图是单机运行的结果图:
由于提交到 yarn,所以在控制台中看不到执行结果,要在 yarn 的日志中查看
测试 pyspark
https://www.malaoshi.top/show_1IX3EWnrOnr0.html



