机器部署

  准备三台Linux服务器,安装好JDK1.7

下载Spark安装包

  上传spark-2.1.0-bin-hadoop2.6.tgz安装包到Linux(intsmaze-131)上

 解压安装包到指定位置tar -zxvf spark-2.1.0-bin-hadoop2.6.tgz -C /home/hadoop/app/spark2.0/

原文和作者一起讨论:http://www.cnblogs.com/intsmaze/p/6569036.html

微信:intsmaze

配置Spark

  进入到Spark安装目录

  cd /spark-2.1.0-bin-hadoop2.6/conf

  mv spark-env.sh.template spark-env.sh

  vi spark-env.sh

  在该配置文件中添加如下配置  

export JAVA_HOME=/home/hadoop/app/jdk1.7.0_65
export SPARK_MASTER_IP=intsmaze-131(指定standalone模式中主节点master是哪一台spark节点)
export SPARK_MASTER_PORT=7077 

  mv slaves.template slaves

  vi slaves

  在该文件中添加子节点所在的位置(Worker节点)

intsmaze-131
intsmaze-132
intsmaze-134

  将配置好的Spark拷贝到其他节点上(注意节点的路径必须和master一样,否则master启动集群回去从节点中对应目录中去启动work,不一致会报No such file or directory)

scp -r spark-2.1.0-bin-hadoop2.6/ intsmaze-132:/home/hadoop/app/spark2.0/
scp -r spark-2.1.0-bin-hadoop2.6/ intsmaze-134:/home/hadoop/app/spark2.0/

  Spark集群配置完毕,目前是1个Master,3个Work,在intsmaze-131(master节点)上启动Spark集群

/home/hadoop/app/spark2.0/spark-2.1.0-bin-hadoop2.6/sbin/start-all.sh(spark集群不需要启动hadoop集群等,与hadoop集群无关。如果配置为spark on yarn上,那么必须启动spark和yarn集群而不需要启动hadoop)

  启动后执行jps命令,主节点上有Master进程和Work进程,其他子节点上有Work进程,登录Spark管理界面查看集群状态(主节点):http://intsmaze-131:8080/

执行第一个spark程序

/home/hadoop/app/spark2.0/spark-2.1.0-bin-hadoop2.6/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://intsmaze-131:7077 \
--executor-memory 1G \
--total-executor-cores 2 /home/hadoop/app/spark2.0/spark-2.1.0-bin-hadoop2.6/examples/jars/spark-examples_2.11-2.1.0.jar \
100

该算法是利用蒙特·卡罗算法求PI。

启动Spark Shell

  spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令行下用scala编写spark程序。

 /home/hadoop/app/spark2.0/spark-2.1.0-bin-hadoop2.6/bin/spark-shell \
--master spark://intsmaze-131:7077 \
--executor-memory 2g \
--total-executor-cores 2

参数说明:

--master spark://intsmaze-131:7077 指定Master的地址

--executor-memory 2g 指定每个worker可用内存为2G,现有集群该任务将无法启动,应该修改为512m。

--total-executor-cores 2 指定整个任务使用的cup核数为2个。

  注意:如果给该任务分配的资源无法达到指定的,将无法成功启动job。比如服务器节点可以内存为为1G,你设置每个worker2G,将会无法启动任务。askSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

  如果启动spark shell时没有指定master地址,但是也可以正常启动spark shell和执行spark shell中的程序,其实是启动了spark的local模式,该模式仅在本机启动一个进程,没有与集群建立联系。Spark Shell中已经默认将SparkContext类初始化为对象sc。用户代码如果需要用到,则直接应用sc即可。

在spark shell中编写WordCount程序

1.首先启动hdfs

2.向hdfs上传一个文件到intsmaze-131:9000/words.txt

3.在spark shell中用scala语言编写spark程序

