Spark-on-Yarn集群的搭建

Spark master/deploy mode说明

spark driver: 运⾏main函数并且新建SparkContext的程序,日志收集。对用户来说,最重要的体验就是当driver是本机时(deploy-mode=client模式),他们可以看到日志。

--deploy-mode: Whether to launch the driver program locally("client") or on one of the worker machines inside the cluster("cluster") (default:client)

--master: 资源管理选项,当选择是yarn时,由yarn管理资源。

deploy-mode模式对Spark on Yarn模式下Driver和ApplicationMaster的关系的影响:

Cluster: Driver位于ApplicationMaster进程中,我们需要通过Hadoop默认指定的8088端口来通过Web控制台查看当前Spark程序运行的信息。

Client: Driver为提交代码的机器上,此时ApplicationMaster依旧位于集群中且只负责资源的申请和launchExecutor,此时启动后的Executor并不会向ApplicationMaster进程注册,而是向Driver注册

安装步骤参考这篇文章, 非常详细: 
https://blog.csdn.net/chengyuqiang/article/details/77864246

启动语句

spark-shell --master yarn --deploy-mode client

文中提到运行后一个错误: ERROR spark.SparkContext: Error initializing SparkContext.

原因是YARN的分配给container的内存不够, 解决办法修改YARN的配置文件yarn-site.xml :

<property>        
	<name>yarn.nodemanager.vmem-check-enabled</name>        
	<value>false</value>        
	<description>Whether virtual memory limits will be enforced for containers</description>    
</property>    
<property>        
	<name>yarn.nodemanager.vmem-pmem-ratio</name>        
	<value>4</value>        
	<description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>    
</property>

转者注:

1. 启动hadoop后等几分钟再启动Spark-on-yarn, 否则namenode还处于safe mode, 也可能导致错误

2. 单节点的集群, 需要额外配置一下spark-evn.sh, 加上红色的一行

HADOOP_CONF_DIR=/home/rav009/hadoop-2.8.0/etc/hadoop/
SPARK_LOCAL_IP="127.0.0.1"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱知菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值