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. 解决Docker容器时区及时间不同步的问题

    前几天在测试应用的功能时,发现存入数据库中的数据create_time或者update_time字段总是错误,其他数据都是正常的,只有关于时间的字段是错误的. 进入linux服务器中查看,也没有任何的 ...

  2. WinForm 随手记

    从今天开始咱们正式进入WinForm开发模式 首先很官方的介绍下什么是winform:客户端应用程序:C/S 这就是winform 有什么特别特别重要的特点呢:可以操作用户电脑上的文件 举个简单的例子 ...

  3. css修改select下拉列表的默认样式

    select的一些默认样式我们很难修改,比如图标的替换.接下来就说说如何修改这些默认样式: html代码: <div> <select name=""> & ...

  4. git 报错git-upload-pack 解决方法

    报错如下: bash: git-upload-pack: command not foundfatal: The remote end hung up unexpectedly 原因:原来代码服务器上 ...

  5. 华为测试大牛Python+Django接口自动化怎么写的?

    有人喜欢创造世界,他们做了开发者:有的人喜欢开发者,他们做了测试员.什么是软件测试?软件测试就是一场本该在用户面前发生的灾难提前在自己面前发生了,这会让他们生出一种救世主的感觉,拯救了用户,也就拯救者 ...

  6. k8s网络之calico学习

    一.知识准备 1.calico主要通过ipip协议与bgp协议来实现通信.前者通过ipip隧道作为通信基础,后者则是纯三层的路由交换 2.bgp协议主要由两种方式:BGP Speaker 全互联模式( ...

  7. Linux 终端快捷键整理

    一.历史命令相关快捷键 快捷键 说明 ↑.↓ 显示历史命令 !! 执行上一个命令 !n 执行历史命令中第 n 条命令 !-n 执行历史命令中倒数第 n 条命令 二.移动相关快捷键 快捷键 说明 Ctr ...

  8. 对Java8 stream的简单实践

    最近学习很多Java8方面的新特性,特地做了一些简单的实践和总结. import java.util.*; import java.util.stream.Collectors; public cla ...

  9. Daily Scrum - 12/01

    Meeting Minutes 今天重阳去和UI设计团队的人去讨论UI方面的事宜了,剩下的人主要还是在讨论文件输入输出的事.目前总算是能实现文件存取了,尽量在明天前把文件的格式内容都弄好. Burnd ...

  10. webSocket开发chat application过程

    本次使用websocket开发chat的功能已经接近尾声,等到压力测试结束之后就可以上线了.在此记录一下整个开发过程. ---------------------------------------- ...