sc.textFile("hdfs://192.168.19.131:9000/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("hdfs://192.168.19.131:9000/out")

4.使用hdfs命令查看结果

hdfs dfs -ls hdfs://intsmaze-131:9000/out/p*

说明:

sc是SparkContext对象,该对象时提交spark程序的入口
textFile(hdfs://intsmaze-131:9000/words.txt)是hdfs中读取数据
flatMap(_.split(" "))先map在压平
map((_,1))将单词和1构成元组
reduceByKey(_+_)按照key进行reduce,并将value累加
saveAsTextFile("hdfs://intsmaze-131:9000/out")将结果写入到hdfs中

配置Spark的高可用

  到此为止,Spark集群安装完毕,但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠,配置方式比较简单:

  Spark集群规划:intsmaze-131,intsmaze-132是Master;intsmaze-131,intsmaze-132,intsmaze-134是Worker

  安装配置zk集群,并启动zk集群

  停止spark所有服务,修改配置文件spark-env.sh,在该配置文件中删掉SPARK_MASTER_IP并添加如下配置

  export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=zk1,zk2,zk3 -Dspark.deploy.zookeeper.dir=/spark"

  在node4上执行sbin/start-all.sh脚本,然后在node5上执行sbin/start-master.sh启动第二个Master

Spark2.1集群安装(standalone模式)的更多相关文章

  1. flink部署操作-flink standalone集群安装部署

    flink集群安装部署 standalone集群模式 必须依赖 必须的软件 JAVA_HOME配置 flink安装 配置flink 启动flink 添加Jobmanager/taskmanager 实 ...

  2. CentOS7+Hadoop2.7.2(HA高可用+Federation联邦)+Hive1.2.1+Spark2.1.0 完全分布式集群安装

    1 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.9.1 2.9.2 2.9.2.1 2.9.2.2 2.9.3 2.9.3.1 2.9.3.2 2.9.3.3 2. ...

  3. 第5章 选举模式和ZooKeeper的集群安装 5-1 集群的一些基本概念

    xx就是我们的master,也就是我们的主节点.心跳机制,当有一个节点挂掉之后,整个集群还是可以工作的.选举模式,我们现在的master是正常运行的,但是在某些情况下它宕机了死机了,那么这个时候它这个 ...

  4. 大数据技术之_19_Spark学习_01_Spark 基础解析 + Spark 概述 + Spark 集群安装 + 执行 Spark 程序

    第1章 Spark 概述1.1 什么是 Spark1.2 Spark 特点1.3 Spark 的用户和用途第2章 Spark 集群安装2.1 集群角色2.2 机器准备2.3 下载 Spark 安装包2 ...

  5. CentOS6安装各种大数据软件 第十章:Spark集群安装和部署

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  6. spark集群安装并集成到hadoop集群

    前言 最近在搞hadoop+spark+python,所以就搭建了一个本地的hadoop环境,基础环境搭建地址hadoop2.7.7 分布式集群安装与配置 本篇博客主要说明,如果搭建spark集群并集 ...

  7. Spark入门:第2节 Spark集群安装:1 - 3;第3节 Spark HA高可用部署:1 - 2

    三. Spark集群安装 3.1 下载spark安装包 下载地址spark官网:http://spark.apache.org/downloads.html 这里我们使用 spark-2.1.3-bi ...

  8. 3 Spark 集群安装

    第3章 Spark集群安装 3.1 Spark安装地址 1.官网地址 http://spark.apache.org/ 2.文档查看地址 https://spark.apache.org/docs/2 ...

  9. (转)ZooKeeper伪分布式集群安装及使用

    转自:http://blog.fens.me/hadoop-zookeeper-intro/ 前言 ZooKeeper是Hadoop家族的一款高性能的分布式协作的产品.在单机中,系统协作大都是进程级的 ...

随机推荐

  1. CODEFORCES 125E MST Company 巧用Kruskal算法

    题意:给定一个带权边无向图,求最小生成树,且满足第一个节点的度为固定的k 无解则输出-1 数据规模: 节点数n和限制k<=5000 边数m<=10^5 时限8sec 思路: 首先时限比较宽 ...

  2. POJ3728 LCA RMQ DP

    题意简述:给定一个N个节点的树,1<=N<=50000 每个节点都有一个权值,代表商品在这个节点的价格.商人从某个节点a移动到节点b,且只能购买并出售一次商品,问最多可以产生多大的利润. ...

  3. 蓝桥网试题 java 基础练习 查找整数

    --------------------------------------------------------------------- 注意看清楚条件 别漏了 -1 -1 -1 --------- ...

  4. 自定义滚动条Js简版

    <!DOCTYPE html><html><head><meta charset="UTF-8"><title>自定义滚 ...

  5. IO的构造方法

    package com.file; /* File的构造方法: File(String pathname); File(File parent,String child); File(String p ...

  6. 763A - Timofey and a tree

    A. Timofey and a tree time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  7. 用label实现自适应宽度的方法

  8. Swift 2.2 协议和代理

    一:代理 两个类之间的传值,类A调用类B的方法,类B在执行过程中遇到问题通知类A,这时候我们需要用到代理(Delegate). 比如:控制器(Controller)与控制器(Controller)之间 ...

  9. tomcat的配置

    配置tomcat需要 先下载JDK JDE配置环境http://jingyan.baidu.com/article/870c6fc33e62bcb03fe4be90.htmlXML配置 路径——> ...

  10. bootstrap3 响应式布局栅格式布局

    抓住重点 下面开始实现Bootstrap版本3的Demo 案例 首先去官方网站  http://www.bootcss.com/ 下载 点击 进入 点击 进入 下载 把 相关的js和css 拷贝到项目 ...