spark集群搭建,standalone
有写的不对的地方,欢迎各位同学评论指正,博主会进行修改。
这是博主搭建spark集群经验,不使用yarn或是Mesos,spark自身的集群环境,考虑到实际应用,过两日博主会把本文改成spark集群高可用搭建。
虽然本文不使用yarn或Mesos,但是先按照本文方式安装配置,在加入所需要的组件,也是可以的。另外,希望各位同学不要曲解,博主也曾在百度知道上面看过一些人的回答,但是结合博主遇到问题中请教的一些大牛说法,再结合博主安装开发实际经验,和对源码的一小部分剖析,给大家重新定位一下spark。hadoop有自己的一套生态环境,以core为中心,开源为原则,新颖的设计思路与构思,吸引无数程序员趋之若鹜,在core的基础上,开发出庞大生态体系组件,构成一个hadoop方向。spark也类似,有自己核心的core,spark团队,以此为中心开发出各个组件,构成了spark自己庞大的生态系统。spark也是一个独立的方向,所以,千万不要曲解spark只是附属于hadoop,这样对你深入学习spark不利。
spark和hadoop的关系,相辅相成,有些人说spark和hadoop不是敌人是朋友,这些人才是真正懂这两者的。spark和hadoop有交集部分,也有各自独特的部分,比如:大疆的spark无人机,spark的机器学习组件。相较于hadoop来说是最独特的。在后续安装中,也会有这方面东西,我们也可以单独拧出来讨论我的观点。比如:有的人会问,你说hadoop和spark是两个不相干的方向,那为什么你后面配置文件中和主流的spark集群搭建方式中,又要把spark的日志放进HDFS中,既然spark独立又为什么要配yarn?这里,博主给你解释。spark把日志放进HDFS不是因为基于hadoop,这是本末倒置的理解,日志文件放进文件系统自然天经地义,而若是各个节点放进自己本地,日志便会脑裂,各节点日志内容不一样,而放入一个共享资源库,多个节点常常要同时读写,天长地久一个共享资源库必然会瓶颈。那我们就用一个分布式文件系统去解决,譬如:我们这里不用HDFS,而是选用DFS、KASS,一样能实现。只不过HDFS更加主流,会的人也多,依赖的hadoop方向主流,为此,我们选择了他。而yarn呢?我就告诉你,这里这篇配置,就会无关于yarn的配置。
环境说明
工具:
虚拟机 vmware
操作系统 红帽7(red hat 7)
spark 2.1
JAVA 1.8
scala 2.11
HA模式 hadoop2.6版本对应的各组件,若这环境不会搭,博主有文章介绍搭建:http://blog.csdn.net/m0_37590135/article/details/74024929
环境拟定:三节点,主机分别叫node1,node2,node3,ip分别对应:192.168.163.131、192.168.163.130、192.168.163..132
1、下载
下载地址:spark官方下载地址
注意!这里一定要选择Pre的,博主曾犯傻,下了个Source Code。导致后面都配置完,启动Spark-shell报错,告我没编译,然后博主就哭了。
2、安装
安装没什么好说的,tar zxvf 文件名,解压归档就完事,然而还是上个图。
3、环境其他准备
4、开始搭建
4.1、新建路径
4.2、配置文件配置
[aaa@qq.com conf]# cp spark-env.sh.template spark-env.sh
[aaa@qq.com conf]# cp spark-defaults.conf.template spark-defaults.conf
[aaa@qq.com conf]# cp slaves.template slaves
下面开始修改:vi spark-env.sh
export JAVA_HOME=/usr/local/JAVA8
export HADOOP_HOME=/usr/local/hadoop-2.6.0-cdh5.11.0
export SPARK_MASTER_HOST=node1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_MERMORY=2G
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=7777 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://cam:8020/sparkHistoryLogs -Dspark.history.fs.updateInterval=10"
spark.master spark://node1:7077
spark.eventLog.enabled true
spark.eventLog.dir hdfs://cam:8020/sparkHistoryLogs
spark.history.fs.update.interval 5
spark.history.ui.port 7777
spark.history.fs.logDirectory hdfs://cam:8020/sparkHistoryLogs
# spark.serializer org.apache.spark.serializer.KryoSerializer
5、验证
[aaa@qq.com bin]# spark-shell --master spark://master主机名:7077
操作简单的几段scala,看控制台信息。没有问题即是ok。为了以防万一,最好每个节点都试一下。推荐阅读
-
CentOS7上安装Jupyter notebook使用pyspark连接spark集群
-
Spark —— 高可用集群搭建
-
spark1.6.1集群部署(standalone)
-
hadoop&spark集群搭建
-
Spark+zookeeper搭建高可用集群学习笔记
-
搭建Spark Standalone集群
-
Spark --最全的安装部署 local本地模式spark安装 spark--standalone集群安装 spark-HA高可用安装 spark on yarn安装
-
Centos7下面Spark集群的搭建
-
Spark 集群搭建(完整)
-
Spark源码分析-1.集群架构介绍和SparkContext源码分析