你好,游客 登录 注册 搜索
背景:
阅读新闻

Spark1.0.0部署指南

[日期:2014-07-17] 来源:Linux社区  作者:Scott007 [字体: ]

1 节点说明

 

IP

Role

192.168.1.111

ActiveNameNode

192.168.1.112

StandbyNameNode,Master,Worker

192.168.1.113

DataNode,Master,Worker

192.168.1.114

DataNode,Worker

HDFS集群和Spark集群之间节点共用。

2 安装HDFS

见HDFS2.X和Hive的安装部署文档:http://www.linuxidc.com/Linux/2014-07/104302.htm

3 Spark部署

Spark常用的安装部署模式有Spark On YarnStandalone,可以同时使用。

3.1 Spark on Yarn

这种模式,借助Yarn资源分配的功能,使用Spark客户端来向Yarn提交任务运行。只需将Spark的部署包放置到Yarn集群的某个节点上即可(或者是Yarn的客户端,能读取到Yarn集群的配置文件即可)。Spark本身的Worker节点、Master节点不需要启动。

但是,Spark的部署包须是基于对应的Yarn版本正确编译后的,否则会出现Spark和Yarn的兼容性问题。

on Yarn的两种运行方式,其运行结束后的日志不能在Yarn的Application管理界面看到,目前只能在客户端通过:

yarn logs -applicationId <applicationId>

命令查看每个Application的日志。

3.1.1 配置

部署这种模式,需要修改conf目录下的spark-env.sh文件。在其中新增如下配置选项:

 
export Hadoop_HOME= /home/hadoop/hadoop-2.0.0-cdh4.5.0

export HADOOP_CONF_DIR= $HADOOP_HOME/etc/hadoop

SPARK_EXECUTOR_INSTANCES=2

SPARK_EXECUTOR_CORES=1

SPARK_EXECUTOR_MEMORY=400M

SPARK_DRIVER_MEMORY=400M

SPARK_YARN_APP_NAME="Spark 1.0.0"
 

 

其中:

(1) HADOOP_HOME:当前节点中HDFS的部署路径,因为Spark需要和HDFS中的节点在一起;

(2) HADOOP_CONF_DIR:HDFS节点中的conf配置文件路径,正常情况下此目录为$HADOOP_HOME/etc/hadoop;

(3) SPARK_EXECUTOR_INSTANCES:在Yarn集群中启动的Worker的数目,默认为2个;

(4) SPARK_EXECUTOR_CORES:每个Worker所占用的CPU核的数目;

(5) SPARK_EXECUTOR_MEMORY:每个Worker所占用的内存大小;

(6) SPARK_DRIVER_MEMORY:Spark应用程序Application所占的内存大小,这里的Driver对应Yarn中的ApplicationMaster;

(7) SPARK_YARN_APP_NAME:Spark Application在Yarn中的名字;

配置完成后,将Spark部署文件放置到Yarn的节点中即可。这里,将spark-1.0.0整个目录放到Yarn集群的一个节点192.168.1.112的/home/hadoop(设为spark的安装路径的父目录)路径下。

 

3.1.2 测试

在Spark的部署路径的bin路径下,执行spark-submit脚本来运行spark-examples包中的例子。执行如下:

 
./bin/spark-submit --master yarn \

--class org.apache.spark.examples.JavaWordCount \

--executor-memory 400M \

--driver-memory 400M \

/home/hadoop/spark-1.0.0/examples/target/scala-2.10/spark-examples-1.0.0-hadoop2.0.0-cdh4.5.0.jar ./hdfs-site.xml
 

--------------------------------------分割线 --------------------------------------

CentOS 6.2(64位)下安装Spark0.8.0详细记录 http://www.linuxidc.com/Linux/2014-06/102583.htm

Spark简介及其在Ubuntu下的安装使用 http://www.linuxidc.com/Linux/2013-08/88606.htm

安装Spark集群(在CentOS上) http://www.linuxidc.com/Linux/2013-08/88599.htm

Hadoop vs Spark性能对比 http://www.linuxidc.com/Linux/2013-08/88597.htm

Spark安装与学习 http://www.linuxidc.com/Linux/2013-08/88596.htm

Spark 并行计算模型 http://www.linuxidc.com/Linux/2012-12/76490.htm

--------------------------------------分割线 --------------------------------------

这个例子是计算WordCount的,例子被打包在/home/hadoop/spark-1.0.0/examples/target/scala-2.10/spark-examples-1.0.0-hadoop2.0.0-cdh4.5.0.jar包中,对应的Class为org.apache.spark.examples.JavaWordCount./hdfs-site.xml是HDFS中指定路径下的一个文件,WordCount就是针对它来做的。而--master yarn就是指定运行在Yarn集群中,以yarn模式运行。

Spark On Yarn有两种运行模式,一种是Yarn Cluster方式,一种是Yarn Client方式。

(1) Yarn Cluster: Spark Driver程序将作为一个ApplicationMaster在YARN集群中先启动,然后再由ApplicationMaster向RM申请资源启动executor以运行Task。因为Driver程序在Yarn中运行,所以程序的运行结果不能在客户端显示,所以最好将结果保存在HDFS上,客户端的终端显示的是作为Yarn的job的运行情况。

(2) Yarn Client: Spark Driver程序在客户端上运行,然后向Yarn申请运行exeutor以运行Task,本地程序负责最后的结果汇总等。客户端的Driver将应用提交给Yarn后,Yarn会先后启动ApplicationMaster和executor,另外ApplicationMaster和executor都是装载在container里运行,container默认的内存是1G,ApplicationMaster分配的内存是driver-memory,executor分配的内存是executor-memory。同时,因为Driver在客户端,所以程序的运行结果可以在客户端显示,Driver以进程名为SparkSubmit的形式存在。

上面命令中的提交方式“yarn”就是默认按照“Yarn Client”方式运行。用户可自定义运行方式,通过“--master”指定程序以yarn、yarn-cluster或者yarn-client中的一种方式运行。

需要重点说明的是最后文件的路径,是相当于HDFS中的/user/hadoop而言,hadoop是当前命令的用户。“./hdfs-site.xml”在HDFS中的全路径为“hdfs://namespace/user/hadoop/hdfs-site.xml”,其中hadoop是当前的用户,namespace是HDFS的命名空间;如果写成“/hdfs-site.xml”则在HDFS中指的是“hdfs://namespace/hdfs-site.xml”;当然也可以直接传入“hdfs://namespace/user/hadoop/hdfs-site.xml”用于指定在HDFS中的要进行WordCount计算的文件。

另外,Spark应用程序需要的CPU Core数目和内存,需要根据当前Yarn的NodeManager的硬件条件相应设置,不能超过NodeManager的硬件条件。

 
./bin/spark-submit --master yarn \

--class org.apache.spark.examples.JavaWordCount \

--executor-memory 400M \

--driver-memory 400M \

/home/hadoop/spark-1.0.0/examples/target/scala-2.10/spark-examples-1.0.0-hadoop2.0.0-cdh4.5.0.jar hdfs://namespace/user/hadoop/hdfs-site.xml
 

 

在Yarn的ResourceManager对应的Web界面中查看启动的Application。

Running:

Success:

同时可以在启动脚本的客户端看到WordCount的运行结果:

 

3.2 Spark Standalone

这种模式,就是把Spark单独作为一个集群来进行部署。集群中有两种节点,一种是Master,另一种是Worker节点。Master负责分配任务给Worker节点来执行,并负责最后的结果合并,Worker节点负责具体的任务执行。

更多详情见请继续阅读下一页的精彩内容http://www.linuxidc.com/Linux/2014-07/104304p2.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款