CentOS下如何搭建Mesos单机环境?求详细步骤教程。

在探索分布式系统和资源调度的广阔领域时,Apache Mesos作为一个强大的集群管理器,能够将数据中心的服务器抽象为一个巨大的计算资源池,对于开发者、运维工程师而言,在单台机器上搭建Mesos环境是学习其工作原理、测试框架和应用的理想起点,本文将详细介绍如何在CentOS 7系统上,通过源码编译的方式安装并配置一个单机版的Mesos环境,整个过程将涵盖环境准备、依赖安装、Zookeeper与Mesos的编译部署,以及最终的验证步骤。

CentOS下如何搭建Mesos单机环境?求详细步骤教程。

环境准备

在开始安装之前,确保您的系统满足以下基本条件,一个干净、准备充分的环境是成功安装的一半。

您需要一台运行CentOS 7的服务器或虚拟机,为了方便操作,建议创建一个具有sudo权限的非root用户,由于这是一个用于学习和测试的单机环境,为了简化初期的配置,我们可以暂时禁用防火墙和SELinux,以避免不必要的网络访问限制,在生产环境中,请务必正确配置防火墙规则。

# 禁用SELinux
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
# 停止并禁用firewalld
sudo systemctl stop firewalld
sudo systemctl disable firewalld

核心依赖安装

Mesos的编译和运行依赖于一系列系统库和工具,在开始之前,我们需要使用yum包管理器安装这些必要的依赖组件。

# 更新系统软件包
sudo yum update -y
# 安装开发工具组和必要的库
sudo yum groupinstall -y "Development Tools"
sudo yum install -y wget git apache-maven python-devel libcurl-devel 
    zlib-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel 
    subversion-devel java-1.8.0-openjdk-devel

上述命令安装了编译Mesos所需的Development Tools工具组(如GCC, Make等),以及一系列关键的依赖库,例如用于网络通信的libcurl,用于数据压缩的zlib,用于安全认证的OpenSSLCyrus SASL,以及Mesos Web UI和一些框架所需的Java开发环境(JDK)。

安装Apache Zookeeper

Mesos依赖Zookeeper进行Master节点的选举和集群状态的协调,即使是单机模式,Mesos也需要一个Zookeeper实例来存储其状态信息。

  1. 下载与解压
    从Apache Zookeeper官网下载一个稳定版本,这里以3.5.8版本为例。

    cd /usr/local/src
    sudo wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz
    sudo tar -xzf apache-zookeeper-3.5.8-bin.tar.gz
    sudo mv apache-zookeeper-3.5.8-bin /usr/local/zookeeper
  2. 创建配置文件
    创建一个简单的Zookeeper配置文件,主要是指定数据存储目录和客户端连接端口。

    sudo mkdir -p /var/lib/zookeeper
    sudo tee /usr/local/zookeeper/conf/zoo.cfg > /dev/null <<EOF
    tickTime=2000
    dataDir=/var/lib/zookeeper
    clientPort=2181
    EOF
  3. 启动Zookeeper
    使用Zookeeper自带的脚本启动服务。

    /usr/local/zookeeper/bin/zkServer.sh start

    您可以使用/usr/local/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181来测试连接是否成功。

编译与安装Mesos

现在进入核心环节,编译安装Mesos,我们将从源代码开始,以确保获得最新的功能或特定版本。

  1. 下载Mesos源码
    同样,从Apache官网下载Mesos的源码包,这里以1.11.0版本为例。

    CentOS下如何搭建Mesos单机环境?求详细步骤教程。

    cd /usr/local/src
    sudo wget https://archive.apache.org/dist/mesos/1.11.0/mesos-1.11.0.tar.gz
    sudo tar -xzf mesos-1.11.0.tar.gz
    cd mesos-1.11.0
  2. 配置编译选项
    运行configure脚本来检查依赖并生成Makefile,此过程会扫描系统中已安装的库。

    mkdir build
    cd build
    ../configure

    如果configure过程中报告有缺失的依赖,请返回“核心依赖安装”部分并安装相应的软件包。

  3. 编译与安装
    使用make命令进行编译,这可能需要一些时间,具体取决于您的机器性能,编译完成后,使用make install将Mesos安装到系统中。

    # 使用-j参数可以加速编译,根据CPU核心数调整
    make -j$(nproc)
    sudo make install

