一、概述

关于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节点上):

http://【Master的地址】:8080/

到此为止Spark集群安装完毕

但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠,这个也比较简单,等待以后再介绍。当然了Worker也会挂掉,但是Worker的死活是由Master监听的,Master和Worker之间一直会有心跳,一旦Worker挂掉Master感知到以后就会把挂掉的Worker上运行的任务重新分配到其他的Worker上,具体细节待以后再介绍。

Spark系列—01 Spark集群的安装的更多相关文章

  1. 【Spark】---- 在Linux集群上安装和配置Spark

    1 安装JDK   1) 进入JDK官网 2) 下载JDK安装包 3)配置环境变量,在/etc/profile增加以下代码 JAVA_HOME=/home/hadoop/jdk1.6.0_38 PAT ...

  2. ElasticSearch实战系列一: ElasticSearch集群+Kinaba安装教程

    前言 本文主要介绍的是ElasticSearch集群和kinaba的安装教程. ElasticSearch介绍 ElasticSearch是一个基于Lucene的搜索服务器,其实就是对Lucene进行 ...

  3. Spark学习之在集群上运行Spark

    一.简介 Spark 的一大好处就是可以通过增加机器数量并使用集群模式运行,来扩展程序的计算能力.好在编写用于在集群上并行执行的 Spark 应用所使用的 API 跟本地单机模式下的完全一样.也就是说 ...

  4. 【原创 Hadoop&Spark 动手实践 5】Spark 基础入门,集群搭建以及Spark Shell

    Spark 基础入门,集群搭建以及Spark Shell 主要借助Spark基础的PPT,再加上实际的动手操作来加强概念的理解和实践. Spark 安装部署 理论已经了解的差不多了,接下来是实际动手实 ...

  5. hadoop+yarn+hbase+storm+kafka+spark+zookeeper)高可用集群详细配置

    配置 hadoop+yarn+hbase+storm+kafka+spark+zookeeper 高可用集群,同时安装相关组建:JDK,MySQL,Hive,Flume 文章目录 环境介绍 节点介绍 ...

  6. 在local模式下的spark程序打包到集群上运行

    一.前期准备 前期的环境准备,在Linux系统下要有Hadoop系统,spark伪分布式或者分布式,具体的教程可以查阅我的这两篇博客: Hadoop2.0伪分布式平台环境搭建 Spark2.4.0伪分 ...

  7. Spark Streaming揭秘 Day31 集群模式下SparkStreaming日志分析(续)

    Spark Streaming揭秘 Day31 集群模式下SparkStreaming日志分析(续) 今天延续昨天的内容,主要对为什么一个处理会分解成多个Job执行进行解析. 让我们跟踪下Job调用过 ...

  8. Spark Streaming揭秘 Day30 集群模式下SparkStreaming日志分析

    Spark Streaming揭秘 Day30 集群模式下SparkStreaming日志分析 今天通过集群运行模式观察.研究和透彻的刨析SparkStreaming的日志和web监控台. Day28 ...

  9. Spark学习之在集群上运行Spark(6)

    Spark学习之在集群上运行Spark(6) 1. Spark的一个优点在于可以通过增加机器数量并使用集群模式运行,来扩展程序的计算能力. 2. Spark既能适用于专用集群,也可以适用于共享的云计算 ...

随机推荐

  1. boost实现串口通信(一):小试牛刀

    /************************************************************************/ /* 功能:boost实现串口通信类 */ /* ...

  2. VS2010 C++ 操作Excel表格的编程实现

    转载请注明原文网址: http://www.cnblogs.com/xianyunhe/archive/2011/09/25/2190485.html 通过VC实现对Excel表格的操作的方法有多种, ...

  3. poj1840 哈希

    虽然这题目我曾经在我们学校OJ上做过但是我那时候是用的暴力做的,这次我用的是哈希写的,我写这题目时候开始是在main函数里面写哈希感觉很麻烦很不清晰,然后我换用函数来写,清晰了很多,写完就AC了.用哈 ...

  4. 运行ipython后显示WARNING: IPython History requires SQLite, your history will not be saved

    在CentOS6.5下将自带的python2.6升级到python2.7,并安装了ipython,启动ipython后显示如下信息: WARNING: IPython History requires ...

  5. Python网络编码

    #-*- coding:utf-8 -*- from SocketServer import ThreadingTCPServer, StreamRequestHandler import trace ...

  6. oracle11g导入到10g

    oracle11g导入到10g http://www.doc88.com/p-0827386468478.html

  7. POJ C程序设计进阶 编程题#3:寻找山顶

    编程题#3:寻找山顶 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 在一个 ...

  8. Custom PeopleSoft Queries

      The following SQL identifies custom queries created in your system from the PSQRYDEFN PeopleTools ...

  9. jquery 基础汇总---导图篇

    最近在慕课网学习了一些jquery的基础知识,为了方便记忆,整理出来的导图 jQuery基础总共分为4个部分,分别是样式篇.事件篇.动画篇.DOM篇. 样式篇,主要介绍jQuery的基础语法,选择器以 ...

  10. 14 个折磨人的 JavaScript 面试题

    前端工程师有时候面试时会遇到一类面试官,他们问的问题对于语言本身非常较真儿,往往不是候选人可能期待的面向实际的问题(有些候选人强调能干活就行,至于知不知道其中缘由是无关痛痒的).这类题目,虽然没有逻辑 ...