Spark run on mesos cluster mode

Spark Run On Mesos Cluster Mode

概述

Spark在1.4.0版本的支持了Mesos集群下的Docker支持(SPARK-2691)和Cluster模式(SPARK-6338
接下来我们将配置下Spark运行在Mesos集群下的cluster模式。

NOTE Mesos版本0.21.0 Spark版本1.5.1

搭建Mesos集群

这个不是我们本文重点,详情参见官网或者数人帮助文档

搭建Spark cluster环境

1.下载Spark TAR包

官网下载预编译好的spark tar包

wget http://apache.fayea.com/spark/spark-1.5.1/spark-1.5.1-bin-hadoop2.6.tgz

2.添加Spark配置

## untar
tar -zxf spark-1.5.1-bin-hadoop2.6.tgz

## enter spark dir
cd spark-1.5.1-bin-hadoop2.6

## edit config file
vi conf/spark-env.sh

## 添加下面配置
######################################
export SPARK_LOCAL_IP=`ifconfig eth0 | awk '/inet addr/{print substr($2,6)}'`        ## 我们Mesos集群通过IP通信,修改此配置将spark配置成spark通信
export SPARK_LOCAL_HOSTNAME=`ifconfig eth0 | awk '/inet addr/{print substr($2,6)}'`
######################################

vi conf/spark-defaults.conf

## 添加spark.executor.uri配置
####################################
spark.executor.uri http://download-server-ip/spark-1.5.1-bin-hadoop2.6.tgz       ## 将download-server-ip改为对应的下载服务器地址
####################################

##
tar czf spark-1.5.1-bin-hadoop2.6.tgz spark-1.5.1-bin-hadoop2.6                      ## 最后将打包好的tar包拷贝到web下载服务器

3.启动spark dispatcher

## start mesos dispatcher
sudo sbin/start-mesos-dispatcher.sh -m mesos://zk://zk1:2181,zk2:2181,zk3:2181/mesos -z zk1:2181,zk2:2181,zk3:2181 -h ip  ## 将zk地址和ip地址该为对应的ip地址和本机ip

验证mesos dispatcher已经启动

netstat -lntp                                                                       ## 看到7077端口和8081端口启动

4.运行hello word

Hello World代码

import org.apache.spark._
object Test {
  def main(args: Array[String]) {
    val sc = new SparkContext()
    val count = sc.parallelize(1 to 1000).count
    println(count)
  }
}

利用sbt或者mvn编译并打包,并拷贝jar到下载服务器

运行代码

sudo bin/spark-submit --master mesos://dispatcher:7077 --deploy-mode cluster --class Test http://download-server-ip/helloworld.jar

可以访问http://dispatcher:8081来查看spark任务运行状态

posted @ 2015-10-19 15:35  chen_mcgrady  阅读(260)  评论(0)    收藏  举报