背景介绍

Spark有多种集群运行模式,例如:Standalone,Yarn,Mesos。
      下面就说一下如何在Mesos上运行Spark,这也是官方推荐的一种运行方式。
      在运行Spark之前咱们先简略介绍一下Mesos。
      Mesos计算框架是一个集群管理器,提供了有效的、跨分布式的应用或框架的资源隔离和共享,可以运行Haoop,Spark,Marathon等多种框架。使用Zookeeper实现容错机制,使用Linux Containers来隔离任务,支持多种资源计算分配,基于Mesos我们可以实现多种服务混布,更细粒度、更高效的提高资源利用率,避免资源的浪费。 
      关于Mesos的安装详细信息这里不再赘述,详情可以查看http://get.dataman.io
      下图是Spark集群的工作模式,当我们使用Mesos的时候Mesos  Master将替换Spark  Master成为集群管理器。 
 
环境以Ubuntu 14.04为例

1.准备工作

(1)安装JDK  1.7
    (2)安装Scala  2.11
    (3)安装libcurl4-nss-dev    (注:这是我自己安装过程遇到的一个错误)
    (4)下载Spark二进制包http://spark.apache.org/downloads.html
    (5)Spark Driver可以安装在任意机器上,如果安装Spark Driver的已经安装了Mesos,可以找到/usr/local/lib/libmesos.so  这是Spark Driver需要加载的Mesos的库,如果机器上没有安装Mesos可以从安装Mesos的机器上复制过来。

2.配置Spark  Driver

(1)下载Spark二进制包

wget http://mirror.reverse.net/pub/apache/spark/spark-1.4.0/spark-1.4.0-bin-hadoop2.6.tgz

(2)解压

tar -zxf spark-1.4.0-bin-hadoop2.6.tgz

(3)进入目录

cd spark-1.4.0-bin-hadoop

(4)复制配置文件

cp conf/spark-defaults.conf.template conf/spark-defaults.conf && cp conf/spark-env.sh.template conf/spark-env.sh

(5)修改spark-env.sh配置选项,我主要修改了如下配置

export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so     #加载Mesos库的路径

export MASTER=mesos://zk://192.168.100.7:2181,192.168.100.8:2181,192.168.100.9:2181/mesos     #如果是单主节点可以用mesos://ip:host,如果是用zookeeper管理的多主节点就需要mesos://zk://192.168.100.7:2181,192.168.100.8:2181,192.168.100.9:2181/mesos 

export SPARK_LOCAL_IP=`ifconfig eth0 | awk '/inet addr/{print substr($2,6)}'` 

export SPARK_LOCAL_HOSTNAME=`ifconfig eth0 | awk '/inet addr/{print substr($2,6)}'` 

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

export SPARK_EXECUTOR_URI=<URL of spark-1.4.0.tar.gz uploaded above>    #这个是spark二进制包所在的位置,当mesos在计算节点运行任务的时候,计算节点必须有spark的二进制包来建立spark的运行环境。

(6)运行spark-shell    现在Spark Driver的配置基本已经配置完了,我们可以运行bin目录下的spark-shell,当运行成功以后查看Mesos的Web页面Active Frameworks如果出来如下图所示的进程,就表示我们已经配置成功了。 
现在我们就可以编写属于我们自己的Spark程序了。

基于Mesos运行Spark的更多相关文章

  1. 《Spark 官方文档》在Mesos上运行Spark

    本文转自:http://ifeve.com/spark-mesos-spark/ 在Mesos上运行Spark Spark可以在由Apache Mesos 管理的硬件集群中运行. 在Mesos集群中使 ...

  2. 基于案例贯通 Spark Streaming 流计算框架的运行源码

    本期内容 : Spark Streaming+Spark SQL案例展示 基于案例贯穿Spark Streaming的运行源码 一. 案例代码阐述 : 在线动态计算电商中不同类别中最热门的商品排名,例 ...

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

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

  4. 在集群上运行Spark

    Spark 可以在各种各样的集群管理器(Hadoop YARN.Apache Mesos,还有Spark 自带的独立集群管理器)上运行,所以Spark 应用既能够适应专用集群,又能用于共享的云计算环境 ...

  5. 如何在 Serverless K8s 集群中低成本运行 Spark 数据计算?

    作者 | 柳密 阿里巴巴阿里云智能 ** 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复"入门",即可获取 ...

  6. 运行 Spark on YARN

    运行 Spark on YARN Spark 0.6.0 以上的版本添加了在yarn上执行spark application的功能支持,并在之后的版本中持续的 改进.关于本文的内容是翻译官网的内容,大 ...

  7. Spark入门(1-4)安装、运行Spark

    如何安装Spark 安装和使用Spark有几种不同方式.你可以在自己的电脑上将Spark作为一个独立的框架安装或者从诸如Cloudera,HortonWorks或MapR之类的供应商处获取一个Spar ...

  8. zeppelin中运行spark streaming kakfa & 实时可视化

    notebook方式运行spark程序是一种比较agile的方式,一方面可以体验像spark-shell那样repl的便捷,同时可以借助notebook的作图能力实现快速数据可视化,非常方便快速验证和 ...

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

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

随机推荐

  1. 【剑指Offer学习】【面试题60:把二叉树打印出多行】

    题目:从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印一行. 解题思路 用一个队列来保存将要打印的结点.为了把二叉树的每一行单独打印到一行里,我们须要两个变量:一个变量表示在当前的 ...

  2. 执行此安装程序之前,必须安装 32 位 Windows 映像处理组件(WIC)解决的方法

    我们在Windows Service 2003上安装 Microsoft .NET Framework4.0时常常出现以下的报错 执行此安装程序之前,必须安装 32 位 Windows 映像处理组件( ...

  3. iOS开发-21UINavigationController导航控制器初始化 导航控制器栈的push和pop跳转理解

    (1)导航控制器初始化的时候一般都有一个根视图控制器,导航控制器相当于一个栈,里面装的是视图控制器,最先进去的在最下面,最后进去的在最上面.在最上面的那个视图控制器的视图就是这个导航控制器对外展示的界 ...

  4. tomcat https jks 沃通免费证书安装 解决方案

    网上百度了一天什么没百度到,最后谷歌到了一篇文章启发之下解决之. 代理谷歌网站推荐一个,可以直接上谷歌: https://www.yundou.info ----------------------- ...

  5. SQL in Qt (一)

    Connecting to Databases To access a database with QSqlQuery or QSqlQueryModel, create and open one o ...

  6. Git 分支管理详解

    大纲: 1.前言 2.创建分支 3.切换分支 4.合并分支(快速合并) 5.删除分支 6.分支合并冲突 7.合并分支(普通合并) 8.分支管理策略 9.团队多人开发协作 10.总结 注,测试机 Cen ...

  7. arrayAccess的接口使用

    <?php //get the methods instance of ArrayAccess //get the properties instance of ArrayAccess $ref ...

  8. 像素转换问题-队列解决办法(或者dfs)

    在一定大小的像素图像中,将同色区域的颜色值替换为其他颜色值,从而产生新的图像,输入数据,图像大小,指定的像素点坐标,要替换成的颜色. 一开始出队操作写错了折腾半天,当队列中只有一个元素是出队后要将队首 ...

  9. MVC4 Controller器同名问题

    一.创建项目 二.修改配置文件(路由器) 详情如下: 总结:解决Controller器同名问题,只需要修改2外,App_Start里的RouteConfig.cs文件和Area下的***AreaReg ...

  10. linux shell if语句

    #!/bin/bash read -p "please input Y/N" keyWord if [ "$keyWord" == "Y" ...