资源管理系统

Spark可以搭建在Mesos上或YARN上,两个都是资源管理系统。了解资源管理系统的话,可以先参看以下几篇文章:

浅谈Borg/YARN/Mesos/Torca/Corona一类系统  
多集群下资源共享方案介绍  
统一资源管理与调度平台(系统)介绍

淘宝借助自己的第二代集群——云梯系统,把Spark部署在了YARN上,里面是淘宝技术部对Spark的一些实战小结,也算是在捣鼓阶段。

关于Mesos的论文,可以在这里下载。他的官网上文档没有github的wiki上多。

Mesos搭建

在了解了资源管理系统的一些背景之后,简单介绍下我在搭建Mesos过程中遇到的几个坑。由于我是在公司开发机上抽空搭的,开发机上我没有root权限,在build的时候有下面几个障碍:

1. Mesos是C++写的,需要经历./configure, make和make install阶段,

我不太熟

2. 没有root权限,发布路径默认是/usr/local下,需要在./configure的时候加上 --prefix=/path 的参数

3. Mesos依赖gcc 4.1+的版本以及Python 2.7,开发机gcc和python版本都比较低,需要自己指定高版本的gcc和python,主要是gcc这个坑


4. 开发机不能上外网,python需要下一个egg,于是我是自己下了加进去,这就不说了,估计一般人不会有我这样的问题的

正常的搭建流程就是下载了Mesos的包之后,解压,然后./configure, make, make install就完了,参考这篇攻略

没有root权限的时候,不仅是发布路径要指定,还有一个问题是webui默认也会从/usr/local去找,所以我在configure的时候加上了参数:

./configure --prefix=/path --disable-webui  

即把webui取消了,这样在localhost:8080就不能看到master和slave的一些可视化信息了。

关于gcc的问题,开始的时候我把所有的Makefile手动修改了,凡是有gcc和g++的地方都添加了我的gcc路径,这样做并没有彻底让编译都按照高版本的gcc执行,因为依赖的东西比较多,子目录下的Makefile并没有都按照指定的gcc去make。

解决方案是把export自己的gcc path的时候,声明在PATH前面,因为PATH是从左往右读的,这样默认的gcc就是我的版本了:

export MY_PATH = {GCC_HOME}/bin
export PATH = $MY_PATH : $PATH #像这样声明在前面,然后尝试 gcc -v看一下版本是否是新的

当时由于这个编译问题,还在google论文上发了帖子,不过最后是自问自答解决了。把问题帖出来给大家看一下,如果有同样的情况,说明是gcc版本导致的。

Running Spark on Mesos, libmesos.so Exception: undefined symbol

其他搭建问题参考Mesos官网的简单文档

Spark Run On Mesos

make install成功后,去发布Mesos的地方,用sbin/mesos-master启动master,然后用sbin/mesos-slave.sh --master=127.0.0.1:5050在同一个机器上起slave,然后就可以到Spark_Home下跑./run spark.examples.SparkPi 127.0.0.1:5050  看看是不是依然可以算出Pi值,可以的话就是成功了。

在此之前记得去conf/spark-env.sh里增加一些Mesos的设置:

export MESOS_HOME={PATH}/mesos/
export MESOS_NATIVE_LIBRARY={PATH}/mesos/lib/libmesos.so

(全文完)

