Spark系列—01 Spark集群的安装
一、概述
关于Spark是什么、为什么学习Spark等等,在这就不说了,直接看这个:http://spark.apache.org,
我就直接说一下Spark的一些优势:
1、快
与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上。Spark实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流。
2、易用
Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和Scala的shell,可以非常方便地在这些shell中使用Spark集群来验证解决问题的方法。
3、通用
Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用。Spark统一的解决方案非常具有吸引力,毕竟任何公司都想用统一的平台去处理遇到的问题,减少开发和维护的人力成本和部署平台的物力成本。
4、兼容性
Spark可以非常方便地与其他的开源产品进行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,并且可以处理所有Hadoop支持的数据,包括HDFS、HBase和Cassandra等。这对于已经部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark的强大处理能力。Spark也可以不依赖于第三方的资源管理和调度器,它实现了Standalone作为其内置的资源管理和调度框架,这样进一步降低了Spark的使用门槛,使得所有人都可以非常容易地部署和使用Spark。此外,Spark还提供了在EC2上部署Standalone的Spark集群的工具。
还有总结一句话:Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足。
二、集群安装
我们在自己的机器上就不要起那么多虚拟机了,就起3台虚拟机就够了(一台Master,两台Worker),当然了你的Linux机器需要先安装JDK和hdfs,我们要安装Spark-1.6.1最好使用JDK7以上。
先简单介绍一下Spark集群的一些概念:
Spark集群包括Master和Worker,Master只有一个,Worker可以有多个,Master和Worker之间通过RPC保持联系;
Master负责管理元数据,Worker负责运行Task,其中细节以后再详细介绍;
还有一个Driver,它就相当于Spark集群的客户端,主要负责向Spark集群提交任务,其中细节以后再详细介绍。
1、下载安装包
就不用写了,我们下载Spark-1.6.1

