基于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程序了。

时间: 2024-10-19 01:55:18

基于Mesos运行Spark的相关文章

(版本定制)第5课:基于案例分析Spark Streaming流计算框架的运行源码

本期内容: 1.在线动态计算分类最热门商品案例回顾与演示 2.基于案例分析Spark Streaming的运行源码 第一部分案例: package com.dt.spark.sparkstreaming import com.robinspark.utils.ConnectionPoolimport org.apache.spark.SparkConfimport org.apache.spark.sql.Rowimport org.apache.spark.sql.hive.HiveConte

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

本期内容 : Spark Streaming+Spark SQL案例展示 基于案例贯穿Spark Streaming的运行源码 一. 案例代码阐述 : 在线动态计算电商中不同类别中最热门的商品排名,例如:手机类别中最热门的三种手机.电视类别中最热门的三种电视等. 1.案例运行代码 : import org.apache.spark.SparkConf import org.apache.spark.sql.Row import org.apache.spark.sql.hive.HiveCont

Windows下基于eclipse的Spark应用开发环境搭建

原创文章,转载请注明: 转载自www.cnblogs.com/tovin/p/3822985.html 一.软件下载 maven下载安装 :http://10.100.209.243/share/soft/apache-maven-3.2.1-bin.zip       jdk下载安装:          http://10.100.209.243/share/soft/jdk-7u60-windows-i586.exe(32位)         http://10.100.209.243/sh

zeppelin中运行spark streaming kakfa &amp; 实时可视化

notebook方式运行spark程序是一种比较agile的方式,一方面可以体验像spark-shell那样repl的便捷,同时可以借助notebook的作图能力实现快速数据可视化,非常方便快速验证和demo.notebook有两种选择,一种是ipython notebook,主要针对pyspark:另一种是zeppelin,可以执行scala spark,pyspark以及其它执行引擎,包括hive等.比较而言,ipython notebook的可视化能力更强,zeppelin的功能更强.这里

Windows下IntelliJ IDEA中运行Spark Standalone

ZHUAN http://www.cnblogs.com/one--way/archive/2016/08/29/5818989.html http://www.cnblogs.com/one--way/p/5814148.html 前提条件: 1.Spark Standalone 集群部署完成 2.Intellij Idea 能够运行 Spark local 模式的程序. 源码: 1 import org.apache.spark.{SparkContext, SparkConf} 2 imp

DCOS实践分享(3):基于Mesos 和 Docker 企业级移动应用实践分享

2016年1月24日 8:00—19:00 北京万豪酒店(东城区建国门南大街7号) @Container大会是由国内容器社区DockOne组织的专为一线开发者和运维工程师设计的顶级容器技术会议,会议强调实践和交流,话题设置围绕容器.运维.云计算等技术领域,力求全方位.多角度为参会者解读容器技术. 在容器技术大会上,我分享了<基于Mesos 和 Docker 企业级移动应用实践分享> 下载链接 http://download.csdn.net/detail/popsuper1982/954493

在windows下运行spark

1.下载spark:spark-2.0.0-bin-hadoop2.7.tgz 2.解压至D:\bigdata\spark-2.0.0-bin-hadoop2.7 3.配置环境变量 HADOOP_HOME:D:\bigdata\hadoop-2.7.2 SPARK_HOME:D:\bigdata\spark-2.0.0-bin-hadoop2.7 Path中添加:%HADOOP_HOME%\bin;%SPARK_HOME%\bin; 4.运行 先运行Hadoop 再运行spark cd D:\b

在集群上运行Spark应用的详细过程

在集群上运行Spark应用的详细过程: (1)用户通过spark-submit脚本提交应用 (2)spark-submit脚本启动驱动器程序,调用用户定义的main()方法 (3)驱动器程序与集群管理器通信,申请资源以启动执行器节点 (4)集群管理器为驱动器程序启动执行器节点 (5)驱动器进程执行用户应用中的操作.根据程序中所定义的对RDD的转换操作和行动操作,驱动器节点把动作以任务的形式发送到执行器进程 (6)任务在执行器程序中进行计算并保存结果 (7)如果驱动器程序的main()方法退出,或

基于Centos7编译spark指定Hadoop版本

基于Centos7编译spark指定Hadoop版本 0 摘要 主要探究了如何对spark源码进行编译,以及普及了一下Maven中的-P,-D的意义以及我在编译过程中遇到的两个坑.为什么需要编译spark源码呢?官网已经提供了预编译的版本了啊,但是如果你对spark源码进行了修改或者spark提供了相对应的hadoop版本不能满足要求,本人编译是因为需要CDH版本的spark,综上所述,最佳实践是对spark源码进行编译. 1 编译前准备 本次选择的版本是spark2.2.0,需要准备spark