spark3.0-python教程:yarn模式安装(spark-3.0.0-bin-hadoop3.2.tgz)

介绍

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

http://hadoop2:8088/

退出

输入下面命令退出:

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 yarn master为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 yarn master为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


原文出处:/show_1IX3FUyvxD9G.html