配置并启动Mesos Master与Agent

安装成功后,我们需要配置并启动Mesos的核心守护进程:Master(主节点)和Agent(工作节点,旧称Slave)。

  1. 创建必要的目录
    Mesos Master和Agent需要目录来存储工作文件和日志。

    sudo mkdir -p /var/lib/mesos
    sudo mkdir -p /var/log/mesos
  2. 配置并启动Master
    创建一个配置文件来告知Master Zookkeeper的地址,在单机模式下,地址就是本地的0.0.1:2181

    echo "zk://127.0.0.1:2181/mesos" | sudo tee /etc/mesos/zk

    可以直接在后台启动Master进程。--work_dir参数指定了其工作目录。

    sudo mesos-master --zk=zk://127.0.0.1:2181/mesos --work_dir=/var/lib/mesos --quorum=1 &
  3. 配置并启动Agent
    Agent需要知道Master的地址才能注册自己。

    echo "127.0.0.1:5050" | sudo tee /etc/mesos/master

    启动Agent进程。--work_dir--master是关键参数。

    sudo mesos-agent --master=127.0.0.1:5050 --work_dir=/var/lib/mesos &

验证安装

所有组件都已启动,我们可以通过几种方式来验证Mesos单机集群是否正常运行。

检查进程是否存在:

CentOS下如何搭建Mesos单机环境?求详细步骤教程。

ps aux | grep mesos

您应该能看到mesos-mastermesos-agent两个进程。

最直观的验证方式是通过Web UI,打开浏览器,访问http://<您的服务器IP地址>:5050,您将看到Mesos的主控界面,在”Agents”标签页下,应该能看到一个已注册的Agent节点,其资源(CPU、内存、磁盘)信息会显示在页面上。

为了方便参考,以下是Mesos核心组件的默认端口:

组件名称 端口 用途
Mesos Master 5050 Master的Web UI和HTTP API
Mesos Agent 5051 Agent的HTTP API(Web UI默认禁用)
Zookeeper 2181 客户端连接端口

至此,您已经成功在CentOS上搭建了一个功能完备的Mesos单机环境,您可以开始在上面部署和测试各种分布式框架,如Marathon、Chronos等,进一步深入理解Mesos的强大能力。


相关问答FAQs

问题1:启动Mesos Master或Agent后,在Web UI上看不到Agent节点,Agent日志显示连接Master失败,该怎么办?

解答: 这是一个常见的网络或配置问题,请按以下步骤排查:

  1. 检查防火墙和SELinux:确认您已经按照文章前述步骤禁用了它们,或者为Master的5050端口和Agent的5051端口添加了放行规则。
  2. 检查Master地址:确保/etc/mesos/master文件中填写的Master地址(0.0.1:5050)是正确的,并且Master进程确实在该地址上监听,可以使用netstat -tlnp | grep 5050命令确认。
  3. 检查Zookeeper连接:确认Master能够成功连接到Zookeeper,Master日志中如果有关于Zookeeper连接失败的错误,请检查Zookeeper服务是否正常启动,以及/etc/mesos/zk文件中的地址字符串是否无误。

问题2:./configure脚本在执行时提示找不到Java Development Kit (JDK),但我已经安装了,如何解决?

解答: 这通常是因为系统没有正确设置JAVA_HOME环境变量,即使通过yum安装了JDK,configure脚本也可能找不到它,解决方法如下:

  1. 找到JDK安装路径:使用命令readlink -f $(which java),通常会得到一个指向/usr/lib/jvm/java-1.8.0-openjdk-.../jre/bin/java的路径,您需要去掉末尾的/jre/bin/java部分,得到类似/usr/lib/jvm/java-1.8.0-openjdk-...的路径。
  2. 设置环境变量:在运行configure之前,执行export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-...(请替换为您实际的路径)。
  3. :设置好环境变量后,再次运行../configure脚本,此时它应该能成功检测到JDK,为了永久生效,可以将此export命令添加到您的~/.bashrc/etc/profile文件中。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-12 08:36
下一篇 2025-10-12 08:38

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信