Spark学习笔记-Day4 Mac-Yarn模式启动Spark

Yarn 模式启动Spark

准备运行环境

  1. 用下面的命令下载spark和hadoop包至mac电脑或虚拟机.
wget https://mirrors.estointernet.in/apache/spark/spark-3.1.1/spark-3.1.1-bin-hadoop2.7.tgz
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
  1. 将文件解压到opt文件夹
tar -zxvf spark-3.1.1-bin-hadoop2.7.tgz -C /opt
tar -zxvf hadoop-2.7.7.tar.gz -C /opt
  1. 改一下文件夹的名称,改为spark和hadoop
mv spark-3.1.1-bin-hadoop2.7 spark
mv hadoop-2.7.7 hadoop
  1. 已经有java,scala环境的,可以跳过下面这一步,下载完成之后我们可以用第三条语句查看jdk的位置。
apt-get update
apt-get install -y openjdk-8-jdk
apt-get install scala
$(dirname $(dirname $(realpath $(which javac))))
  1. 首先我们配置hadoop环境, 使用Pseudo-Distributed Operation(伪分布式)方式,具体操作可以参考下面这个链接.
  2. 进入 修改*/hadoop/etc/hadoop/hadoop-env.sh, 加入下面的代码。
    hadoop伪分布式环境配置,注意只做Configuration,Setup passphraseless ssh,Execution 的 step 1,2.
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}
  1. 配置yarn环境,mapred-site.xml
<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>
  1. 配置yarn环境,yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
<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>
        <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>127.0.0.1</value>
</property>
</configuration>
  1. 修改spark-env.sh 文件, 加入java和yarn环境
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export YARN_CONF_DIR=/opt/hadoop/etc/hadoop
  1. 启动spark, hdfs, yarn服务。
# 启动spark
*/sbin/start-all.sh
# 启动hdfs
*/bin/hdfs namenode format
*/bin/start-hdfs.sh
# 启动yarn
*/bin/start-yarn.sh
  1. 测试一下集群模式,这是是用root用户做的,使用 sudo -s 切换root用户。
  2. 可以用显示结果里面的tracking URL来查看任务
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
./examples/jars/spark-examples_2.12-3.1.1.jar \
10

# 输出结果 显示成功
21/04/13 12:27:09 INFO yarn.Client: 
	 client token: N/A
	 diagnostics: N/A
	 ApplicationMaster host: ying-vm
	 ApplicationMaster RPC port: 37807
	 queue: default
	 start time: 1618316804207
	 final status: SUCCEEDED
	 tracking URL: http://ying-vm:8088/proxy/application_1618217240703_0004/
	 user: root

以上就是yarn模式下启动spark, 这里我没有做集群的部署,因为之前做项目的时候做了一遍。但是有一个重点需要提一下就是High Available(高可用),就是当master节点别shutdown的时候,或者故障时,需要启用其他的worker(备用master)来重新链接上服务,增加集群的可用性,这里可以用zookeeper来实现。高可用这里引用一篇知乎的文章,大家可以看一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值