基于Mesos运行Spark
背景介绍
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的更多相关文章
- 《Spark 官方文档》在Mesos上运行Spark
本文转自:http://ifeve.com/spark-mesos-spark/ 在Mesos上运行Spark Spark可以在由Apache Mesos 管理的硬件集群中运行. 在Mesos集群中使 ...
- 基于案例贯通 Spark Streaming 流计算框架的运行源码
本期内容 : Spark Streaming+Spark SQL案例展示 基于案例贯穿Spark Streaming的运行源码 一. 案例代码阐述 : 在线动态计算电商中不同类别中最热门的商品排名,例 ...
- Spark学习之在集群上运行Spark
一.简介 Spark 的一大好处就是可以通过增加机器数量并使用集群模式运行,来扩展程序的计算能力.好在编写用于在集群上并行执行的 Spark 应用所使用的 API 跟本地单机模式下的完全一样.也就是说 ...
- 在集群上运行Spark
Spark 可以在各种各样的集群管理器(Hadoop YARN.Apache Mesos,还有Spark 自带的独立集群管理器)上运行,所以Spark 应用既能够适应专用集群,又能用于共享的云计算环境 ...
- 如何在 Serverless K8s 集群中低成本运行 Spark 数据计算?
作者 | 柳密 阿里巴巴阿里云智能 ** 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复"入门",即可获取 ...
- 运行 Spark on YARN
运行 Spark on YARN Spark 0.6.0 以上的版本添加了在yarn上执行spark application的功能支持,并在之后的版本中持续的 改进.关于本文的内容是翻译官网的内容,大 ...
- Spark入门(1-4)安装、运行Spark
如何安装Spark 安装和使用Spark有几种不同方式.你可以在自己的电脑上将Spark作为一个独立的框架安装或者从诸如Cloudera,HortonWorks或MapR之类的供应商处获取一个Spar ...
- zeppelin中运行spark streaming kakfa & 实时可视化
notebook方式运行spark程序是一种比较agile的方式,一方面可以体验像spark-shell那样repl的便捷,同时可以借助notebook的作图能力实现快速数据可视化,非常方便快速验证和 ...
- Spark学习之在集群上运行Spark(6)
Spark学习之在集群上运行Spark(6) 1. Spark的一个优点在于可以通过增加机器数量并使用集群模式运行,来扩展程序的计算能力. 2. Spark既能适用于专用集群,也可以适用于共享的云计算 ...
随机推荐
- hdu 3954 Level up(线段树)
题目链接:hdu 3954 Level up 题目大意:N个英雄,M个等级,初始等级为1,给定每一个等级须要的经验值,Q次操作,操作分两种,W l r x:表示l~r之间的英雄每一个人杀了x个怪物:Q ...
- [裸KMP][HDU1711][Number Sequence]
题意 找到子串在母串出现的第一个位置 解法 裸的KMP 特别的地方 第一次不看模板自己敲的KMP #include<stdio.h> const int maxn=100000; cons ...
- XMLHttpRequest Level 2 使用指南
XMLHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信. 最早,微软在IE 5引进了这个接口.因为它太有用,其他浏览器也模仿部署了,ajax操作因此得以诞生. ...
- Emmet 语法探析
Emmet 语法探析 Emmet(Zen Coding)是一个能大幅度提高前端开发效率的一个工具. 大多数编辑器都支持Snippet,即存储和重用一些代码块.但是前提是:你必须先定义 这些代码块. E ...
- 代码初始化 故事板初始化 xib初始化总结
对象的初始化有三种方式 // 代码创建 - (id)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { ...
- JavaScript鼠标事件,点击鼠标右键,弹出div
document.oncontextmenu = function(){return false}; //禁止鼠标右键菜单显示 var res = document.getElementById('b ...
- linux下C++对线程的封装
之前一直是使用C语言,前段时间转做C++.无论使用什么语言,多线程编程都是不可或缺的.最近项目中又用到了线程,现在将线程的封装做出总结: 1.线程类中应该包含线程ID.线程的状态以及线程基本操作等. ...
- mysql单表大小的限制
mysql单表大小的限制一.MySQL数据库的MyISAM存储 引擎单表大小限制已经不是有MySQL数据库本身来决定(限制扩大到64pb),而是由所在主机的OS上面的文件系统来决定了.在mysql5. ...
- 2015.4.8-C#入门基础(二)
初来乍道,下面分享一下,自己做的小程序 主要用到 数组,类型转换,枚举,循环: 主要体现的是: 输入姓名,就可以查看其性格 using System;using System.Collections. ...
- AngularJs中关于ng-class的三种使用方式说明
在开发中我们通常会遇到一种需求:一个元素在不同的状态需要展现不同的样子. 而在这所谓的样子当然就是改变其css的属性,而实现能动态的改变其属性值,必然只能是更换其class属性 这里有三种方法: 第一 ...