mesos集群在centos部署文档
- 格式:docx
- 大小:30.00 KB
- 文档页数:19
Mesos的地位Mesos可以认为是资源的中间商,Mesos是第一个可以在多个框架之间共享资源的集群调度器。
Mesos的设计理念:Mesos做为数据中心的内核,需要为大量不同类型的负载提供服务,没有一个调度器可以满足所有这些框架的需求,为了应对这个问题,Mesos的设计原则是:资源分配和任务调度的分离。
Mesos master 负责决定分配给每个框架多少资源,任务调度器负责如何使用这些资源,这取决于每个框架的调度器如何根据自身需求去实现。
也可以这样理解Mesos的设计理念:Mesos在各个框架间进行粗粒度的资源分配,每个框架根据自身任务的特点进行细粒度的任务调度。
BuildingDownloading MesosThere are different ways you can get Mesos:1. Download the latest stable release from Apache (Recommended)$ wget /dist/mesos/1.6.0/mesos-1.6.0.tar.gz$ tar -zxf mesos-1.6.0.tar.gz2. Clone the Mesosgit repository (Advanced Users Only)$ git clone https:///repos/asf/mesos.git NOTE: If you have problems running the above commands, you may need to first run through the System Requirements section below to install the wget, tar, and git utilities for your system.System RequirementsMesos runs on Linux (64 Bit) and Mac OS X (64 Bit). To build Mesos from source, GCC 4.8.1+ or Clang 3.5+ is required.On Linux, a kernel version >= 2.6.28 is required at both build time and run time. For full support of process isolation under Linux a recent kernel >= 3.10 is required.The Mesos agent also runs on Windows. To build Mesos from source, follow the instructions in the Windows section.Make sure your hostname is resolvable via DNS or via /etc/hosts to allow full support of Docker’s host-networking capabilities, needed for some of the Mesos tests. When in doubt, please validate that /etc/hosts contains your hostname.Ubuntu 14.04Following are the instructions for stock Ubuntu 14.04. If you are using a different OS, please install the packages accordingly.# Update the packages.$ sudo apt-get update# Install a few utility tools.$ sudo apt-get install -y tar wgetgit# Install the latest OpenJDK.$ sudo apt-get install -y openjdk-7-jdk# Install autotools (Only necessary if building from git repository). $ sudo apt-get install -y autoconflibtool# Install other Mesos dependencies.$ sudo apt-get -y install build-essential python-dev python-six python-virtualenv libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-devUbuntu 16.04Following are the instructions for stock Ubuntu 16.04. If you are using a different OS, please install the packages accordingly.# Update the packages.$ sudo apt-get update# Install a few utility tools.$ sudo apt-get install -y tar wgetgit# Install the latest OpenJDK.$ sudo apt-get install -y openjdk-8-jdk# Install autotools (Only necessary if building from git repository). $ sudo apt-get install -y autoconflibtool# Install other Mesos dependencies.$ sudo apt-get -y install build-essential python-dev python-six python-virtualenv libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev zlib1g-dev iputils-pingMac OS X 10.11 (El Capitan), macOS 10.12 (Sierra)Following are the instructions for Mac OS X El Capitan. When building Mesos with the Apple-provided toolchain, the Command Line Tools from XCode>= 8.0 are required; XCode 8 requires Mac OS X 10.11.5 or newer.# Install Command Line Tools. The Command Line Tools from XCode>= 8.0 are required.$ xcode-select --install# Install Homebrew.$ ruby -e "$(curl -fsSLhttps:///Homebrew/install/master/install)"# Install Java.$ brew install Caskroom/cask/java# Install libraries.$ brew install wgetgitautoconfautomakelibtool subversion maven# Install Python dependencies.$ sudoeasy_install pip$ pip install virtualenvWhen compiling on macOS 10.12, the following is needed:# There is an incompatiblity with the system installed svn and apr headers. # We need the svn and apr headers from a brew installation of subversion. # You may need to unlink the existing version of subversion installed via # brew in order to configure correctly.$ brew unlink subversion # (If already installed)$ brew install subversion# When configuring, the svn and apr headers from brew will be automatically # detected, so no need to explicitly point to them.# If the build fails due to compiler warnings, `--disable-werror` can be passed# to configure to not treat warnings as errors.$ ../configure# Lastly, you may encounter the following error when the libprocess tests run:$ ./libprocess-testsFailed to obtain the IP address for '<hostname>'; the DNS service may not be able to resolve it: nodename nor servname provided, or not known# If so, turn on 'Remote Login' within System Preferences > Sharing to resolve the issue.NOTE: When upgrading from Yosemite to El Capitan, make sure to rerun xcode-select --install after the upgrade.CentOS 6.6Following are the instructions for stock CentOS 6.6. If you are using a different OS, please install the packages accordingly.# Install a recent kernel for full support of process isolation.$ sudo rpm --import https:/// $ sudo rpm -Uvh/elrepo-release-6-6.el6.elrepo.noarch.rpm$ sudo yum --enablerepo=elrepo-kernel install -y kernel-lt# Make the just installed kernel the one booted by default, and reboot. $ sudosed -i 's/default=1/default=0/g' /boot/grub/grub.conf$ sudo reboot# Install a few utility tools. This also forces an update of `nss`, # which is necessary for the Java bindings to build properly.$ sudo yum install -y tar wgetgit which nss# 'Mesos> 0.21.0' requires a C++ compiler with full C++11 support,# (e.g. GCC > 4.8) which is available via 'devtoolset-2'.# Fetch the Scientific Linux CERN devtoolset repo file.$ sudowget -O /etc/yum.repos.d/slc6-devtoolset.repohttp://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo# Import the CERN GPG key.$ sudo rpm --importhttp://linuxsoft.cern.ch/cern/centos/7/os/x86_64/RPM-GPG-KEY-cern# Fetch the Apache Maven repo file.$ sudowget/repos/dchen/apache-maven/epel-apache-ma ven.repo -O /etc/yum.repos.d/epel-apache-maven.repo# 'Mesos> 0.21.0' requires 'subversion > 1.8' devel package, which is # not available in the default repositories.# Create a WANdisco SVN repo file to install the correct version: $ sudo bash -c 'cat > /etc/yum.repos.d/wandisco-svn.repo<<EOF [WANdiscoSVN]name=WANdisco SVN Repo 1.8enabled=1baseurl=/centos/6/svn-1.8/RPMS/$basearc h/gpgcheck=1gpgkey=/RPM-GPG-KEY-WANdiscoEOF'# Install essential development tools.$ sudo yum groupinstall -y "Development Tools"# Install 'devtoolset-2-toolchain' which includes GCC 4.8.2 and related packages.$ sudo yum install -y devtoolset-2-toolchain# Install other Mesos dependencies.$ sudo yum install -y apache-maven python-devel python-sixpython-virtualenv java-1.7.0-openjdk-develzlib-devellibcurl-developenssl-develcyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-develapr-util-devel# Enter a shell with 'devtoolset-2' enabled.$ scl enable devtoolset-2 bash$ g++ --version # Make sure you've got GCC > 4.8!# Process isolation is using cgroups that are managed by 'cgconfig'. # The 'cgconfig' service is not started by default on CentOS 6.6.# Also the default configuration does not attach the 'perf_event' subsystem.# To do this, add 'perf_event = /cgroup/perf_event;' to the entries in '/etc/cgconfig.conf'.$ sudo yum install -y libcgroup$ sudo service cgconfig startCentOS 7.1Following are the instructions for stock CentOS 7.1. If you are using a different OS, please install the packages accordingly.# Install a few utility tools$ sudo yum install -y tar wgetgit# Fetch the Apache Maven repo file.$ sudowget/repos/dchen/apache-maven/epel-apache-ma ven.repo -O /etc/yum.repos.d/epel-apache-maven.repo# Install the EPEL repo so that we can pull in 'libserf-1' as part of our # subversion install below.$ sudo yum install -y epel-release# 'Mesos> 0.21.0' requires 'subversion > 1.8' devel package,# which is not available in the default repositories.# Create a WANdisco SVN repo file to install the correct version: $ sudo bash -c 'cat > /etc/yum.repos.d/wandisco-svn.repo<<EOF [WANdiscoSVN]name=WANdisco SVN Repo 1.9enabled=1baseurl=/centos/7/svn-1.9/RPMS/\$basear ch/gpgcheck=1gpgkey=/RPM-GPG-KEY-WANdiscoEOF'# Parts of Mesos require systemd in order to operate. However, Mesos # only supports versions of systemd that contain the 'Delegate' flag. # This flag was first introduced in 'systemd version 218', which is # lower than the default version installed by centos. Luckily, centos # 7.1 has a patched 'systemd< 218' that contains the 'Delegate' flag. # Explicity update systemd to this patched version.$ sudo yum update systemd# Install essential development tools.$ sudo yum groupinstall -y "Development Tools"# Install other Mesos dependencies.$ sudo yum install -y apache-maven python-devel python-sixpython-virtualenv java-1.8.0-openjdk-develzlib-devellibcurl-developenssl-develcyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-develapr-util-develWindowsFollow the instructions in the Windows section.Building Mesos (Posix)# Change working directory.$ cdmesos# Bootstrap (Only required if building from git repository).$ ./bootstrap# Configure and build.$ mkdir build$ cd build$ ../configure$ makeIn order to speed up the build and reduce verbosity of the logs, you can append -j <number of cores> V=0 to make.# Run test suite.$ make check# Install (Optional).$ make installExamplesMesos comes bundled with example frameworks written in C++, Java and Python. The framework binaries will only be available after running make check, as described in the Building Mesos section above.# 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 agent (ensure work directory exists and has proper permissions).$ ./bin/mesos-agent.sh --master=127.0.0.1:5050--work_dir=/var/lib/mesos# 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:5050Note: These examples assume you are running Mesos on your local machine. Following them will not allow you to access the Mesos web page in a production environment (e.g. on AWS). For that you will need to specify the actual IP of your host when launching the Mesos master and ensure your firewall settings allow access to port 5050 from the outside world.。
CentOS下Hadoop集群搭建简介:Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,支持密集型分布式应用并以Apache2.0许可协议发布。
Hadoop:以Hadoop分布式文件系统HDFS(Hadoop Distributed Filesystem)和MapReduce (GoogleMapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构1.Hadoop实现了MapReduce的编程范式:应用程序被分割成许多小部分,而每个部分都能在集群中的任意节点上执行或重新执行。
2.HDFS:用以存儲所有計算節點的數據,這為整個集群帶來了非常高的帶寬。
3.Hadoop集群结构为:Master和Slave。
一个HDFS集群是由一个NameNode和若干个DataNode组成的。
其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。
4.MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。
主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。
主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。
当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。
5.HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。
HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。
HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop 分布式集群的主要任务。
MESOS简介范文Apache Mesos 是一个集群管理器类似于YARN,提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行 Hadoop、MPI、Hypertable、Spark。
使用场景:假设公司需要频繁进行大数据计算,该任务运行时需要 N 多 CPU 和内存,为了满足这个需求,我们有两种思路:思路一)使用小型机,单机即可为任务提供足够的资源;思路二)分布式计算,即提供一批普通配置的机器(计算节点),也就是集群,将计算任务拆分到各机器上计算,然后汇总结果。
思路二是当前正在流行的做法,为了达到思路二的要求,我们需要建立数据中心(集群)。
进一步,为了充分利用数据中心(集群)的资源(譬如为不同的任务分配不同资源,按任务优先级分配资源等),我们就需要一个工具来进行整个数据中心资源的管理、分配等,这个工具就是Mesos。
与Mesos 类似的工具还有YARN。
除此之外, Mesos 不仅为计算任务 Offer 资源,它也支持运行长时任务(譬如Web应用)。
目前国外好多互联网公司都在使用 Mesos 来作为它们的集群管理工具,这里是一个 Powered by Mesos list:Mesos 和 Cloudera 的差别:Mesos 的主要目标就是去帮助管理不同框架(或者应用栈)间的集群资源。
例如,有一个业务需要在同一个物理集群上同时运行Hadoop,Storm及 Spark。
这种情况下,现有的调度器是无法完成跨框架间的如此细粒度的资源共享的。
Hadoop 的YARN 调度器是一个中央调度器,它可以允许多个框架运行在一个集群里。
但是,要使用框架特定的算法或者调度策略的话就变得很难了,因为多个框架间只有一种调度算法。
例如:MPI 使用的是组调度算法,而 Spark 用的是延迟调度。
它们两个同时运行在一个集群上会导致供求关系的冲突。
Mesos特性:Mesos 是一个双层调度器。
在第一层中,Mesos 将一定的资源提供(以容器的形式)给对应的框架。
容器编排工具Mesos的高可用性部署实践容器编排工具Mesos是一种用于管理大规模集群中应用程序的开源技术。
它的高可用性部署实践作为一个关键性问题,一直备受关注。
本文将探讨如何在Mesos上实现高可用性部署。
首先,要实现Mesos的高可用性部署,必须确保Mesos控制器的高可用性。
Mesos控制器是整个系统的核心,负责管理集群资源和调度任务。
为了防止单点故障,我们可以通过使用主备模式来保证控制器的高可用性。
在主备模式下,有一个主控器和一个备份控制器。
当主控器宕机时,备份控制器会接管其职责,并继续运行。
这种设计保证了Mesos的控制器始终可用。
其次,除了保证控制器的高可用性,还需要确保Mesos的Agent节点的高可用性。
Agent节点是集群中的物理机或虚拟机,负责执行任务和资源管理。
为了防止单点故障,可以使用集群模式来部署Agent节点。
在集群模式下,每个Agent节点都会定期向主控器发送心跳信号以保持连接。
如果某个Agent节点无法发送心跳信号,主控器会将其标记为不可用,并将任务重新分配给其他可用节点。
这种方式提高了系统的可用性和容错性。
此外,为了提高Mesos的高可用性,还可以使用容器编排工具Docker来实现容器级别的高可用性。
Docker是一种轻量级的虚拟化技术,可以将应用程序及其依赖项打包成一个独立的容器。
通过使用Docker,可以将应用程序打包成可移植的容器镜像,并在Mesos上运行。
当某个容器发生故障时,Mesos会重新分配任务,并重新启动容器。
这种容器级别的高可用性可以显著提高系统的可用性。
此外,为了进一步增强Mesos的高可用性,可以使用负载均衡器来分配请求。
负载均衡器是一种网络设备,可以将请求流量分配到多个后端服务器上,以提高系统的性能和可靠性。
通过在Mesos集群前面使用负载均衡器,可以确保所有请求都被均衡分配给不同的Agent节点,从而避免单个Agent节点过载或故障导致的系统中断。
-e "MESOS_PORT=5050" \-e "MESOS_LOG_DIR=/var/log/mesos" \-e "MESOS_QUORUM=1" \-e "MESOS_REGISTRY=in_memory" \-e "MESOS_WORK_DIR=/var/lib/mesos" \-d \garland/mesosphere-docker-mesos-master第四步:启动Marathon。
docker run \-d \-p 8080:8080 \garland/mesosphere-docker-marathon --master zk://${HOST_IP}:2181/mesos --zk zk://${HOST_IP}:2181/marathon第五步:启动Mesos Slave。
docker run -d \--name mesos_slave_1 \--entrypoint="mesos-slave" \-e "MESOS_MASTER=zk://${HOST_IP}:2181/mesos" \-e "MESOS_LOG_DIR=/var/log/mesos" \-e "MESOS_LOGGING_LEVEL=INFO" \garland/mesosphere-docker-mesos-master:latest第六步:访问 Mesos 页面。
Mesos Web 页面地址是:http://${HOST_IP}:5050第七步:通过Marathon的Web页面启动一个Job。
Marathon Web页面地址是:http://${HOST_IP}:8080。
Marathon 可以让你部署长期运行的Job到Mesos Slave容器上,这个可以帮助你去检查你的集群是否启动,并且处于running的状态,打开上面的地址后你会看到下面的页面:以到容器中查看文件是否创建,并检查下这个Job是不是一直在运行。
容器编排工具Mesos的使用方法与部署指南随着容器技术的兴起以及云计算的迅速发展,容器编排工具成为企业进行应用部署和管理的重要工具之一。
Mesos作为一款开源的容器编排工具,具备高度可扩展性和可靠性,为企业提供了灵活且强大的管理方案。
本文将详细介绍Mesos的使用方法与部署指南,帮助读者更好地了解和运用该工具。
一、Mesos简介与特点Mesos是由Apache基金会开发和维护的一款开源的分布式系统内核,旨在为大规模的应用程序提供高效的资源管理。
Mesos的设计理念是将整个数据中心的资源视为一个大容器,将资源进行统一管理和分配,从而实现高效的资源利用和任务调度。
Mesos的核心特点包括:1. 高度可扩展性:Mesos支持扩展到上千台机器,能够容纳数以万计的任务。
它采用了多级调度架构,可以有效地管理和调度大规模集群中的资源。
2. 多种应用支持:Mesos不仅支持Docker等常见的容器技术,还兼容其他各类应用框架,如Hadoop、Spark等。
这使得Mesos成为一个通用的资源管理平台,可以方便地集成各种应用和服务。
3. 高可用性和容错性:Mesos的设计目标之一是提供高可用性和容错性的系统。
它采用了主从架构,主节点负责资源的调度,从节点则负责具体任务的运行。
当主节点发生故障时,从节点可以接管工作,保证整个系统的正常运行。
二、Mesos的部署与配置要使用Mesos,首先需要进行部署和配置。
以下是Mesos的部署指南:1. 下载与安装:可以从Mesos的官网上下载最新的稳定版本,然后按照官方提供的安装指南进行安装。
Mesos支持各种操作系统,如Linux、Mac OS和Windows。
2. 配置文件:在安装完成后,需要配置Mesos的相关参数。
配置文件一般位于/etc/mesos下,可以根据需求进行修改和调整。
主要的配置参数包括集群名称、IP 地址、端口号等。
3. 启动Mesos:配置完成后,可以通过执行mesos-master命令启动主节点,通过执行mesos-slave命令启动从节点。
容器编排工具Mesos的基本使用方法Mesos是一种开源的容器编排工具,被广泛应用于构建和管理分布式系统。
它的基本使用方法可以帮助开发者更高效地管理和调度容器资源。
在本文中,我们将介绍Mesos的基本概念、安装步骤以及常用的命令行操作。
首先,让我们了解Mesos的基本概念。
Mesos的核心是一个集中式的管理器,负责分配和管理集群中的资源。
它将集群划分为多个资源池,每个资源池都可以托管一组容器。
资源池可以按照不同的需求进行配置,以便灵活地适应不同的应用场景。
接下来,我们来看看如何安装Mesos。
首先,你需要下载并安装Mesos的程序包。
你可以从Mesos的官方网站上找到适合你系统的版本。
安装完成后,你需要配置Mesos的运行环境。
你需要指定一些基本的配置信息,如网络地址、端口等。
配置完成后,你可以启动Mesos的运行进程。
一旦Mesos安装和配置完成,你就可以开始使用了。
下面是一些常用的Mesos命令行操作。
首先是提交任务。
你可以使用"mesos-submit"命令来提交一个任务到Mesos集群。
你需要指定任务的描述文件,该文件包含了任务的详细信息,如镜像、命令等。
通过提交任务,Mesos会自动分配资源并启动容器。
接下来是查看任务状态。
你可以使用"mesos-status"命令来查看任务的运行状态。
该命令会返回任务的详细信息,包括任务的ID、状态、资源使用情况等。
还有一个重要的操作是扩容。
你可以使用"mesos-resize"命令来扩大或缩小集群中容器的数量。
通过该命令,你可以根据需求动态调整集群的资源使用情况,以提高系统的弹性和效率。
此外,Mesos还提供了一些其他的功能,如资源监控、日志管理等。
你可以使用相应的命令来查看和管理这些功能。
总结起来,Mesos是一个强大的容器编排工具,它提供了丰富的功能和灵活的使用方法。
通过学习和掌握Mesos的基本概念和使用方法,开发者可以更好地管理和调度容器资源,提高系统的稳定性和效率。
容器编排工具Mesos使用实践指南1. 简介容器编排工具Mesos是一个开源的资源管理框架,旨在提供高效、可扩展的集群管理能力。
它可以有效地管理和调度容器应用程序的运行,提高集群的利用率和资源分配的灵活性。
2. 安装与配置Mesos的安装和配置相对简单。
首先,我们需要在主节点和各个工作节点上安装Mesos主程序,并配置它们的网络连接。
然后,我们需要设置Mesos主节点和工作节点的配置文件,包括集群的角色和资源分配策略等。
最后,启动Mesos集群,并确保各个节点之间的通信正常。
3. 任务调度与管理Mesos的核心功能之一是任务调度和管理。
在Mesos中,我们可以通过命令行或Web界面提交任务,并指定任务的资源需求和依赖关系等。
Mesos会根据集群的资源状况和调度算法来合理地安排任务的执行,并处理任务的失败和重新调度等情况。
4. 容器化应用程序的部署Mesos不仅支持传统的应用程序部署,还可以方便地支持容器化应用程序的部署。
通过与Docker等容器化工具的集成,Mesos可以自动管理和调度容器的创建和销毁,提供更加灵活和高效的资源利用方式。
同时,Mesos还提供了一套灵活的网络和存储抽象接口,使得容器化应用程序的部署和扩展变得更加简单和可控。
5. 高可用性与故障恢复在生产环境中,高可用性和故障恢复是非常重要的。
Mesos可以通过自动的主备切换和故障检测机制来保证集群的高可用性。
当主节点发生故障时,Mesos会自动选举新的主节点,并恢复集群的正常运行。
同时,Mesos还提供了日志和事件管理等功能,以便更好地追踪和排查故障。
6. 性能调优与监控为了确保集群的高性能和稳定运行,我们需要进行性能调优和监控。
Mesos提供了一些工具和技术来帮助我们进行性能调优,包括资源分配和任务调度策略的调整等。
同时,Mesos还支持与监控工具的集成,例如Prometheus和Grafana,可以实时监控集群的运行状况和性能指标,并进行数据分析和预警。
7.CentOS⽂件和⽬录以及系统与设置命令CentOS⽂件和⽬录etc------系统中的配置⽂件bin------系统预设执⾏⽂件的放置⽬录sbin------系统预设执⾏⽂件的放置⽬录usr------系统预设执⾏⽂件的放置⽬录var------/var/log程序运⾏⽇志的存放⽬录虚拟机的其他设置---克隆克隆⽅式的特点: 占⽤空间⼤ 原系统不存在 克隆体还能⽤系统备份---快照快照⽅式的特点 占⽤空间⼩ 原系统不存在 快照就不能⽤了不论是克隆还是快照虚拟机的状态必须是关机2.2 Linux ⽤户和⽤户组管理2.2.1 Linux账号管理1) 添加⽤户useradd 选项⽤户名参数说明:选项:-c comment 指定⼀段注释性描述。
-d ⽬录指定⽤户主⽬录,如果此⽬录不存在,则同时使⽤-m选项,可以创建主⽬录。
-g ⽤户组指定⽤户所属的⽤户组。
-G ⽤户组,⽤户组指定⽤户所属的附加组。
-s Shell⽂件指定⽤户的登录Shell。
-u ⽤户号指定⽤户的⽤户号,如果同时有-o选项,则可以重复使⽤其他⽤户的标识号。
⽤户名:指定新账号的⽤户名(后续我们可以使⽤这个⽤户名进⾏系统登录)。
添加⽤户czbk(传智播客的⾸拼)执⾏useradd czbk我们使⽤useradd命令创建了⼀个⽤户czbkuseradd 可⽤来建⽴⽤户帐号。
帐号建好之后,再⽤ passwd 设定帐号的密码。
执⾏如下由上图我们发现,我们在使⽤useradd新增⽤户的时候,出现了权限不⾜,也就是说我们使⽤⽤户itcast没有创建⽤户的权限。
我们通过管理员账号root进⾏创建,⾸先我们从控制台中切换到rootsu root在密码的地⽅输⼊我们的root密码【root】即可进⼊到root⽤户下。
我们在root下继续创建czbk⽤户以下是useradd常⽤选项2) ⽤户⼝令⽤户管理的⼀项重要内容是⽤户⼝令的管理。
⽤户账号刚创建时没有⼝令,但是被系统锁定,⽆法使⽤,必须为其指定⼝令后才可以使⽤使⽤者权限:管理员⽤户指定和修改⽤户⼝令的Shell命令是passwd。
容器编排工具Mesos的入门教程和使用方法一、什么是MesosMesos是一个开源的容器编排工具,它可以对集群中的资源进行高效管理和调度。
它提供了一个统一的接口,使得开发者可以方便地在集群中运行不同的应用程序,并且能够自动调度和分配资源,提高集群的利用率和可伸缩性。
二、Mesos的基本架构和工作原理1. Master-Slave架构:Mesos采用Master-Slave架构,其中Master节点负责集群资源的管理和调度决策,而Slave节点负责运行任务和提供资源。
2. 资源调度:Mesos将集群中的资源划分为多个资源隔离的容器,这些容器可以是传统的物理机或虚拟机,也可以是容器化的应用。
Master节点通过调度算法来决策将任务分配给哪些Slave节点,以最大化资源的利用率和任务的执行效率。
3. 框架和任务:Mesos中,应用程序被称为框架,而任务则是框架提交给Mesos进行调度和执行的最小单位。
开发者可以使用不同的编程语言和框架来编写自己的应用程序,并通过Mesos提供的API与Master节点进行交互。
三、Mesos的安装和配置1. 安装前准备:在开始安装Mesos之前,首先需要确保系统上已经安装了Java和相关的依赖库。
具体的安装步骤可以参考Mesos官方文档提供的指引。
2. 配置Master节点:在Master节点上,需要编辑mesos-master.conf配置文件,设置好集群的相关参数,如集群的名称、ZooKeeper的地址等。
配置完成后,启动Master节点。
3. 配置Slave节点:在Slave节点上,需要编辑mesos-slave.conf配置文件,设置好Slave节点的相关参数,如Master节点的地址、资源的分配情况等。
配置完成后,启动Slave节点。
四、使用Mesos进行任务调度和管理1. 创建框架:首先,开发者需要创建一个框架,以定义自己的应用程序。
可以使用Mesos提供的现成的应用框架,也可以根据自己的需求自定义一个框架。
# 一、环境介绍#单机环境、跳板机(根据自己的需要即可)[root@Siffre ~]# cat /etc/redhat-releaseCentOS release 6.6 (Final)[root@Siffre ~]# uname -r2.6.32-504.el6.x86_64# 二、安装Docker ### 2.1 下载官网rpm包[root@Siffre ~]# wget https:///rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rp m## 2.2安装rpm包##安装前我们需要安装一个依赖包:[root@Siffre ~]# yum installlibcgroup -y安装rpm包:[root@Siffre ~]# rpm -ivh docker-engine-1.7.1-1.el6.x86_64.rpm## 2.3检查并启动Docker ##检查docker版本[root@Siffre ~]# docker versionClient version: 1.7.1Client API version: 1.19Go version (client): go1.4.2Git commit (client): 786b29dOS/Arch (client): linux/amd64Server version: 1.7.1Server API version: 1.19Go version (server): go1.4.2Git commit (server): 786b29dOS/Arch (server): linux/amd64启动dockerservice docker start或/etc/init.d/docker start# 三、服务安装#数人科技源:Curl -o /etc/yum.repos.d/dataman.repo http://get.dataman.io/repos/centos/6/6/dataman.repo官方源:wget /dist/mesos/0.23.0/mesos-0.23.0.tar.gz官方Git源:git clone https:///repos/asf/mesos.git**以下根据数人科技的源安装,后期会编译安装**## 3.1 zookeeper ##导入源:[root@Siffre ~]# rpm -Uvh /cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rp myum安装[root@Siffre ~]# yum install zookeeper zookeeper-server -y## 3.2mesos ##导入源:[root@Siffre ~]# curl -o /etc/yum.repos.d/dataman.repo http://get.dataman.io/repos/centos/6/6/dataman.repoyum安装:[root@Siffre ~]# yum installmesos -y## 3.3 marathon ##导入源:[root@Siffre ~]# curl -o /etc/yum.repos.d/dataman.repo http://get.dataman.io/repos/centos/6/6/dataman.repoyum安装:[root@Siffre ~]# yum install marathon -y## 3.4 haproxy ##yum安装即可:[root@Siffre ~]# yum installhaproxy -y## 3.5 bamboo ##导入源:[root@Siffre ~]# mkdir /application[root@Siffre ~]# cd /application/[root@Siffre application]# wget /download/dataman-bamboo-0.9.0.tar.gz [root@Siffre application]# lsdataman-bamboo-0.9.0.tar.gz[root@Siffre application]# tar -zxf dataman-bamboo-0.9.0.tar.gz[root@Siffre application]# lsbamboo dataman-bamboo-0.9.0.tar.gz# 四、配置服务参数### 4.1 Mesos ##自身配置:#配置mesos在zk的使用目录echo "zk://10.3.10.29:2181/mesos" > "/etc/mesos/zk" #zookeeper2181默认端口### 4.1.1 Mesos-Master ####指定master配置目录MESOS_MASTER_CONF_DIR="/etc/mesos-master"#指定master的主机名echo "10.3.10.29" > $MESOS_MASTER_CONF_DIR/hostname这里的10.3.10.29是当前机器的地址ipconfig –a查看#用本机IP表示#指定master的ipecho "0.0.0.0" > $MESOS_MASTER_CONF_DIR/ip#副本的仲裁数量的大小(集群配置很重要,本次试验只有1台所以写1)echo "1" > $MESOS_MASTER_CONF_DIR/quorum#注册表中存储持久性信息的地址echo "/var/lib/mesos" > $MESOS_MASTER_CONF_DIR/work_dir### 4.1.2 Master-Slave ####指定slave配置目录MESOS_SLAVE_CONF_DIR="/etc/mesos-slave"#指定slave的主机名(这里不能用localhost)echo "10.3.10.29 " > $MESOS_SLAVE_CONF_DIR/hostname这里的10.3.10.29也是一样写当前机器的地址#用IP表示#指定slave支持的容器类型echo "docker,mesos" > $MESOS_SLAVE_CONF_DIR/containerizers#指定slave的ipecho "0.0.0.0" > $MESOS_SLAVE_CONF_DIR/ip#执行器注册超时时间echo "5mins" > $MESOS_SLAVE_CONF_DIR/executor_registration_timeout#指定mesos资源控制的内容(这里只有打开对CPU和内存的控制)echo "cgroups/cpu,cgroups/mem" > $MESOS_SLAVE_CONF_DIR/isolation## 4.2 marathon ###创建marathon目录mkdir /etc/marathon/conf -p#指定marathon配置目录MARATHON_CONF_DIR="/etc/marathon/conf"#指定marathon在zk目录路径echo "zk://10.3.10.29:2181/marathon" > $MARATHON_CONF_DIR/zk这里的10.3.10.29需要变成当前的地址#事件订阅模式echo "http_callback" > $MARATHON_CONF_DIR/event_subscriber#指定marathon主机名echo "10.3.10.29" > $MARATHON_CONF_DIR/hostname这里的10.3.10.29也是需要变成当前的地址#用IP表示#指定mesos在zk目录路径echo "zk://10.3.10.29:2181/mesos" > $MARATHON_CONF_DIR/master这里的10.3.10.29也是需要变成当前的地址## 4.3 bamboo ##### 4.3.1 注释模版的8080部分,否则该8080端口和marathon自带默认端口冲突,端口可以改成9090或者其他只要不是8080就可以###[root@Siffre application]# vim /application/bamboo/config/haproxy_template.cfg#注释以下部分frontendwebsocket-in#注意是websocket-in而不是http-inbind *:8080{{ $services := .Services }}{{ range $index, $app := .Apps }} {{ if$app.Env.BAMBOO_WEBSOCKET_OPEN }} {{ if hasKey $services $app.Id }} {{ $service := getService $services $app.Id }}acl {{ $app.EscapedId }}-websocket-aclrule {{ $service.Acl}}:8080use_backend {{ $app.EscapedId }}-websocket-cluster if {{ $app.EscapedId }}-websocket-aclrule{{ end }} {{ end }} {{ end }}stats enable# CHANGE: Your stats credentialsstatsauthadmin:adminstatsuri /haproxy_stats{{ range $index, $app := .Apps }} {{ if$app.Env.BAMBOO_WEBSOCKET_OPEN }}backend {{ $app.EscapedId }}-websocket-cluster{{ if $app.HealthCheckPath }}optionhttpchk GET {{ $app.HealthCheckPath }}{{ end }}balanceleastconnoptionhttpcloseoptionforwardfor{{ range $page, $task := .Tasks }}server {{ $app.EscapedId }}-{{ $task.Host }}-{{ index $task.Ports 1 }}{{ $task.Host }}:{{ index $task.Ports 1 }} {{ end }}{{ end }}{{ end }}#提示:由于centos6.6安装的haproxy版本问题,下面两句也需要注释掉globallog /dev/log local0log /dev/log local1 noticechroot /var/lib/haproxy#stats socket /run/haproxy/admin.sock mode 660 level admin #注释此句stats timeout 30suserhaproxygrouphaproxydaemon# Default SSL material locationsca-base /etc/ssl/certscrt-base /etc/ssl/private#ssl-default-bind-options no-sslv3 #注释此句# Default ciphers to use on SSL-enabled listening sockets.# For more information, see ciphers(1SSL).# ssl-default-bind-ciphers kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL### 4.3.2 修改bamboo配置###[root@Siffre application]# vim bamboo/config/production.json{ "Marathon":{"Endpoint": "http://10.3.10.29:8080" }, "Bamboo": {"Endpoint": "http://10.3.10.29:8000","Zookeeper": {"Host": "10.3.10.29:2181","Path": "/marathon-haproxy/state","ReportingDelay": 5} },"HAProxy":{"TemplatePath": "/application/bamboo/config/haproxy_template.cfg","OutputPath": "/etc/haproxy/haproxy.cfg","ReloadCommand": "PIDS=`pidofhaproxy`; haproxy -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf $PIDS && while ps -p $PIDS; do sleep 0.2; done" },"StatsD":{"Enabled": false,"Host": "10.3.10.29:8125","Prefix": "bamboo-server.development." }}## 4.4 zookeeper ##初始化service zookeeper-server init --myid=1 #单机环境可以不初始化提示:若不能更改添加--forceservice zookeeper-server init --myid=1 --force# 五、服务启动### 5.1 zookeeper ###启动命令service zookeeper-server start#查看进程ps -ef|grepzookeeper|grep -v grep#查看日志tail -f /var/log/zookeeper/zookeeper.log提示:若zookeeper出现无法启动问题,可能是由于跳板机、sudo、ssh远程登录导致相关变量时效,无法启动java相关程序解决方法:安装jdk7的rpm包,不建议去手动去改,可能会出错安装方法:wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie""/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-x64.rpm" -O jdk-7-linux-x64.rpm## 5.2 Mesos-Master ### 启动命令nohupmesos-master --zk=zk://10.3.10.29:2181/mesos --ip=0.0.0.0 --work_dir=/var/lib/mesos --quorum=1 --log_dir=/var/log/mesos&>> /var/log/mesos/mesos-master.log & #查看进程状态psaxuf | grepmesos-master | grep -v grep#查看日志tail -f /var/log/mesos/mesos-master.log## 5.3Mesos-Slave ### 启动命令nohupmesos-slave --master=10.3.10.29:5050 --hostname=10.3.10.29 &>> /var/log/mesos/mesos-slave.log &#查看进程状态psaxuf | grepmesos-slave | grep -v grep#查看日志tail -f /var/log/mesos/mesos-slave.log## 5.4 marathon ###添加目录和日志文件mkdir /var/log/marathontouch /var/log/marathon/marathon.log# 启动命令nohup marathon &>> /var/log/marathon/marathon.log &#查看进程状态psaxuf | grep marathon | grep -v grep#查看日志tail -f /var/log/marathon/marathon.log## 5.5 haproxy ### 启动命令servicehaproxy start#进程状态psaxuf | grephaproxy | grep -v grep## 5.6 bamboo ### 启动命令nohup /application/bamboo/bamboo -config /application/bamboo/config/production.json -log /var/log/bamboo-server.log &>>/var/log/bamboo.log &#查看日志tail -f /var/log/bamboo.log提示:1、默认安装haproxy时,相关文件的路径可能会有些不同。