1.安装mesos

#用centos6的源yum安装

# rpm -Uvh http://repos.mesosphere.io/el/6/noarch/RPMS/mesosphere-el-repo-6-2.noarch.rpm
# yum install mesos -y
注意:如果要运行Mesos而不将其安装到系统的默认路径中(例如,如果您缺乏安装它的管理权限),请传递 --prefix选项configure以告诉它在哪里安装。例如,通过 --prefix=/home/me/mesos。默认情况下,前缀是/usr/local
#wget http://mirror.bit.edu.cn/apache/mesos/1.3.1/mesos-1.3.1.tar.gz 
#tar zxvf mesos-1.3.1.tar.gz 
#cd  mesos-1.3.1
#mkdir build
#cd build
#../configure
#make
#make install

#依赖项

#yum -y install apr-devel  libcurl-devel  apr-util-devel
#yum install subversion
#yum install subversion-javahl
#yum install subversion-devel
#yum install cyrus-sasl-md5
#yum install python-devel

2.升级gcc4.4.7到gcc4.8.0

#wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.0/gcc-4.8.0.tar.bz2

#tar -jxvf  gcc-4.8.0.tar.bz2
#cd gcc-4.8.0

#./contrib/download_prerequisites
#cd ..
#mkdir gcc-build-4.8.0
#cd  gcc-build-4.8.0

#../gcc-4.8.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
# j 后面的是核心数,编译速度会比较快

#make -j4
#sudo make install
#ls /usr/local/bin grep gcc
#update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/i686-pc-linux-gnu-gcc 40
#gcc -v
升级了GCC,生成的动态库没有替换老版本gcc的动态库。
cp /usr/local/lib64/libstdc++.so.6.0.18 /usr/lib64/

rm -f libstdc++.so.6
ln -s libstdc++.so.6.0.18 libstdc++.so.6
strings /usr/lib64/libstdc++.so.6|grep GLIBCXX

