ubuntu16.04下安装部署mesos+marathon+docker

本文详细介绍了如何安装和配置Apache Mesos集群及其管理工具Marathon,包括依赖安装、编译过程、集群搭建步骤及Docker Swarm网络配置。同时展示了如何在Marathon上设置并运行Docker容器。

一 MESOS安装

1  http://archive.apache.org/dist/mesos/1.0.0/  下载安装包

   mesos-1.0.0 .tar.gz

 

2  通过apt-get下载安装相关的依赖包

    在下载先做些热身

    1 )apt-get clean

    2 )apt-get update

    3 )apt-get grade

    4 )apt-get install apt-file

    5 )apt-file update

    apt-file主要是为了在编译过程中发现缺包时可以通过 apt-file search来定位 ,比如缺了libz的时候,执行apt-file search libz来定位相关包在什么源包中,用通过apt-get来下载源包,从而获取所缺包。

           

$   apt-get -y install build-essential python-dev python-boto libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev lib32z1 zlib1g zlib1g-dev

 

3   配置maven

 $  vi /etc/maven/setting.xml

添加本地库

<localRepository>/usr/share/maven-repo</localRepository>

 

4   编译mesos

$  tar -zxvf     mesos-1.0.0 .tar.gz

$  cd  mesos-1.0.0

$  mkdir build

$  cd build

$  ../configure

$  make(十分漫长的过程,网上说make -j N能提速)

$  make install

 

5  视人品来填坑,人品好的可以跳过

当运行是有可能报erro while loading shared libraries:libmisos-1.0.0.so:cannot open shared object file: No such file or directory

这是因为没有把libmisos-1.0.0.so成功关联linux的usr/lib下

