Hadoop YARN模式

Reads: 748 Edit

Hadoop YARN模式把Spark作为一个客户端,将作业提交给Yarn服务,从而提高资源利用效率。

Hadoop YARN模式部署

Hadoop和Spark部署

Hadoop YARN模式需要在集群上同时部署Hadoop和Spark。

hadoop集群和spark集群搭建参考前面的内容!

Spark配置

当hadoop和spark在集群上部署好后。为了使用Hadoop YARN模式,需要对Spark进行一些额外的配置

spark-env.sh

打开spark-env.sh

$ cd /usr/local/spark-3.3.1-bin-hadoop3-scala2.13/conf

$ sudo vim spark-env.sh

在文件末尾添加上Hadoop的环境变量,以及log文件参数(注意所有集群上的主机都需要修改)。

export HADOOP_HOME=/usr/local/hadoop-3.3.4/
export HADOOP_CONF_DIR=/usr/local/hadoop-3.3.4/etc/hadoop

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs://master:8020/directory -Dspark.history.retainedApplications=30"

spark-defaults.conf

打开spark-defaults.conf,配置spark日志服务

$ mv spark-defaults.conf.template spark-defaults.conf
$ vim spark-defaults.conf

在末尾添加如下内容(其中端口8020需要与hadoop中core-site.xml配置文件中的hdfs端口一致;/directory目录需要提前手动创建):

spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://master:8020/directory

创建/directory目录

如果已经格式化namenode,可以不用再执行hdfs namenode -format命令

$ cd /usr/local/hadoop-3.3.4/
$ hdfs namenode -format
$ hadoop fs -mkdir /directory

启动Hadoop YARN模式

1 启动hadoop

master主机上:

$ cd /usr/local/hadoop-3.3.4 
$ ./sbin/start-all.sh

启动后,在主系统浏览器输入:http://192.168.72.142:9870 ,即可进入hdfs文件管理页面

big-74

点击页面的Browse the file system按钮,可以查看创建的/directory目录

big-75

2 启动ResourceManager

slave1主机上:

$ cd /usr/local/hadoop-3.3.4
$ ./sbin/start-yarn.sh

启动后,在主系统浏览器输入:http://192.168.72.143:8088 ,即可进入Resource管理页面

big-76

3 启动spark

master主机上:

$ cd /usr/local/spark-3.3.1-bin-hadoop3-scala2.13
$ ./sbin/start-all.sh

启动后,在主系统浏览器输入:http://192.168.72.142:8080 ,即可进入Spark管理页面

big-77

4 启动spark jobhistoryServer

slave1主机上:

$ cd /usr/local/spark-3.3.1-bin-hadoop3-scala2.13
$ ./sbin/start-history-server.sh

启动成功后,slave1主机上执行jps命令,会出现JobHistoryServer进程

DataNode
ResourceManager
JobHistoryServer
NodeManager
Worker
Jps

在主系统浏览器输入:http://192.168.72.143:18080 ,即可进入Spark History管理页面

big-78

5 启动Historyserver(slave1)

slave1主机上:

$ cd /usr/local/hadoop-3.3.4
 $ ./sbin/mr-jobhistory-daemon.sh  start historyserver

启动成功后,slave1主机上执行jps命令,会出现HistoryServer进程

DataNode
ResourceManager
JobHistoryServer
NodeManager
HistoryServer
Worker
Jps

Hadoop YARN模式例子

client模式

master主机上(参数“--master yarn”表示使用Hadoop YARN模式来运行程序。):

$ cd /usr/local/spark-3.3.1-bin-hadoop3-scala2.13/bin

$ spark-submit --master yarn --deploy-mode client --class org.apache.spark.examples.SparkPi /usr/local/spark-3.3.1-bin-hadoop3-scala2.13/examples/jars/spark-examples_2.13-3.3.1.jar 100

计算结果直接在控制台显示:

big-79

cluster模式

client模式主要用于调试,生产环境中主要使用cluster模式。

master主机上:

$ cd /usr/local/spark-3.3.1-bin-hadoop3-scala2.13/bin

$ spark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi /usr/local/spark-3.3.1-bin-hadoop3-scala2.13/examples/jars/spark-examples_2.13-3.3.1.jar 100

查看运算结果

cluster模式中,运行信息不再控制台显示,需要从spark history管理页面查看。在主系统浏览器输入:http://192.168.72.143:18080 ,然后点击刚在运行的AppID,进入对应app的管理页面。

big-72

在app管理页面,点击右上方的Executors,切换到Executors页面。ExecutorsID中的driver保存了计算结果,可以点击打开。

big-73

计算结果如下所示:

big-80

查看日志

cluster模式中,运行信息不再控制台显示,所以当程序错误时不显示具体的erro信息,需要从log文件中查看。

在主系统浏览器输入:http://192.168.72.143:8088/ ,然后点击刚在运行的AppID,进入app管理页面。

big-81

在app管理页面,可以点击History和Logs查看。

big-82

或者,也可以在主系统浏览器输入:http://192.168.72.142:9870 ,进入hdfs文件管理页面,然后进入Directory目录查看日志。

big-83


获取案例软件和数据,请关注微信公众号并回复:big_dt3


Comments

Make a comment