spark yarn集群(二)
现阶段公司常用的是hadoop环境,spark可以使用yarn进行资源管理,所以今天准备搭建一套spark-yarn集群。
前言
目前已准备好hadoop集群,节点如下
主机名 | 角色 |
---|---|
spark | NameNode,ResourceManager |
spark-w1 | DataNode,NodeManager |
spark-w2 | DataNode,NodeManager |
开始spark安装
1.下载spark包
这次采用的是spark-3.1.2-bin-without-hadoop.tgz,需要自行安装hadoop,环境已具备。
2.spark配置
1)配置环境变量,在/etc/profile中添加如下内容:
export SPARK_HOME=/opt/software/spark-3.1.2-bin-without-hadoop
export PATH=export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
2)配置spark中的workers,这个是相当于工作节点
spark
spark-w1
spark-w2
3)配置spark中spark-env.sh
export JAVA_HOME=/opt/software/jdk1.8.0_291
export SPARK_MASTER_IP=spark
export SPARK_MASTER_PORT=7077
export HADOOP_HOME=/opt/software/hadoop-3.2.2
export HADOOP_CONF_DIR=/opt/software/hadoop-3.2.2/etc/hadoop
export export SPARK_DIST_CLASSPATH=$(${HADOOP_HOME}/bin/hadoop classpath)
注意:尤其是最后一句SPARK_DIST_CLASSPATH设置,这个不设置可能导致spark提交任务失败,应该是缺少hadoop包
3.启动
对,你没看错,开始启动了,配置完了;
执行hadoop/sbin/包中的start-all.sh,注意是hadoop包中
./sbin/start-all.sh
在各个节点中执行jps命令,查看启动情况
这是主节点中的
这是worker节点中
4.执行wordcount
我自己准备了个wordcount包,然后执行如下命令
spark-submit
--master yarn
--deploy-mode cluster
--class WordCount ##启动类
wc.jar ## 包名
input ##文件输入路径(hdfs中的)
结果如下,浏览器浏览yarn界面(http://spark:8088)
总结
spark-yarn集群安装启动时不需要单独启动spark的进程的,它是由yarn来进行资源管理和分配的。