如何运行Sparkrocketmq 集群模式的Standalone模式

中国领先的IT技术网站
51CTO旗下网站
Spark的Standalone模式部署
首先,下载并解压缩Spark的源码,切换到解压缩所生成的目录,运行部署包生成程序make-distribution.sh。就可以开始Standalone模式部署过程了。
作者:mmicky来源:网易博客| 14:04
1:Spark Standalone Mode安装
A:部署包生成
首先,下载并解压缩Spark的源码,切换到解压缩所生成的目录,运行部署包生成程序make-distribution.sh:
./make-distribution.sh&--hadoop&2.2.0&--with-yarn&--tgz&
spark源码根目录下的make-distribution.sh可以带以下参数:
--tgz:在根目录下生成 spark-$VERSION-bin.tar.gz,不加参数是不生成tgz文件,只生成/dist目录。
--hadoop VERSION:打包时所用的Hadoop版本号,不加参数时为1.0.4。
--with-yarn:是否支持Hadoop YARN,不加参数时为不支持yarn。
--with-tachyon:是否支持内存文件系统Tachyon,不加参数时为不支持,此参数spark1.0之后提供。
运行成功后,在根目录下生成类似spark-0.9.0-incubating-hadoop_2.2.0-bin.tar.gz的部署包,不过该部署包只带有最基本的Spark运行文件,不包含例程和源代码。如果需要例程和源代码,请使用官方提供的二进制部署包。
笔者在上提供了spark0.90、spark0.91和spark1.0-SNAPHOT的部署包,其中spark1.0-SNAPHOT还提供了支持Tachyon的部署包。
虚拟机hadoop1(IP地址为192.168.100.171)作为Master
虚拟机hadoop2(IP地址为192.168.100.172)、hadoop3(IP地址为192.168.100.173)、hadoop4(IP地址为192.168.100.174)、hadoop5(IP地址为192.168.100.175)作为slave
由于hadoop1、hadoop2、hadoop3、hadoop4、hadoop5之前已经安装了hadoop2.2.0集群,所以省却了安装JAVA、建立SSH无密码登录过程。当然,spark集群可以独立于hadoop集群外安装,不过需要安装JAVA、建立SSH无密码登录,具体过程可以参照。
C:在Master上生成安装目录
将生成的spark-0.9.0-incubating-hadoop_2.2.0-bin.tar.gz文件复制到Master(即hadoop1)上并解压
[root@hadoop1 hadoop]# tar zxf spark-0.9.0-incubating-hadoop_2.2.0-bin.tar.gz
[root@hadoop1&hadoop]# mv spark-0.9.0-incubating spark090
[root@hadoop1&hadoop]# cd spark090
[root@hadoop1 spark090]# ls -lsa
D:配置集群文件
[root@hadoop1&spark090]# vi conf/slaves
[root@hadoop1&spark090]# cat conf/slaves
hadoop2hadoop3hadoop4hadoop5
[root@hadoop1&spark090]# vi conf/spark-env.sh
[root@hadoop1&spark090]# cat conf/spark-env.sh
export SPARK_MASTER_IP=hadoop1export SPARK_WORKER_CORES=1export SPARK_WORKER_INSTANCES=1export SPARK_MASTER_PORT=7077export SPARK_WORKER_MEMORY=1gexport MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
E:派发安装文件到slaves
[root@hadoop1&spark090]# cd ..
[root@hadoop1&hadoop]# chown -R hadoop:hadoop spark090
[root@hadoop1 hadoop]# su - hadoop
[hadoop@hadoop1 ~]$ cd /app/hadoop/
[hadoop@hadoop1 hadoop]$ scp -r spark090 hadoop2:/app/hadoop/
[hadoop@hadoop1 hadoop]$ scp -r spark090 hadoop3:/app/hadoop/
[hadoop@hadoop1 hadoop]$ scp -r spark090 hadoop4:/app/hadoop/
[hadoop@hadoop1 hadoop]$ scp -r spark090 hadoop5:/app/hadoop/
F:启动集群
[hadoop@hadoop1 hadoop]$ cd spark090
[hadoop@hadoop1 spark090]$ sbin/start-all.sh
通过浏览器访问http://hadoop1:8080可以监控spark Standalone集群
2:关于spark-shell连接到spark Standalone集群
如果要启动spark-shell连接到spark Standalone集群,有两种方法:
a:使用MASTER=spark://hadoop1:7077 bin/spark-shell启动
b:配置在conf/spark-env.sh增加以下几行:
export SPARK_MASTER_IP=192.168.1.171
export SPARK_MASTER_PORT=7077
export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
然后使用使用./spark-shell启动
如果是远程客户端来连接到spark Standalone集群的话,部署目录要和集群的部署目录一致。
3:关于Spark Standalone Mode的运行
A:资源调度
Spark Standalone Cluster目前只支持FIFO方式调度,不过,允许多个并发用户,通过控制每个应用程序可获得的最大资源数。默认情况下,一次只运行一个应用程序,应用程序使用集群中的所有内核,不过可以通过System.setProperty(&spark.cores.max&,&10&)设置使用的内核数,这个值必须在初始化SparkContext之前设置。
B:监控和日志
Spark Standalone Cluster可以通过Web UI来监控集群,Master和每个Worker都有各自的Web UI显示统计数据。
Spark运行的job明细在$SPARK_HOME/work(由参数SPARK_WORKER_DIR设定)。当一个job提交后,spark会分发给worker,在每个节点的$SPARK_HOME/work/jodID/executorID建立stdout和stderr目录作为job日志输出。
C:和Hadoop并用
Spark可以作为独立的服务,在已有的Hadoop集群设备上并行,并通过hdfs://URL存取Hadoop数据。当然,Spark也可以建成一个独立的集群,通过网络存取Hadoop数据,只不过会比本地硬盘存取速度要慢,对于处于本地网络的两个集群,这不是问题。
Spark存在单点故障的问题,要解决这个问题,有两个方案:通过 Zookeeper待机Master和本地文件系统的单点恢复,具体参考
由于缺少例子,所以使用官方提供的二进制安装包重新部署了一下,并启动。
./run-example org.apache.spark.examples.SparkKMeans spark://hadoop1:7077 ./kmeans_data.txt 2 1
也可以直接在spark shell里调试程序。
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
热点头条热点头条头条
24H热文一周话题本月最赞
讲师:96381人学习过
讲师:133506人学习过
讲师:82830人学习过
精选博文论坛热帖下载排行
本书采用“如何解决问题”的方式阐述Ruby编程,涵盖了以下内容:Ruby术语和基本原理;数字、字符串等低级数据类型的操作;正则表达式;国际...
订阅51CTO邮刊使用docker快速搭建Spark集群的方法教程
作者:RavenZZ
字体:[ ] 类型:转载 时间:
通过使用 Docker,可以快速的在本地搭建一套 Spark 环境,方便大家开发 Spark 应用,或者扩展到生产环境。下面这篇文章主要给大家介绍了使用docker快速搭建Spark集群的方法教程,需要的朋友可以参考借鉴,下面来一起看看吧。
Spark 是 Berkeley 开发的分布式计算的框架,相对于 Hadoop 来说,Spark 可以缓存中间结果到内存而提高某些需要迭代的计算场景的效率,目前收到广泛关注。下面来一起看看使用docker快速搭建Spark集群的方法教程。
正在使用spark的开发者
正在学习docker或者spark的开发者
安装docker
(可选)下载java和spark with hadoop
Spark运行时架构图
如上图: Spark集群由以下两个部分组成
集群管理器(Mesos, Yarn或者standalone Mode)
工作节点(worker)
如何docker化(本例使用Standalone模式)
1、将spark集群拆分
&&&&& base(基础镜像)
&&&&& master(主节点镜像)
&&&&& worker(工作镜像)
2、编写base Dockerfile
注: 为方便切换版本基础镜像选择的是centos, 所以要下载java和spark, 方便调试, 可以下载好安装文件后本地搭建一个静态文件服务器, 使用Node.js 的可以快速搞定
npm install http-server -g
http-server -p 54321 ~/Downloads
正式开始写Dockerfile
FROM centos:7
MAINTAINER RavenZZ &raven.&
# 安装系统工具
RUN yum update -y
RUN yum upgrade -y
RUN yum install -y byobu curl htop man unzip nano wget
RUN yum clean all
# 安装 Java
ENV JDK_VERSION 8u11
ENV JDK_BUILD_VERSION b12
# 如果网速快,可以直接从源站下载
#RUN curl -LO "/otn-pub/java/jdk/$JDK_VERSION-$JDK_BUILD_VERSION/jdk-$JDK_VERSION-linux-x64.rpm" -H 'Cookie: oraclelicense=accept-securebackup-cookie' && rpm -i jdk-$JDK_VERSION-linux-x64. rm -f jdk-$JDK_VERSION-linux-x64.
RUN curl -LO "http://192.168.199.102:54321/jdk-8u11-linux-x64.rpm" && rpm -i jdk-$JDK_VERSION-linux-x64. rm -f jdk-$JDK_VERSION-linux-x64.
ENV JAVA_HOME /usr/java/default
RUN yum clean all
WORKDIR spark
curl -LO 'http://192.168.199.102:54321/spark-2.1.0-bin-hadoop2.7.tgz' && \
tar zxf spark-2.1.0-bin-hadoop2.7.tgz
RUN rm -rf spark-2.1.0-bin-hadoop2.7.tgz
RUN mv spark-2.1.0-bin-hadoop2.7/* ./
ENV SPARK_HOME /spark
ENV PATH /spark/bin:$PATH
ENV PATH /spark/sbin:$PATH
3、编写master Dockerfile
FROM ravenzz/spark-hadoop
MAINTAINER RavenZZ &raven.&
COPY master.sh /
ENV SPARK_MASTER_PORT 7077
ENV SPARK_MASTER_WEBUI_PORT 8080
ENV SPARK_MASTER_LOG /spark/logs
CMD ["/bin/bash","/master.sh"]
4、编写worker Dockerfile
FROM ravenzz/spark-hadoop
MAINTAINER RavenZZ &raven.&
COPY worker.sh /
ENV SPARK_WORKER_WEBUI_PORT 8081
ENV SPARK_WORKER_LOG /spark/logs
ENV SPARK_MASTER "spark://spark-master:32769"
EXPOSE 8081
CMD ["/bin/bash","/worker.sh"]
5、docker-compose
version: '3'
spark-master:
context: ./master
dockerfile: Dockerfile
- "" # SPARK_MASTER_PORT
- "" # SPARK_MASTER_WEBUI_PORT
spark-worker1:
context: ./worker
dockerfile: Dockerfile
- spark-master
environment:
- SPARK_MASTER=spark://spark-master:7077
spark-worker2:
context: ./worker
dockerfile: Dockerfile
- spark-master
environment:
- SPARK_MASTER=spark://spark-master:7077
6、测试集群
docker-compose up
访问http://localhost:50003/ 结果如图
本地下载:
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具相信技术会改变一切!
上节中简单的介绍了Spark的一些概念还有Spark生态圈的一些情况,这里主要是介绍Spark运行模式与Spark Standalone模式的部署;
Spark运行模式
  在Spark中存在着多种运行模式,可使用本地模式运行、可使用伪分布式模式运行、使用分布式模式也存在多种模式如:Spark Mesos模式、Spark YARN模式;
Spark Mesos模式:官方推荐模式,通用集群管理,有两种调度模式:粗粒度模式(Coarse-grained Mode)与细粒度模式(Fine-grained Mode);
Spark YARN模式:Hadoop YARN资源管理模式;
Standalone模式: 简单模式或称独立模式,可以单独部署到一个集群中,无依赖任何其他资源管理系统。不使用其他调度工具时会存在单点故障,使用Zookeeper等可以解决;
Local模式:本地模式,可以启动本地一个线程来运行job,可以启动N个线程或者使用系统所有核运行job;
Standalone模式部署实践
  Standalone模式需要将Spark复制到集群中的每个节点,然后分别启动每个节点即可;Spark Standalone模式的集群由Master与Worker节点组成,程序通过与Master节点交互申请资源,Worker节点启动Executor运行;
  这里使用了两节点部署Spark集群:192.168.2.131、192.168.2.133,下面简称为:133与131节点;其中133节点既是Master节点同时又是Worker节点,131节点为Worker节点;
节点结构图
部署步骤:
  一、首先在133节点上下载Java、Scala与Spark并解压到/usr/local目录下,这里使用的Spark是带有Hadoop的版本;
  下载解压到local
  二、配置Java、Scala与Spark环境变量,这里把环境变量配置到/etc/profile文件中,请忽略Hadoop环境变量;
  环境变量配置
  三、测试Java、Scala是否配置成功,在终端输入:java -version与scala -version
  四、配置Spark环境变量,进入Spark目录下的conf目录把slaves.template重命名为slaves,接着把spark-env.sh.template重命名为:spark-env.sh;
    重命名
    修改spark-env.sh文件,添加环境变量;
    spark-env修改
  五、在133节点使用scp把下载好的Java、Scala、Spark发送到131节点,并在131节点上重复以上所有步骤;
  六、在两个节点都完成以上所有步骤后开始启动Spark,133节点既是Master又是Worker;
    1、首先在133启动Spark,进入Spark目录的sbin目录执行./start-all.sh:
    Master启动
    使用jps命令发现存在Master与Worker进程,说明Spark已启动成功;
    2、启动131节点的Spark,进入Spark目录的sbin目录执行:./start-slave.sh spark://192.168.2.133:7077
    start-slave.sh后面的地址为Master节点的通信地址,指定当前slave节点连接到的Master;
    slave启动:
    使用jps命令,存在Worker进程则说明当前的Spark Worker节点启动成功;
  七、 Spark Web页面
    可以通过http://192.168.2.133:8080/ 地址查看到当前Spark集群的信息,这地址为Master节点的地址;
SparkWeb:
文章首发地址:
参考资料:
阅读(...) 评论()Spark1.2.1集群环境搭建——Standalone模式
Spark1.2.1集群环境搭建——Standalone模式
发表于16小时前(
17:37)&& 阅读(589)&|&评论() 24人收藏此文章,
笔者有三台机器,左侧栏为ip,右侧为hostname,三台机器都有一个名为spark的用户。
192.168.248.150&spark-master
192.168.248.153&ubuntu-worker
192.168.248.155&spark-worker1
根据机器信息加入到三台机器的/etc/hosts中。
安装Hadoop2.4.1
详见,因为我们使用的是standalone方式,只启动hdfs即可。
参照安装部分,在一台机器上解压、配置环境变量后,将文件夹和环境变量文件通过scp拷贝到另外两台即可。
scp&-r&scala&spark@ubuntu-worker:~/spark
解压文件 tar
-xzvf&spark-1.2.1-bin-hadoop2.4.tgz
1. &向环境变量添加spark home。
export&SPARK_HOME=/home/mupeng/Hadoop/spark-1.2.1-bin-hadoop2.4
export&PATH=$SPARK_HOME/bin:$PATH
2. &配置./conf/slaves
首先将slaves.template拷贝一份
cp&slaves.template&slaves
修改slaves文件
#&A&Spark&Worker&will&be&started&on&each&of&the&machines&listed&below.
spark-master
ubuntu-worker
spark-worker1
3. &配置./conf/spark-env.sh
同样将spark-env.sh.template拷贝一份
cp&spark-env.sh.template&spark-env.sh
在spark-env.sh最后加入以下几行
export&JAVA_HOME=/home/mupeng/java/jdk1.6.0_35
export&SCALA_HOME=/home/mupeng/scala/scala-2.11.6
export&SPARK_MASTER_IP=192.168.248.150
export&SPARK_WORKER_MEMORY=25g
export&MASTER=spark://192.168.248.150:7077
最后将spark-1.2.1-bin-hadoop2.4文件夹拷贝到另外两个结点即可。
检查安装是否成功
访问web管理界面:
好了,配置结束,可以在我们的spark集群上运行任务了!
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 spark集群模式 的文章

 

随机推荐