资源管理系统

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. 【DWR】Annotation入门

    DWR简介:http://baike.baidu.com/view/73492.htm?fr=aladdin DWR2.0以后新增加了JDK5的注解(Annotation)功能,使用注解功能之后可以从 ...

  2. BZOJ 1925: [Sdoi2010]地精部落( dp )

    dp(i,j)表示1~i的排列中, 以1~j为开头且开头是下降的合法方案数 这种数列具有对称性, 即对于一个满足题意且开头是上升的n的排列{an}, 令bn = n-an+1, 那么{bn}就是一个满 ...

  3. Oracle自带的exception

    存储过程中自带的exception: --查询人员资料历史 BEGIN SELECT * INTO Po_Sac01 FROM Sac01 WHERE Aac001 = Pi_Aac001 ); EX ...

  4. C# 网络编程 Part.1

    本人也是新手,对网络编程一窍不通,所以从今天开始我将学习网络编程的基础知识,在此一一贴出来,编辑成一个系列! 1.为自己复习巩固用 2.可以找到同时在学习网络编程的同学,一起讨论交流,促进学习效率及其 ...

  5. Struts 2 OGNL

    1.什么是OGNL? 2.Struts 2 OGNL 表达式      ======================  华丽丽的分割线  ======================  1.什么是OG ...

  6. 区间重合判断(pojg校门外的树)

    pojg:http://poj.grids.cn/practice/2808 解法1:以空间换时间: #include<stdio.h> #include<string.h> ...

  7. 15个最受欢迎的Python开源框架

    以下是伯乐在线从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python Web应用开发框 ...

  8. QNX驱动开发——中断处理(转载)

    原文网址:http://blog.csdn.net/daniellee_ustb/article/details/7841894 在操作系统中,对于中断的处理一直是一件麻烦事,其实主要是对操作系统的中 ...

  9. 利用java concurrent 包实现日志写数据库的并发处理

    一.概述 在很多系统中,往往需要将各种操作写入数据库(比如客户端发起的操作). 最简单的做法是,封装一个公共的写日志的api,各个操作中调用该api完成自己操作日志的入库.但因为入数据库效率比较低,如 ...

  10. Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识

    第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 ...