Spark目前支持多种分布式部署方式:一、Standalone Deploy Mode;二Amazon EC2、;三、Apache Mesos;四、Hadoop YARN。第一种方式是单独部署,不需要有依赖的资源管理器,其它三种都需要将spark部署到对应的资源管理器上。

  除了部署的多种方式之外,较新版本的Spark支持多种hadoop平台,比如从0.8.1版本开始分别支持Hadoop 1 (HDP1, CDH3)、CDH4、Hadoop 2 (HDP2, CDH5)。目前Cloudera公司的CDH5在用CM安装时,可直接选择Spark服务进行安装。

  目前Spark最新版本是1.0.0。

  我们就以1.0.0版本,来看看如何实现Spark分布式集群的安装:

一、Spark 1.0.0需要JDK1.6或更高版本,我们这里采用jdk 1.6.0_31;

二、Spark 1.0.0需要Scala 2.10或更高版本,我们这里采用scala 2.10.3;

三、https://spark.apache.org/downloads.html 下载合适的bin包来安装,我们这里选择CDH4版本的spark-1.0.0-bin-cdh4.tgz;下载到tongjihadoop165上;

四、解压bin包:tar –zxf spark-1.0.0-bin-cdh4.tgz;

五、重命名:mv spark-1.0.0-bin-cdh4 spark-1.0.0-cdh4;

六、cd spark-1.0.0-cdh4 ;

  mv ./conf/spark-env.sh.template ./conf/spark-env.sh

七、vi ./conf/spark-env.sh 添加以下内容:

  export SCALA_HOME=/usr/lib/scala-2.10.3

  export JAVA_HOME=/usr/java/jdk1.6.0_31

  export SPARK_MASTER_IP=10.32.21.165

  export SPARK_WORKER_INSTANCES=3

  export SPARK_MASTER_PORT=8070

  export SPARK_MASTER_WEBUI_PORT=8090

  export SPARK_WORKER_PORT=8092

  export SPARK_WORKER_MEMORY=5000m

  SPARK_MASTER_IP这个指的是master的IP地址;SPARK_MASTER_PORT这个是master端口;SPARK_MASTER_WEBUI_PORT这个是查看集群运行情况的WEB UI的端口号;SPARK_WORKER_PORT这是各个worker的端口    号;SPARK_WORKER_MEMORY这个配置每个worker的运行内存。

八、vi ./conf/ slaves  每行一个worker的主机名,内容如下:

10.32.21.165

  10.32.21.166

  10.32.21.167

九、(可选) 设置 SPARK_HOME 环境变量,并将 SPARK_HOME/bin 加入 PATH:

vi /etc/profile ,添加内容如下:

export SPARK_HOME=/usr/lib/spark-1.0.0-cdh4

export PATH=$SPARK_HOME/bin:$PATH

十、将tongjihadoop165上的spark复制到tongjihadoop166和tongjihadoop167上:

  sudo scp -r hadoop@10.32.21.165:/usr/lib/spark-1.0.0-cdh4  /usr/lib

  安装scala时也可以这样远程拷贝文件并修改环境变量文件/etc/profile,改完之后别忘了source。

十一、执行   ./sbin/start-all.sh    启动spark集群;

  如果start-all方式无法正常启动相关的进程,可以在$SPARK_HOME/logs目录下查看相关的错误信息。其实,你还可以像Hadoop一样单独启动相关的进程,在master节点上运行下面的命令:

  在Master上执行:./sbin/start-master.sh

  在Worker上执行:./sbin/start-slave.sh 3 spark://10.32.21.165:8070 --webui-port 8090

十二、检查进程是否启动,执行jps命令,可以看到Worker进程或者Master进程。然后可以在WEB UI上查看http://tongjihadoop165:8090/可以看到所有的work 节点,以及他们的 CPU 个数和内存等信息。

十三、Local模式运行demo

  比如:./bin/run-example SparkLR 2 local   或者  ./bin/run-example SparkPi 2 local

  这两个例子前者是计算线性回归,迭代计算;后者是计算圆周率

十四、启动交互式模式:./bin/spark-shell --master spark://10.32.21.165:8070 , 如果在conf/spark-env.sh中配置了MASTER(加上一句export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}),就可以直接用  ./bin/spark-shell启动了。

  spark-shell作为应用程序,是将提交作业给spark集群,然后spark集群分配到具体的worker来处理,worker在处理作业的时候会读取本地文件。

  这个shell是修改了的scala shell,打开一个这样的shell会在WEB UI中可以看到一个正在运行的Application,如下图:

  最下面的是运行完成的Applications,workers列表是集群的节点列表。

  我们可以在这个打开的shell下对HDFS上的数据做一些计算,在shell中依次输入:

  A、val file = sc.textFile("hdfs://10.32.21.165:8020/1639.sta")  #这是加载HDFS中的文件

  B、file.map(_.size).reduce(_+_)         #这是计算文件中的字符个数

  运行情况,如下图:

最终结果可以看出有346658513个字符。速度非常快用时不到3s。

  或者B阶段执行val count = file.flatMap(line => line.split("\t")).map(word => (word, 1)).reduceByKey(_+_) 和count.saveAsTextFile("hdfs://10.32.21.165:8020/spark") 将计算结果存储到HDFS上的/spark目录下。

  也可以执行./bin/spark-shell --master local[2] ,启动一个本地shell ,[2]可以指定线程数,默认是1。

  执行exit可以退出shell。

十五、执行   ./sbin/stop-all.sh   停止spark集群

也可以通过单独的进程的stop脚本终止

