spark on yarn 配置

之前一直是在搭建好的集群上使用spark。 这次需要在新的集群上使用spark,但是集群只安装了hdfs和yarn组件。经过别人提醒,可以直接spark on yarn运行,经过收集资料,汇总如下:

1. spark on yarn配置

有关spark on yarn的配置参考:https://blog.csdn.net/qq_21439395/article/details/80678372

在配置好hdfs和yarn之后,只需要简单的配置 spark-env.sh文件

export JAVA_HOME=/usr/local/jdk1.8.0_131
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

经过简单配置之后,即可使用spark-submit把spark任务提交给yarn

spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 4g \
--executor-memory 2g \
--executor-cores 1 \
--queue thequeue \
examples/jars/spark-examples*.jar \
10

注意:yarn的capacity-scheduler.xml文件修改配置保证资源调度按照内存+CPU模式

<property> 
	<name>yarn.scheduler.capacity.resource-calculator</name> 
	<!-- <value>org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator</value> --> 
	<value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value> 
</property>

2. spark on yarn的spark-history-server配置

参考资料:https://blog.csdn.net/oufuji/article/details/50370490

首先配置spark-defaults.conf,指定spark事件log记录地址

spark.eventLog.dir=hdfs://mycluster/user/spark/applicationHistory
spark.eventLog.enabled=true
spark.yarn.historyServer.address=http://snn.hadoop:18018

配置spark-evn.sh环境变量

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18018 -Dspark.history.fs.logDirectory=hdfs://mycluster/user/spark/applicationHistory"

启动spark-history-server

$ start-history-server.sh

配置完之后,提交的yarn程序即可通过yarn的web ui连接到spark的ui界面

为了更好的分析应用,也需要相应的打开yarn的日志功能, 修改配置文件yarn-site.xml

<property>
	<description>Whether to enable log aggregation</description>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>

yarn查看日志命令: yarn logs -applicationId <application_1550502527158_0001>

3. spark on yarn的jar包共享

经过前面两步之后,我们已经可以正常提交任务,查看应用情况,但是每次提交都需要把jar包打包到hdfs,为此,可以把共享的jar包放在hdfs路径,通过配置环境变量,让应用从hdfs上获取。

参考资料:

  1. https://blog.csdn.net/lxhandlbb/article/details/54410644
  2. https://blog.csdn.net/coder__cs/article/details/79301969

上传jar包到hdfs对应目录

$ hdfs dfs -mkdir spark_jars
$ hdfs dfs -put $SPARK_HOME/jars/* spark_jars/

spark-default.conf配置

spark.yarn.jars=hdfs://mycluster/user/spark/spark_jars/*.jar

后续提交spark on yarn任务就不需要每次都上传jar包到hdfs

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值