Spark2.1集群安装(standalone模式)

机器部署

  准备三台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拷贝到其他节点上

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

时间: 2024-10-13 05:06:10

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

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

1       VM网络配置... 3 2       CentOS配置... 5 2.1             下载地址... 5 2.2             激活网卡... 5 2.3             SecureCRT. 5 2.4             修改主机名... 6 2.5             yum代理上网... 7 2.6             安装ifconfig. 8 2.7             wget安装与代理... 8 2.8       

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

flink集群安装部署 standalone集群模式 必须依赖 必须的软件 JAVA_HOME配置 flink安装 配置flink 启动flink 添加Jobmanager/taskmanager 实例到集群 个人真实环境实践安装步骤 必须依赖 必须的软件 flink运行在所有类unix环境中,例如:linux.mac.或者cygwin,并且集群由一个master节点和一个或者多个worker节点.在你开始安装系统之前,确保你有在每个节点上安装以下软件. java 1.8.x或者更高 ssh 如

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

xx就是我们的master,也就是我们的主节点.心跳机制,当有一个节点挂掉之后,整个集群还是可以工作的.选举模式,我们现在的master是正常运行的,但是在某些情况下它宕机了死机了,那么这个时候它这个集群里面就少了master,没有master两个slave需要去竞争.竞争完之后slave1把slave2给干了,或者slave2把slave1给干了,干了之后我们会有剩下一个,剩下的这个就成功地成为了另外一个的master. 如果原来的master恢复了,经过运维重启或者修复成功之后,其实它会再额

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

前言 最近在搞hadoop+spark+python,所以就搭建了一个本地的hadoop环境,基础环境搭建地址hadoop2.7.7 分布式集群安装与配置 本篇博客主要说明,如果搭建spark集群并集成到hadoop 安装流程 安装spark需要先安装scala 注意在安装过程中需要对应spark与scala版本, spark 也要跟hadoop对应版本,具体的可以在spark官网下载页面查看 下载sacla并安装 https://www.scala-lang.org/files/archive

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

三. Spark集群安装 3.1 下载spark安装包 下载地址spark官网:http://spark.apache.org/downloads.html 这里我们使用 spark-2.1.3-bin-hadoop2.7版本. 3.2 规划安装目录 /export/servers 3.3 解压安装包 tar -zxvf spark-2.1.3-bin-hadoop2.7.tgz 3.4 重命名目录 mv spark-2.1.3-bin-hadoop2.7 spark 3.5 修改配置文件 配置

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

转自:http://blog.fens.me/hadoop-zookeeper-intro/ 前言 ZooKeeper是Hadoop家族的一款高性能的分布式协作的产品.在单机中,系统协作大都是进程级的操作.分布式系统中,服务协作都是跨服务器才能完成的.在ZooKeeper之前,我们对于协作服务大都使用消息中间件,随着分布式系统的普及,用消息中间件完成协作,会有大量的程序开发.ZooKeeper直接面向于分布式系统,可以减少我们自己的开发,帮助我们更好完成分布式系统的数据管理问题. 目录 zook

Spark 个人实战系列(1)--Spark 集群安装

前言: CDH4不带yarn和spark, 因此需要自己搭建spark集群. 这边简单描述spark集群的安装过程, 并讲述spark的standalone模式, 以及对相关的脚本进行简单的分析. spark官网: http://spark.apache.org/downloads.html *)安装和部署 环境: 172.16.1.109~172.16.1.111三台机器(对应域名为tw-node109~tw-node111), centos6.4, 已部署cdh4 目标是: 搭建一个spar

Spark On YARN 分布式集群安装

一.导读 最近开始学习大数据分析,说到大数据分析,就必须提到Hadoop与Spark.要研究大数据分析,就必须安装这两个软件,特此记录一下安装过程.Hadoop使用V2版本,Hadoop有单机.伪分布式.分布式三种部署方案,这里使用分布式部署方案.而Spark有三种部署方案:Standalone, Mesos, YARN,而本文采用在YARN上的分布式集群部署方案. 具体软件环境: Ubuntu 14.04.3 LTS (GNU/Linux 3.16.0-67-generic x86_64) j

Storm集群安装详解

Storm集群安装详解 storm有两种操作模式: 本地模式和远程模式. 本地模式:你可以在你的本地机器上开发测试你的topology, 一切都在你的本地机器上模拟出来; 远端模式:你提交的topology会在一个集群的机器上执行. 本文以Twitter Storm官方Wiki为基础,详细描述如何快速搭建一个Storm集群,其中,项目实践中遇到的问题及经验总结,在相应章节以“注意事项”的形式给出. 1.   Strom集群组件 Storm集群中包含两类节点:主控节点(Master Node)和工