3.spark on mesos(http://spark.apache.org/docs/latest/running-on-mesos.html)

在客户端模式下,直接在客户机上启动Spark Mesos框架并等待驱动程序输出。

驱动程序需要一些配置spark-env.sh才能与Mesos正确交互:

  1. spark-env.sh设置一些环境变量:也设置spark.executor.uri<URL of spark-2.2.0.tar.gz>

    • export MESOS_NATIVE_JAVA_LIBRARY=<path to libmesos.so>。这个路径通常 <prefix>/lib/libmesos.so是前缀/usr/local默认的地方。请参阅上面的Mesos安装说明。在Mac OS X上,库被调用libmesos.dylib而不是 libmesos.so
    • export SPARK_EXECUTOR_URI=<URL of spark-2.2.0.tar.gz uploaded above>

集群模式

Mesos上的Spark还支持集群模式,驱动程序在集群中启动,客户端可以从Mesos Web UI中找到驱动程序的结果。

要使用集群模式,您必须MesosClusterDispatcher通过sbin/start-mesos-dispatcher.sh脚本启动集群,传入Mesos主URL(例如:mesos:// host:5050)。这将启动MesosClusterDispatcher在主机上运行的守护进程。

如果你喜欢MesosClusterDispatcher与马拉松运行,你需要运行MesosClusterDispatcher在前台(即:)bin/spark-class org.apache.spark.deploy.mesos.MesosClusterDispatcher。请注意,MesosClusterDispatcher尚不支持HA的多个实例。

MesosClusterDispatcher还支持写入恢复状态到动物园管理员。这将允许MesosClusterDispatcher能够在重新启动时恢复所有提交和正在运行的容器。为了启用这种恢复模式,您可以通过配置spark.deploy.recoveryMode和相关的spark.deploy.zookeeper。*配置来设置spark-env中的SPARK_DAEMON_JAVA_OPTS。有关这些配置的更多信息,请参阅配置文档

从客户端,您可以通过运行spark-submit并指定主URL MesosClusterDispatcher(例如:mesos:// dispatcher:7077)的URL来向Mesos集群提交作业。您可以在Spark集群Web UI上查看驱动程序状态。

例如:

./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master mesos://207.184.161.138:7077 \
--deploy-mode cluster \
--supervise \
--executor-memory 20G \
--total-executor-cores 100 \
http://path/to/examples.jar \
1000

请注意,传递给spark-submit的jar或python文件应该是Mesos从站可访问的URI,因为Spark驱动程序不会自动上传本地jar。

Mesos运行模式

Spark可以在两种模式下运行Mesos:“粗粒度”(默认)和“细粒度”(不推荐)。

粗粒度

在“粗粒度”模式下,每个Spark执行器都作为一个Mesos任务运行。Spark执行程序根据以下配置变量进行大小调整:

  • 执行器内存: spark.executor.memory
  • 执行者核心: spark.executor.cores
  • 执行者的数量:spark.cores.max/spark.executor.cores

有关详细信息和默认值,请参阅Spark Configuration页面。

Spark记录-Spark on mesos配置的更多相关文章

  1. Spark记录-官网学习配置篇(二)

    ### Spark SQL Running the SET -v command will show the entire list of the SQL configuration. #scala/ ...

  2. Spark记录-官网学习配置篇(一)

    参考http://spark.apache.org/docs/latest/configuration.html Spark提供三个位置来配置系统: Spark属性控制大多数应用程序参数,可以使用Sp ...

  3. Spark记录-spark编程介绍

    Spark核心编程 Spark 核心是整个项目的基础.它提供了分布式任务调度,调度和基本的 I/O 功能.Spark 使用一种称为RDD(弹性分布式数据集)一个专门的基础数据结构,是整个机器分区数据的 ...

  4. Spark记录-Spark性能优化解决方案

    Spark性能优化的10大问题及其解决方案 问题1:reduce task数目不合适解决方式:需根据实际情况调节默认配置,调整方式是修改参数spark.default.parallelism.通常,r ...

  5. Spark记录-Spark On YARN内存分配(转载)

    Spark On YARN内存分配(转载) 说明 按照Spark应用程序中的driver分布方式不同,Spark on YARN有两种模式: yarn-client模式.yarn-cluster模式. ...

  6. Spark记录-spark介绍

    Apache Spark是一个集群计算设计的快速计算.它是建立在Hadoop MapReduce之上,它扩展了 MapReduce 模式,有效地使用更多类型的计算,其中包括交互式查询和流处理.这是一个 ...

  7. Spark记录-Spark作业调试

    在本地IDE里直接运行spark程序操作远程集群 一般运行spark作业的方式有两种: 本机调试,通过设置master为local模式运行spark作业,这种方式一般用于调试,不用连接远程集群. 集群 ...

  8. Spark记录-Spark on Yarn框架

    一.客户端进行操作 1.根据yarnConf来初始化yarnClient,并启动yarnClient2.创建客户端Application,并获取Application的ID,进一步判断集群中的资源是否 ...

  9. Spark记录-Spark性能优化(开发、资源、数据、shuffle)

    开发调优篇 原则一:避免创建重复的RDD 通常来说,我们在开发一个Spark作业时,首先是基于某个数据源(比如Hive表或HDFS文件)创建一个初始的RDD:接着对这个RDD执行某个算子操作,然后得到 ...

随机推荐

  1. Java 多线程之 Thread 类 和 Runnable 接口初步使用

    目录 Thread 类 Thread之定义线程类 Thread之开启线程 Runnable 接口 Runnable 之定义线程类 Runnable 之开启线程 @ Thread 类 Thread 类是 ...

  2. JNI探秘-----你不知道的FileInputStream的秘密

    作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 设计模式系列结束,迎来了LZ ...

  3. twig用法

    1. GyAdminBundle::base.html.twig 必须添加Bundle名才可引用模板

  4. [JSP] c:forEach 如何输出序号

    关键在于<c:forEach>的varStatus属性,具体代码如下: <table width="500" border="0" cells ...

  5. 小学四则运算APP 第一个冲刺阶段 第四天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次发布我们增加了CalculatorsActivity.java.YunsuanActivi ...

  6. 0302-对IT行业的感思

    在参考并分析了2014行业排名和IT行业的就业分析后,给我的第一体会就是:如今的IT行业,是一个机会与挑战并存的行业. 先说机会. 从行业排行相关资料不难看出,现在是一个信息与大数据引领一切的时代,电 ...

  7. ElasticSearch 2 (17) - 深入搜索系列之部分匹配

    ElasticSearch 2 (17) - 深入搜索系列之部分匹配 摘要 到目前为止,我们介绍的所有查询都是基于完整术语的,为了匹配,最小的单元为单个术语,我们只能查找反向索引中存在的术语. 但是, ...

  8. Week1个人作业

    关于教材的疑问 阅读的教材<构建之法> 1第一章中提到:“软件企业=软件+商业模式”,这样的结构是否过于简单,尤其是在互联网+时代 2.在进行单元测试的时候,怎么做到100%覆盖 3.个人 ...

  9. 新安装的Ubuntu设置root密码

    一.问题描述 新安装的Ubuntu切换到root用户时如果没有设置root用户密码会操作失败.此时需要先设置root用户密码. 二.解决办法 打开终端执行 sudo passwd 命令. 输入设置的密 ...

  10. Java设计模式之代理模式(静态代理和JDK、CGLib动态代理)以及应用场景

    我做了个例子 ,需要可以下载源码:代理模式 1.前言: Spring 的AOP 面向切面编程,是通过动态代理实现的, 由两部分组成:(a) 如果有接口的话 通过 JDK 接口级别的代理 (b) 如果没 ...