参考网址:http://mesos.apache.org/gettingstarted/
实验环境:mesos版本:0.21.0、操作系统:Red Hat 6
为了了解Spark的三种部署standalone、mesos和YARN。所以想尝试部署下mesos集群。我根据自己的需求,参考了官方文档的如下步骤:
Downloading Mesos
There are different ways you can get Mesos:
Download the latest stable release from Apache (Recommended)
$ wget http://www.apache.org/dist/mesos/0.22.1/mesos-0.22.1.tar.gz
$ tar -zxf mesos-0.22.1.tar.gz
CentOS 6.5
Following are the instructions for stock CentOS 6.5. If you are using a different OS, please install the packages accordingly.
Mesos 0.21.0+ requires subversion 1.8+ devel package which is not available by default by yum.
Add one of the repo that has subversion-devel 1.8 available, i.e:
Add new repo /etc/yum.repos.d/wandisco-svn.repo, with:
[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/6/svn-1.8/RPMS/$basearch/
enabled=1
gpgcheck=0
$ sudo yum groupinstall -y "Development Tools"
$ sudo yum install -y python-devel java-1.7.0-openjdk-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-util-devel
# Install maven.
$ wget http://mirror.nexcess.net/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz
$ sudo tar -zxf apache-maven-3.0.5-bin.tar.gz -C /opt/
$ sudo ln -s /opt/apache-maven-3.0.5/bin/mvn /usr/bin/mvn
Building Mesos
# Change working directory.
$ cd mesos
# Bootstrap (***Skip this if you are not building from git repo***).
$ ./bootstrap
# Configure and build.
$ mkdir build
$ cd build
$ ../configure
$ make
# Run test suite.
$ make check
# Install (***Optional***).
$ make install
Examples
Mesos comes bundled with example frameworks written in C++, Java and Python.
# Change into build directory.
$ cd build
# Start mesos master (***Ensure work directory exists and has proper permissions***).
$ ./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/var/lib/mesos
# Start mesos slave.
$ ./bin/mesos-slave.sh --master=127.0.0.1:5050
# Visit the mesos web page.
$ http://127.0.0.1:5050
# Run C++ framework (***Exits after successfully running some tasks.***).
$ ./src/test-framework --master=127.0.0.1:5050
# Run Java framework (***Exits after successfully running some tasks.***).
$ ./src/examples/java/test-framework 127.0.0.1:5050
# Run Python framework (***Exits after successfully running some tasks.***).
$ ./src/examples/python/test-framework 127.0.0.1:5050
NOTE: To build the example frameworks, make sure you build the test suite by doingmake check.
但是mesos的构建远比我想象的要难一些。它花了我大概一天半的时间对它进行下载、准备安装环境以及简单的测试。其中几乎每一个步骤都会遇到问题,所以特意记录下来,方便将来参考:
下载Mesos:
Apache Mesos官方文档上有两种方式来获取Mesos:
1、从 Apache官网上下载(推荐的方式)。
$ wget http://www.apache.org/dist/mesos/0.21.0/mesos-0.21.0.tar.gz
$ tar -zxf mesos-0.21.0.tar.gz
2、从 Mesos git repository上获取 (只适用于大神们的方式)
$ git clone https://git-wip-us.apache.org/repos/asf/mesos.git
因为Spark1.3.1支持的是mesos 0.21.0,所以我没有使用最新的mesos版本,所以使用了0.21.0版本。我采用的是第一种方式下载Mesos。下载下来的Mesos只有是源码,而没有二进制包。所以需要我们按照自己的操作系统来编译。在编译之前,首先确认编译mesos所需的环境。
对系统的要求:
Mesos运行在Linux (64 Bit) 和 Mac OSX (64 Bit)上:
CentOS 6.5
1、确保/etc/yum.repos.d下的源是CentOS的,并且版本也和Linux一致。
我的Red Hat 6采用的是CentOS 6的源。如果Ubuntu,可以参考官方文档来做。
我之前Red Hat 6采用了CentOS5的源,导致后面环境更新时出现了问题,所以把CentOS6的源也记录下:
在/etc/yum.repos.d这个目录下,文件名可以自己取,我用的是CentOS6.repo 这个文件名,其内容如下:
[base]
name=CentOS-6 - Base - 163.com
baseurl=http://mirrors.163.com/centos/6/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#gpgcheck=1
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
##released updates
#[updates]
#name=CentOS-6 - Updates - 163.com
#baseurl=http://mirrors.163.com/centos/6/updates/$basearch/
##mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#gpgcheck=1
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
##additional packages that may be useful
#[extras]
#name=CentOS-6 - Extras - 163.com
#baseurl=http://mirrors.163.com/centos/6/extras/$basearch/
##mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#gpgcheck=1
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
##additional packages that extend functionality of existing packages
#[centosplus]
#name=CentOS-6 .2- Plus - 163.com
#baseurl=http://mirrors.163.com/centos/6/centosplus/$basearch/
##mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#gpgcheck=1
#enabled=0
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
##contrib - packages by Centos Users
#[contrib]
#name=CentOS-6 - Contrib - 163.com
#baseurl=http://mirrors.163.com/centos/6/contrib/$basearch/
##mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#gpgcheck=1
#enabled=0
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
然后执行:
yum clean all && yum clean metadata && yum clean dbcache && yum makecache && yum update
2、Mesos 0.21.0 + 需要subversion 1.8+ deve这个包,它在默认的yum是获取不到的。可以加入一个新的repo,/etc/yum.repos.d/wandisco-svn.repo它的内容是:
[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/6/svn-1.8/RPMS/$basearch/
enabled=1
gpgcheck=0
我不确定/etc/yum.repos.d/wandisco-svn.repo这个文件是否起到了作用,将wandisco-svn.repo这个文件添加到/etc/yum.repos.d。
3、执行sudo yum groupinstall -y "Development Tools",遇到如下问题:
public key for systemtap-client-2.5-5.el6.x86_64.rpm is not installed
原因是缺少systemtap-client-2.5-5.el6.x86_64.rpm。只要下载了这个rpm后执行rpm -ihv systemtap-client-2.5-5.el6.x86_64.rpm 安装即可,如果缺少其他依赖,就先安装其他依赖。
4、执行sudo yum install -y python-devel java-1.7.0-openjdk-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-util-devel
5、安装maven
构建Mesos:
# Change working directory.
$ cd mesos
# Configure and build.
$ mkdir build
$ cd build
$ ../configure
在执行到../configure时遇到了如下问题:
1) configure:error:cannot find libz. libz is required for mesos to build.
原因是缺少zlib-devel-1.2.3-25.el6.x86_64
需要下载相应的rpm,并安装:
rpm -ihv zlib-devel-1.2.3-25.el6.x86_64.rpm
2) configure:error:cannot find libcurl. libcurl is required for mesos to build.
原因是缺少libcurl-devel-7.19.7-16.el6.x86_64
需要下载相应的rpm,并安装:
rpm -ihv libidn-devel-1.18-2.el6.x86_64.rpm
rpm -ihv libcurl-devel-7.19.7-16.el6.x86_64.rpm
3) configure:error:cannot find libapr-1. libapr-1 is required for mesos to build.
原因是缺少apr-devel-1.3.9-3.el6.x86_64
需要下载相应的rpm,并安装:
rpm -ihv apr-1.3.9-3.el6.x86_64.rpm
rpm -ihv apr-devel-1.3.9-3.el6.x86_64.rpm
rpm -ihv apr-util-1.3.9-3.el6.x86_64.rpm
4) configure:error:cannot find libsvn_subr-1 headers. libsubversion-1 is required for mesos to build.
从http://opensource.wandisco.com/centos/6/svn-1.8/RPMS/找到下面的包,并安装:
rpm -ihv serf-1.2.0-1.x86_64.rpm
rpm -ihv subversion-debuginfo-1.8.0-1.x86_64.rpm
rpm -ihv subversion-1.8.0-1.x86_64.rpm
rpm -ihv subversion-javahl-1.8.0-1.x86_64.rpm
rpm -ihv subversion-devel-1.8.0-1.x86_64.rpm
5) configure:error:cannot find libsasl2. We need libsasl2 for authentication!
安装 rpm -ihv cyrus-sasl-devel-2.1.23-8.el6.x86_64.rpm
6) 如下图的错误:
libcurl is required for mesos to build.
安装 libcurl-devel
libapr-1 is required for mesos to build
安装apr-devel-1.3.9-3.el6.x86_64
libsubversion-1 is required for mesos to build.
# 处理方法
yum install subversion
yum install subversion-javahl
yum install subversion-devel
We need CRAM-MD5 support for SASL authentication.
yum install cyrus-sasl-md5
configure: error: in `/data/mesos/mesos-0.28.0/build':
configure: error:
Could not link test program to Python. Maybe the main Python library has been
installed in some non-standard library path. If so, pass it to configure,
via the LDFLAGS environment variable.
Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib"
============================================================================
ERROR!
You probably have to install the development version of the Python package
for your distribution. The exact name of this package varies among them.
============================================================================
See `config.log' for more details
yum install Python-devel
$ make
遇到如下问题:
为了解决上面的问题,需要安装下列包:
rpm -ihv apr-util-1.3.9-3.el6.x86_64.rpm
rpm -ihv apr-util-ldap-1.3.9-3.el6.x86_64.rpm
rpm -ihv db4-cxx-4.7.25-16.el6.x86_64.rpm
rpm -ihv db4-devel-4.7.25-16.el6.x86_64.rpm
rpm -ihv expat-devel-2.0.1-9.1.el6.x86_64.rpm
rpm -ihv openldap-devel-2.4.19-15.el6.x86_64.rpm
rpm -ihv apr-util-devel-1.3.9-3.el6.x86_64.rpm
# Run test suite.
$ make check
遇到如下问题:
意思是Linux的内核太旧了,这个错误我没鸟它,直接跳到下一步了。
# Install (***Optional***).
$ make install
We need CRAM-MD5 support for SASL authentication.
yum install cyrus-sasl-md5
测试:
# Change into build directory.
$ cd build
# Start mesos master (***Ensure work directory exists and has proper permissions***).
$ ./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/var/lib/mesos
# Start mesos slave.
$ ./bin/mesos-slave.sh --master=127.0.0.1:5050 (可以在最后加个&)
# Visit the mesos web page.
$ http://127.0.0.1:5050
# Run Java framework (***Exits after successfully running some tasks.***).
$ ./src/examples/java/test-framework 127.0.0.1:5050
测试步骤没什么大问题,可以访问页面,需要注意的是,使用jps并不能查到mesos的进程.
分享到:
相关推荐
综上所述,通过本次测试我们深入了解了Mesos在不同环境下的表现,并对其资源管理和任务调度能力有了更全面的认识。特别是当Mesos与Docker和Marathon等技术相结合时,可以构建出更加高效、灵活且稳定的分布式计算平台...
mesos 全套安装教程.拥有最完整的解释说明。傻瓜式安装。有对memos感兴趣或者对mesos的使用安装还不清楚的朋友值得一看。
#### 二、Mesos安装前准备 在正式安装Mesos之前,需要确保系统满足以下条件: - 操作系统支持:文档中提到了Ubuntu和CentOS两个操作系统。Ubuntu需要安装build-essential、openjdk-6-jdk等软件包;Centos则需通过...
本书会详细讲解Mesos的安装与配置,包括单节点和多节点集群的设置。此外,书中还会涉及Mesos的API使用,如何编写自己的Mesos框架,以及如何利用现有的框架如Marathon进行服务部署和管理。Marathon是一个持久化框架,...
vagrant-mesos 是一款运维工具,可以使 Mesos 集群的安装和运行更加容易。vagrant-mesos 支持 Mesos 0.21.0 集群,同时包括 Marathon (0.8.0) 和 Chronos (2.1.0)正在运行的框架服务器节点。这意味着,你可以使用 ...
在 Mesos 的目标环境中,它旨在为多个集群计算框架提供细粒度的资源共享,例如同时支持 Hadoop 和 MPI。设计时,Mesos 采取了将调度控制权下放到框架本身的理念,通过 resource offer 接口实现。每个 resource offer...
作者还阐述了Mesos如何与现有的数据中心基础设施集成,以及它在云计算环境中的作用。 **第2章:利用Mesos管理数据中心资源** 本章深入探讨了Mesos如何帮助用户有效地管理和分配数据中心内的计算资源。具体讨论了...
这样的设计让Mesos能够更加灵活地支持各种不同的任务运行环境。 在安全性和授权方面,Mesos支持Framework Authorization和Framework Rate Limiting来确保集群资源的安全和公平使用。日志与调试功能也非常关键,它...
【标题】:“mesos系列文章”指的是一组与Mesos相关的技术文章,Mesos...这样的系列文章对于想深入了解Mesos、准备在生产环境中使用Mesos,或者对分布式系统感兴趣的开发者和运维人员来说,都是非常有价值的参考资料。
首先,我们需要准备一个测试环境。根据提供的信息,我们的测试环境包括3个Master节点和3个Slave节点。这些节点的具体分配如下: - **Master节点**: - IP: 192.168.0.101 - IP: 192.168.0.102 - IP: 192.168.0....
10. **Mesos在云环境中的应用**:Mesos也常被用于云环境,可以作为公共云和私有云的基础架构,提供弹性扩展和资源优化。 总的来说,《Mastering Mesos》这本书将带你全面理解Mesos的原理、功能和实际应用,帮助你...
Set up Mesos on different operating systems Use the Marathon and Chronos frameworks to manage multiple applications Work with Mesos and Docker Integrate Mesos with Spark and other big data frameworks ...
安装和使用此库时,开发者通常会解压这个文件,然后通过Python环境进行安装,这可能涉及到设置环境变量、配置Nagios服务器以及与Mesos集群的对接。具体步骤包括编译源代码、安装依赖项,以及在Nagios配置中添加相应...
1. **配置**:设置测试环境,包括Mesos集群的配置信息,以及测试任务的参数。 2. **构建**:编译并打包Yardstick项目,生成可执行的测试脚本。 3. **运行测试**:将测试脚本部署到Mesos集群,启动基准测试。 4. **...
通过以上内容,我们了解了去哪儿网是如何利用Mesos和Docker技术,解决了传统虚拟机环境的痛点,并成功构建了快速、高效、低成本的开发和测试环境。同时,通过这一实践,去哪儿网还积累了宝贵的容器化运维和管理经验...
mesos-deb-packaging, 用于 Debian,Ubuntu,CentOS,RHEL和Fedora的Mesos软件包 Mesos Debian封装构建脚本,用创建一个Mesos软件包,以便在集群中简单安装。Mesos是一个集群管理器,它可以跨分布式应用程序或者框架...
从Mesos到Kubernetes