注意:三台机器spark所在目录必须一致,因为master会登陆到worker上执行命令,master认为workerspark路径与自己一样。

参考:

1、  http://www.linuxidc.com/Linux/2014-06/103210p2.htm

2、  http://spark.apache.org/docs/latest/

3、  http://blog.csdn.net/myrainblues/article/details/22084445

Spark-1.0.0 standalone分布式安装教程的更多相关文章

  1. arcsde10.0 for oracle11g 分布式安装教程

    [操作系统] oracle :windows server 2008ArcSDE:win7[数据库版本]  Oracle 11g [ArcSDE版本]  ArcSDE 10.0 1.在要安装ArcSD ...

  2. CentOS7-64bit 编译 Hadoop-2.5.0,并分布式安装

    摘要 CentOS7-64bit 编译 Hadoop-2.5.0,并分布式安装 目录[-] 1.系统环境说明 2.安装前的准备工作 2.1 关闭防火墙 2.2 检查ssh安装情况,如果没有则安装ssh ...

  3. MySQL 8.0.12 基于Windows 安装教程(超级详细)

    MySQL 8.0.12 基于Windows 安装教程(超级详细) (一步一步来,装不了你找我!) 本教程仅适用Windows系统,如果你原本装了没装上,一定要先删除原本的数据库,执行:mysqld ...

  4. Hadoop2.2.0多节点分布式安装及测试

    众所周知,hadoop在10月底release了最新版2.2.很多国内的技术同仁都马上在网络上推出了自己对新版hadoop的配置心得.这其中主要分为两类: 1.单节点配置 这个太简单了,简单到只要懂点 ...

  5. mysql 8.0.19 win10快速安装教程

    本文教程为大家分享了mysql 8.0.19安装教程,供大家参考,具体内容如下 1.下载.zip安装文件 2.根目录存放my.ini,文件路径用“/”分割,例如: [mysqld] port=3306 ...

  6. Capture One 21 Pro 14.0.2.36中文版安装教程

    Capture One 21 Pro 14.0.2.36 for windows是一款由丹麦PHASE ONE飞思公司推出的.非常专业强大的图像处理编辑工具. 下载 Capture One 21 Pr ...

  7. phpstorm10.0.3破解版安装教程及汉化方法

    phpstorm是一个轻量级且便捷的PHP IDE,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查.不但是php开发的利器,前端开发也是毫不逊色的.下面记录php ...

  8. mysql8.0.11绿色版安装教程

    解压到安装目录 在根目录建立data文件夹 建立my.ini文件 代码如下 # Other default tuning values # MySQL Server Instance Configur ...

  9. Linux下Storm2.1.0的伪分布式安装

    官方下载网址:http://storm.apache.org/downloads.html 1.第一步我们先从官网下载解压包  2.然后进行解压 3.配置环境变量 在profile里面插入如下格式语句 ...

随机推荐

  1. IOS开发之—— UITextView禁止Emoji输入

    UITextView代理方法:判断 -(void)textViewDidEndEditing:(UITextView *)textView{        if ([self stringContai ...

  2. 20145303 20145339 《信息安全系统设计基础》 实验五 简单嵌入式WEB服务器实验

    20145303 20145339 <信息安全系统设计基础> 实验五 简单嵌入式WEB服务器实验 实验目的与要求 1.掌握在ARM开发板实现一个简单WEB服务器的过程 2.学习在ARM开发 ...

  3. Java:静态代理 and 动态代理

    代理模式是常用的设计模式,其特征是代理类与委托类具有相同的接口,在具体实现上,有静态代理和动态代理之分.代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并 ...

  4. 第二十三课:jQuery.event.add的原理以及源码解读

    本课主要来讲解一下jQuery是如何实现它的事件系统的. 我们先来看一个问题: 如果有一个表格有100个tr元素,每个都要绑定mouseover/mouseout事件,改成事件代理的方式,可以节省99 ...

  5. 每天一个linux命令(50):telnet命令

    telnet 命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族中的一员,是 Internet远程登陆服务的标准协议和主要方式.它为 ...

  6. 【RSYSLOG】rsyslog作为日志采集器安装配置说明

    RSYSLOG is the rocket-fast system for log processing. About 由于环境基于CentOS 6.7 x64,rsyslog本身就是OS的组件,由于 ...

  7. 调研Android平台开发环境的发展演变

    Android是Google推出的开源手机操作系统,主要以开发应用为主,要进行Android开发首先得搭建好开发平台.最近在搭建Android的开发环境,发现往往一个小问题都能花费你大半天时间,从刚开 ...

  8. java.lang.NoSuchFieldError: deferredExpression

    处理:遇到这个异常的时候是用jstl标签,是版本问题,由于MyEclipse添加Java EE5,其中自动包括了jstl1.2的版本,lib中又存在一个jstl1.1.2的jar包,把旧版本的删掉就可 ...

  9. nginx 下 location 配置解释

    当我们在使用负载均衡和反向代理的时候 我们会考到虚拟主机下面有着个配置 现在我们看一下反向代理的location 下面的配置实例: server { listen 80 ;    监听的端口号 ser ...

  10. 【BZOJ 2002】【Hnoi 2010】弹飞绵羊 分块||Link Cut Tree 两种方法

    ShallWe,Yveh,hmy,DaD3zZ,四人吃冰糕从SLYZ超市出来后在马路上一字排开,,,吃完后发现冰糕棍上写着:“向狮子座表白:愿做你的小绵羊”,,, 好吧在这道题里我们要弹飞绵羊,有分块 ...