2、上传安装包并解压
解压安装包到指定位置:(这里我使用的是spark用户,把spark-1.6.1-bin-hadoop2.6.tgz 解压到了我的宿主目录下了)
tar -zxvf spark-1.6.1-bin-hadoop2.6.tgz –C /home/spark
3、配置Spark
进入Spark安装目录下的conf目录,重命名并修改spark-env.sh.template文件:
cd conf/
mv spark-env.sh.template spark-env.sh
在spark-env.sh添加以下配置:
vi spark-env.sh
export JAVA_HOME=[你的JDK_HOME目录]
export SPARK_MASTER_IP=[Spark集群的Master所在节点的地址:Master]
export SPARK_MASTER_PORT=7077[这个端口号是Driver连接Spark集群的端口]
重命名并修改slaves.template文件:
mv slaves.template slaves
在该文件中添加子节点所在的位置(即Worker节点):
vi slaves
[第一个Worker节点的地址:Worker1]
[第二个Worker节点的地址:Worker2]
将配置好的Spark拷贝到其他节点上:
scp -r spark-1.6.1-bin-hadoop2.6/ worker1:/home/spark
scp -r spark-1.6.1-bin-hadoop2.6/ worker2:/home/spark
4、安装完毕 测试启动
到此Spark集群安装完毕,需要启动测试一下,目前是1个Master,2个Work,在Master上启动Spark集群:(注意:不要在Worker上启动start-all,具体细节以后再介绍)
/home/spark/spark-1.5.2-bin-hadoop2.6/sbin/start-all.sh
(start-all.sh 就会启动Master和所有Worker,就不需要去每个Worker上启动了)
启动后在每台机器上执行jps命令,主节点上有Master进程,其他子节点上有Worker进程,登录Spark管理界面查看集群状态(登录地址必须是Master节点,因为Spark WebUI在Master节点上):
到此为止Spark集群安装完毕
但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠,这个也比较简单,等待以后再介绍。当然了Worker也会挂掉,但是Worker的死活是由Master监听的,Master和Worker之间一直会有心跳,一旦Worker挂掉Master感知到以后就会把挂掉的Worker上运行的任务重新分配到其他的Worker上,具体细节待以后再介绍。
Spark系列—01 Spark集群的安装的更多相关文章
- 【Spark】---- 在Linux集群上安装和配置Spark
1 安装JDK 1) 进入JDK官网 2) 下载JDK安装包 3)配置环境变量,在/etc/profile增加以下代码 JAVA_HOME=/home/hadoop/jdk1.6.0_38 PAT ...
- ElasticSearch实战系列一: ElasticSearch集群+Kinaba安装教程
前言 本文主要介绍的是ElasticSearch集群和kinaba的安装教程. ElasticSearch介绍 ElasticSearch是一个基于Lucene的搜索服务器,其实就是对Lucene进行 ...
- Spark学习之在集群上运行Spark
一.简介 Spark 的一大好处就是可以通过增加机器数量并使用集群模式运行,来扩展程序的计算能力.好在编写用于在集群上并行执行的 Spark 应用所使用的 API 跟本地单机模式下的完全一样.也就是说 ...
- 【原创 Hadoop&Spark 动手实践 5】Spark 基础入门,集群搭建以及Spark Shell
Spark 基础入门,集群搭建以及Spark Shell 主要借助Spark基础的PPT,再加上实际的动手操作来加强概念的理解和实践. Spark 安装部署 理论已经了解的差不多了,接下来是实际动手实 ...
- hadoop+yarn+hbase+storm+kafka+spark+zookeeper)高可用集群详细配置
配置 hadoop+yarn+hbase+storm+kafka+spark+zookeeper 高可用集群,同时安装相关组建:JDK,MySQL,Hive,Flume 文章目录 环境介绍 节点介绍 ...
- 在local模式下的spark程序打包到集群上运行
一.前期准备 前期的环境准备,在Linux系统下要有Hadoop系统,spark伪分布式或者分布式,具体的教程可以查阅我的这两篇博客: Hadoop2.0伪分布式平台环境搭建 Spark2.4.0伪分 ...
- Spark Streaming揭秘 Day31 集群模式下SparkStreaming日志分析(续)
Spark Streaming揭秘 Day31 集群模式下SparkStreaming日志分析(续) 今天延续昨天的内容,主要对为什么一个处理会分解成多个Job执行进行解析. 让我们跟踪下Job调用过 ...
- Spark Streaming揭秘 Day30 集群模式下SparkStreaming日志分析
Spark Streaming揭秘 Day30 集群模式下SparkStreaming日志分析 今天通过集群运行模式观察.研究和透彻的刨析SparkStreaming的日志和web监控台. Day28 ...
- Spark学习之在集群上运行Spark(6)
Spark学习之在集群上运行Spark(6) 1. Spark的一个优点在于可以通过增加机器数量并使用集群模式运行,来扩展程序的计算能力. 2. Spark既能适用于专用集群,也可以适用于共享的云计算 ...
随机推荐
- 对apply和call的理解
存在的原因: call和apply是为了动态改变this而出现的,当一个object没有某个方法,但是其他的有,我们可以借助call或apply用其它对象的方法来操作. call 和 apply 都是 ...
- 对象之间的引用传递 之 .NET中的深拷贝和浅拷贝
1.场景 首先,场景是这样的. 有一个Person类,类中有一个类型是Car的属性.用于表述,人开的车. Car类中有一些描述诸如汽车拼盘之类的属性.基本场景就是这样. 2.浅拷贝 Person ...
- [原]hdu2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (这个只是题目名字) (多重背包)
本文出自:http://blog.csdn.net/svitter 原题:http://acm.hdu.edu.cn/showproblem.php?pid=2191 题意:多重背包问题.转换成为01 ...
- 取得Android平台某设备上所有可用的Sensors
本来要写一个检测手机的温度的小应用,学习一下传感器的api,可结果怎么写不行.经检测,发现取得的Sensor为NULL,这才明白,我手机没有TYPE_AMBIENT_TEMPERATURE传感器. 于 ...
- js实现文字截断
先前用jq做了一个文字截断功能,但是不用jq的项目要实现此功能还要引如jq显得过于麻烦.这里写了一个js的文字截断功能.直接上代码. HTML(测试用的): <div>我是pox我是pox ...
- ISBN和标准编码关系以及概念
<中国标准书号>(China standard Book Number)是1986年由国家标准局批准颁发的一项国家标准(GB5795-86).该标准是在采用国际标准LSO2108——国际标 ...
- 关于Ajax跨域
本人因工作需求,编写了一个测试页面,在页面填写完信息之后去向一个站点请求数据,然后返回结果!一开始是直接用Ajax在脚本中去访问,没有大碍(因为目标地址是本机上的一个网站),但是当站点去外部的网站时, ...
- CentOS下MySQL忘记root密码解决方法【转载】
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录 ...
- 清除VS2012生成的不必要文件
VS2012生成的项目文件中会有一个与解决方案同名的sdf文件,并且比较大,可以删除的,具体方法如下: 英文版步骤如下: Tools->Options->Text Editor->C ...
- 第二十二章 数据访问(In .net4.5) 之 集合
1. 概述 本章内容包括 .net平台中的集合.如何选择集合 以及 如何实现自定义集合. 2. 主要内容 2.1 使用数组(Array) ]; ; x < arrayOfInt.Length; ...