ln -s /usr/local/lib/*.so /usr/lib

$ ldconfig

 

6  运行mesos

$ cd /usr/local/sbin

Master:

$ mesos-master --ip=10.92.7.10  --quorum=1 --work_dir=/opt/mesos/mesos-1.0.0 --zk=zk://10.108.68.140:2181/mesos,10.108.68.140:2182/mesos,10.108.68.140:2183/mesos  --cluster=mesos-cluster --log_dir=/opt/mesos/mesos-1.0.0/log --logging_level=ERROR

 

$ mesos-master --ip=10.92.7.11  --quorum=1 --work_dir=/usr/local/mesos-1.0.0  --zk=zk://10.108.68.140:2181/mesos,10.108.68.140:2182/mesos,10.108.68.140:2183/mesos  --cluster=mesos-cluster --log_dir=/opt/mesos/mesos-1.0.0/log --logging_level=ERROR

 

$ mesos-master --ip=10.92.7.12  --quorum=1 --work_dir=/opt/mesos/mesos-1.0.0 --zk=zk://10.108.68.140:2181/mesos,10.108.68.140:2182/mesos,10.108.68.140:2183/mesos  --cluster=mesos-cluster --log_dir=/opt/mesos/mesos-1.0.0/log --logging_level=ERROR

 

Slaver:

$ mesos-agent --ip=10.92.21.68 --work_dir=/opt/mesos/mesos-1.0.0 --master=zk://10.108.68.140:2181/mesos,10.108.68.140:2182/mesos,10.108.68.140:2183/mesos --log_dir=/opt/mesos/mesos-1.0.0/log --logging_level=ERROR --docker=/usr/bin/docker

 

$ mesos-master --ip=10.92.7.9  --quorum=1 --work_dir=/opt/mesos/mesos-1.0.0 --zk=zk://10.108.68.140:2181/mesos,10.108.68.140:2182/mesos,10.108.68.140:2183/mesos  --cluster=mesos-cluster --log_dir=/opt/mesos/mesos-1.0.0/log --logging_level=ERROR

 

二  安装marathon

1  下载包http://downloads.mesosphere.com/marathon/v1.2.0/marathon-1.2.0.tgz

     marathon-1.2.0.tgz

 

2  解压

$ tar -zxvf  marathon-1.2.0.tgz

$ cd marathon-1.2.0

 

3 运行

分别在三台mesos管理节点上运行(10.92.7.10/11/12

$ ./bin/start --master zk://10.108.68.140:2181/mesos,10.108.68.140:2182/mesos,10.108.68.140:2183/mesos --zk zk://10.108.68.140:2181/marathon,10.108.68.140:2182/marathon,10.108.68.140:2183/marathon

 

三 启动swarm

 

10.92.7.10:

$ docker swarm init --listen-addr 10.92.7.10:2375 

docker swarm join-token manager

 

10.92.7.11:

$ docker swarm join \

    --token SWMTKN-1-47sw4sahh155dh541ue3befx5bzhdav29ew3hzekmlsm17fzjr-57bvcosjnupcrl0jjlxfgd91r \

    10.92.7.10:2375

 

10.92.7.12:

$  docker swarm join \

    --token SWMTKN-1-47sw4sahh155dh541ue3befx5bzhdav29ew3hzekmlsm17fzjr-57bvcosjnupcrl0jjlxfgd91r \

    10.92.7.10:2375

 

成员节点

 

10.92.21.68:

$ docker swarm join \

    --token SWMTKN-1-47sw4sahh155dh541ue3befx5bzhdav29ew3hzekmlsm17fzjr-4jcyj0q8wb1u59tk34w9dil4e \

    10.92.7.10:2375

 

10.92.7.9:

$  docker swarm join \

    --token SWMTKN-1-47sw4sahh155dh541ue3befx5bzhdav29ew3hzekmlsm17fzjr-4jcyj0q8wb1u59tk34w9dil4e \

    10.92.7.10:2375

 

四  启动overlay

 

docker network create -d overlay overlay_net

 

五 在marathon上配置docker容器,并运行

 

 

nginx
ID
/webserver/nginxlua
Command
Unspecified
Constraints
Unspecified
Dependencies
Unspecified
Labels
Unspecified
Resource Roles
Unspecified
Container
{
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "10.92.21.160:5000/csmbp/nginx:latest",
"network": "BRIDGE",
"portMappings": [
{
"containerPort": 80,
"hostPort": 0,
"servicePort": 10000,
"protocol": "tcp",
"labels": {}
}
],
"privileged": false,
"parameters": [],
"forcePullImage": false
}
}
CPUs
1
Environment
Unspecified
Executor
Unspecified
Health Checks
[
{
"path": "/",
"protocol": "HTTP",
"portIndex": 0,
"gracePeriodSeconds": 300,
"intervalSeconds": 60,
"timeoutSeconds": 20,
"maxConsecutiveFailures": 3,
"ignoreHttp1xx": false
}
]
Instances
1
IP Address
Unspecified
Memory
128 MiB
Disk Space
0 MiB
Port Definitions
[
{
"port": 10000,
"protocol": "tcp",
"labels": {}
}
]
Backoff Factor
1.15
Backoff
1 seconds
Max Launch Delay
3600 seconds
URIs
Unspecified
User
Unspecified
Args
Unspecified
Version
2016-10-20T14:36:54.795Z

 

    tomcat

写道
ID
/app/tomcat
Command
Unspecified
Constraints
Unspecified
Dependencies
Unspecified
Labels
Unspecified
Resource Roles
Unspecified
Container
{
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "10.92.21.160:5000/csmbp/tomcat:8.0",
"network": "BRIDGE",
"portMappings": [
{
"containerPort": 8080,
"hostPort": 0,
"servicePort": 10002,
"protocol": "tcp",
"labels": {}
}
],
"privileged": false,
"parameters": [],
"forcePullImage": false
}
}
CPUs
2
Environment
Unspecified
Executor
Unspecified
Health Checks
[
{
"path": "/CSMBP/",
"protocol": "HTTP",
"portIndex": 0,
"gracePeriodSeconds": 500,
"intervalSeconds": 500,
"timeoutSeconds": 300,
"maxConsecutiveFailures": 3,
"ignoreHttp1xx": false
}
]
Instances
1
IP Address
Unspecified
Memory
4096 MiB
Disk Space
0 MiB
Port Definitions
[
{
"port": 10002,
"protocol": "tcp",
"labels": {}
}
]
Backoff Factor
1.15
Backoff
1 seconds
Max Launch Delay
3600 seconds
URIs
Unspecified
User
Unspecified
Args
Unspecified
Version
2016-10-20T17:30:06.459Z

    tomcat健康检查的时间要和垃圾回收的时候设长一点



 

     

 

 

 

 

 

 

 

 

 

<think>好的,我现在需要帮助用户在Ubuntu 16.04安装Clang++ 14。首先,用户提供的引用资料里提到了一些关于安装Clang不同版本的信息,但都是关于较旧版本的,比如3.6或者通过apt安装的默认版本。而用户需要的是Clang++ 14,这是一个比较新的版本,而Ubuntu 16.04的官方仓库可能没有直接支持。 首先,我应该考虑Ubuntu 16.04的软件源是否包含Clang 14。根据经验,Ubuntu的官方仓库通常不会提供太新的软件版本,尤其是对于已经停止支持的发行版。Ubuntu 16.04在2021年4月已经结束了标准支持,所以很可能需要第三方源或者手动安装。 接下来,查看用户提供的引用内容,引用[2]和[3]提到在Ubuntu 16.04下通过apt安装clang-format和clang,但版本可能较低。比如引用[3]中安装的是clang和clangd,但没有说明具体版本,可能默认是系统仓库里的旧版。因此,我需要寻找其他方法。 一种常见的方法是使用LLVM的官方APT仓库。LLVM提供了不同版本的预编译包,可能支持旧版Ubuntu。用户需要添加LLVM的APT源,然后安装Clang 14。但需要确认该仓库是否支持Ubuntu 16.04(代号Xenial)。可能需要检查LLVM官网的说明。 另外,如果官方仓库不支持,可能需要手动下载Clang 14的二进制文件或者从源码编译。但编译源码对用户来说可能比较复杂,特别是如果用户不熟悉构建过程的话。所以优先考虑添加第三方源。 现在,我应该指导用户添加LLVM的APT仓库。通常步骤是: 1. 下载并安装LLVM的GPG密钥。 2. 添加仓库地址到sources.list。 3. 更新软件包列表。 4. 安装clang-14。 但需要确认该仓库是否支持Xenial。例如,LLVM的APT仓库可能只支持较新的Ubuntu版本。如果不行,可能需要使用其他方法,比如使用Ubuntu Toolchain PPA,或者通过snap安装。 另外,用户可能需要安装libstdc++或libc++,如引用[4]所述,但Clang 14可能需要更高版本的库,可能需要处理依赖关系。 可能的步骤: 1. 添加LLVM的APT仓库,如果支持Xenial的话。 2. 安装Clang 14及相关工具。 3. 处理可能的依赖问题,比如libstdc++的版本。 但需要验证Xenial是否在LLVM的APT支持列表中。例如,访问https://apt.llvm.org/查看支持的发行版。假设Xenial不在其中,那么可能需要手动安装。 另一种方法是使用预编译的二进制文件。从releases.llvm.org下载Clang 14的二进制包,解压并添加到PATH中。这可能需要用户手动设置环境变量,或者使用符号链接。 例如: wget https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz 解压后,将bin目录加入PATH。 但需要注意,该二进制是否适用于Ubuntu 16.04,可能依赖的库版本是否满足。如果二进制是针对Ubuntu 18.04构建的,可能在16.04上运行时出现glibc版本不兼容的问题。例如,Ubuntu 16.04的glibc版本是2.23,而18.04的是2.27,如果Clang 14需要更高版本的glibc,则无法运行。 这时可能需要考虑从源码编译Clang 14,但编译过程较为复杂,特别是对于不熟悉的用户来说可能有困难。 还有一种可能,使用第三方PPA,比如Ubuntu Toolchain的测试仓库,但需要检查是否有Clang 14的PPA支持Xenial。 总结可能的步骤: - 尝试通过LLVM的APT仓库安装,如果支持。 - 如果不行,尝试下载预编译的二进制文件,检查依赖。 - 若依赖不满足,考虑源码编译或使用其他方法。 现在,我需要根据这些可能性,给出用户一个可行的步骤。假设用户无法通过APT安装,那么手动下载预编译的二进制可能是更简单的方式,但需要处理依赖问题。或者建议用户升级到更高版本的Ubuntu以获得更好的支持。 在用户提供的引用中,引用[1]提到在Ubuntu安装clang++3.6时遇到问题,但用户需要的是14版本,所以可能需要不同的方法。引用[4]提到libc++和libstdc++的区别,可能需要安装对应的库。 因此,步骤可能包括: 1. 添加LLVM的APT仓库: wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - sudo add-apt-repository 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-14 main' sudo apt update sudo apt install clang-14 但需要确认该仓库是否存在xenial的版本。例如,访问https://apt.llvm.org/,查看是否有针对Xenial的14版本。假设存在的话,可以继续。 如果不存在,可能需要修改为其他代号,比如用bionic(18.04)的仓库,但可能不兼容。 比如,尝试使用: deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial main deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-14 main 但不确定是否存在该仓库。如果不存在,则这种方法不可行。 如果无法通过APT安装,则考虑手动下载二进制包: 从https://releases.llvm.org/download.html#14.0.0下载适用于Ubuntu的预编译版本,例如选择Clang 14.0.0的Pre-Built Binaries: x86_64-linux-gnu-ubuntu-18.04,解压后设置环境变量。 但需要检查glibc的版本: 在Ubuntu 16.04终端运行: ldd --version 如果输出显示glibc 2.23,而预编译的二进制可能需要更高版本,则无法运行。例如,Ubuntu 18.04的glibc是2.27,所以Clang 14的二进制可能需要glibc >=2.27,导致无法在16.04上运行。 这时可能需要从源码编译Clang,或者使用Docker容器等其他方法。 如果用户坚持在Ubuntu 16.04安装,可能需要编译Clang 14的源码。步骤如下: 安装依赖: sudo apt update sudo apt install build-essential cmake ninja-build git 下载源码: git clone https://github.com/llvm/llvm-project.git cd llvm-project git checkout release/14.x 编译: mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm make -j$(nproc) sudo make install 这个过程可能需要较长时间,且可能出现依赖问题,需要处理。 因此,综合来看,可能的解决方案包括: 1. 添加LLVM官方APT仓库,如果支持Xenial。 2. 使用预编译的二进制(可能不兼容)。 3. 从源码编译。 4. 建议升级Ubuntu版本或使用Docker。 现在需要根据用户的情况给出建议。如果用户无法升级系统,可能需要源码编译。如果用户愿意使用其他方法,可能更简单。 最终,回答应分步骤指导用户如何安装,可能包括APT方法(如果可行),或手动安装方法,并指出可能的依赖问题。</think>要在Ubuntu 16.04安装Clang++ 14,由于该版本已结束官方支持且软件仓库未提供Clang 14,需通过以下步骤手动安装: --- ### **方法1:使用LLVM官方APT仓库(若支持)** 1. **添加LLVM仓库密钥** 执行以下命令添加GPG密钥: ```bash wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - ``` 2. **添加仓库地址** 创建新的源文件(需确认仓库是否支持`xenial`): ```bash sudo nano /etc/apt/sources.list.d/llvm.list ``` 添加以下内容(若仓库支持): ```plaintext deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-14 main ``` 3. **更新并安装** ```bash sudo apt update sudo apt install clang-14 ``` 若仓库不可用,需改用其他方法。 --- ### **方法2:手动安装预编译二进制** 1. **下载二进制包** 从[LLVM官网](https://releases.llvm.org/download.html#14.0.0)下载适用于Linux的Clang 14预编译包(如`clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz`): ```bash wget https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz ``` 2. **解压并配置环境** ```bash tar xvf clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz sudo mv clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04 /opt/clang14 echo 'export PATH="/opt/clang14/bin:$PATH"' >> ~/.bashrc source ~/.bashrc ``` **注意**:若系统依赖库版本过低(如glibc < 2.27),可能无法运行[^4]。 --- ### **方法3:从源码编译(兼容性最佳)** 1. **安装编译依赖** ```bash sudo apt install build-essential cmake ninja-build git ``` 2. **下载源码并编译** ```bash git clone https://github.com/llvm/llvm-project.git cd llvm-project git checkout release/14.x mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm make -j$(nproc) sudo make install ``` 此过程耗时较长(约1-2小时),需确保磁盘空间充足。 --- ### **验证安装** 执行以下命令检查版本: ```bash clang++ --version ``` 若输出包含`Clang 14.0.0`,则安装成功。 --- ### **依赖问题处理** - **libstdc++版本过低**:升级GCC或手动安装高版本库。 - **glibc兼容性问题**:若预编译包无法运行,需升级系统或改用源码编译。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值