Spark on Mesos: 搭建Mesos的一些问题的更多相关文章

  1. Spark认识&环境搭建&运行第一个Spark程序

    摘要:Spark作为新一代大数据计算引擎,因为内存计算的特性,具有比hadoop更快的计算速度.这里总结下对Spark的认识.虚拟机Spark安装.Spark开发环境搭建及编写第一个scala程序.运 ...

  2. 【Spark-core学习之三】 Spark集群搭建 & spark-shell & Master HA

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...

  3. Scala进阶之路-Spark本地模式搭建

    Scala进阶之路-Spark本地模式搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Spark简介 1>.Spark的产生背景 传统式的Hadoop缺点主要有以下两 ...

  4. (四)Spark集群搭建-Java&Python版Spark

    Spark集群搭建 视频教程 1.优酷 2.YouTube 安装scala环境 下载地址http://www.scala-lang.org/download/ 上传scala-2.10.5.tgz到m ...

  5. Spark集群搭建简要

    Spark集群搭建 1 Spark编译 1.1 下载源代码 git clone git://github.com/apache/spark.git -b branch-1.6 1.2 修改pom文件 ...

  6. windows7 spark单机环境搭建及pycharm访问spark

    windows7 spark单机环境搭建 follow this link how to run apache spark on windows7 pycharm 访问本机 spark 安装py4j ...

  7. Spark集群搭建简配+它到底有多快?【单挑纯C/CPP/HADOOP】

    最近耳闻Spark风生水起,这两天利用休息时间研究了一下,果然还是给人不少惊喜.可惜,笔者不善JAVA,只有PYTHON和SCALA接口.花了不少时间从零开始认识PYTHON和SCALA,不少时间答了 ...

  8. Spark集群搭建中的问题

    参照<Spark实战高手之路>学习的,书籍电子版在51CTO网站 资料链接 Hadoop下载[链接](http://archive.apache.org/dist/hadoop/core/ ...

  9. Spark集群搭建_Standalone

    2017年3月1日, 星期三 Spark集群搭建_Standalone Driver:    node1    Worker:  node2    Worker:  node3 1.下载安装 下载地址 ...

随机推荐

  1. 64位系统/32位系统下/8位CPU的数据宽度

    不同的编译器根据不同的 64 位模型有所不同. 比如 Visual C++,从第一个支持 64 位的版本起,一直就是使用 LLP64 内存模型,也就是说,编译出的代码除了 long 和指针是 64 位 ...

  2. Android的WiFi开启与关闭

    注意:要首先注册开启和关闭WiFi的权限, <?xml version="1.0" encoding="utf-8"?> <manifest ...

  3. 转:DNS拾遗

    最近帮朋友注册域名配置主机,碰到一些DNS上的一些概念,惭愧于有一些东西已经忘记是啥意思,于是决定重新学习一下DNS方面的基本概念. 常用概念: TTL: TTL为Time to live的缩写,网络 ...

  4. Windows系统命令行net user命令用法

    在Windows渗透测试过程中,最常用的要数net user 命令了,但是非常多的时候我们都是对Linux命令非常熟悉,对Windows命令非常熟悉或者了解用法的少只有少,为了以后工作方便,这里记录一 ...

  5. 基于visual Studio2013解决算法导论之023队列实现(基于数组)

     题目 基于数组的队列 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <time.h> #i ...

  6. [置顶] 如何判断两个IP大小关系及是否在同一个网段中

    功能点  判断某个IP地址是否合法 判断两个IP地址是否在同一个网段中 判断两个IP地址的大小关系 知识准备 IP协议 子网掩码 Java 正则表达式 基本原理 IP地址范围 0.0.0.0- 255 ...

  7. matrix(dp)

    matrix Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  8. Linux内核中的宏:__init and __exit

    ZZ FROM: http://blog.csdn.net/musein/article/details/742609 ======================================== ...

  9. [置顶] c# datagridview‘s learn

    c#   一串数字“1122331111155”,要输出到DataGridview控件上,但是要逐个数字读取,如果上一个数字与下一个相同,则排成一列,不相同,则另外排成一列.如“11223311111 ...

  10. android APP 中微信分享功能实现 的总结

    //花了很长时间最终完成了微信分享功能,中间走了很多弯路,在此做一下小结,希望对在应用中使用到微信分享的朋友有所帮助. 主要问题就是下面两个: 1.为什么运行了项目之后,微信分享只是闪了一下就没有了? ...