Ambari-单步创建cluster

Ambari-单步创建 整体介绍

  • 单步创建集群即对于集群内每一个服务的安装、开启,组成服务的每一个组件host信息的设置等操作都进行一次ambari-server的restAPI的调用。这样做提高了对集群操作的灵活性,由于Blueprint的出现是在ambari 1.5版本之后,对非HDP版本的支持性可能存在不足,故调ambari-server的restAPI采用的是ambari单步创建集群的调用方式。
  • 需要注意的是:在调用restAPI添加服务等操作请先确定该服务已经在stack中。

Ambari-单步创建 具体步骤 (以创建HDP版本为例)

  • 调用创建集群的API

    • request body 包括stack版本

    • POST http://<ambari-server>:8080/api/v1/clusters/<cluster-name>

    • request body:

      {

        "Clusters": {

          "version" : "BAIDU-1.0”

        }

      }

    • 实际命令

      curl -u admin:admin -i -X POST -d ‘{"Clusters":{"version":"BAIDU-1.0"}}‘ -H "X-Requested-By:ambari" http://<ambari-server>/api/v1/clusters/<cluster-name>

  • 向已创建的集群添加host

    • HTTP POST 请求 http://<ambari-server>:8080/api/v1/clusters/<cluster-name>/hosts/<master/slave
      host>

    • 实际命令

      curl -u admin:admin -i -X POST -H "X-Requested-By:ambari"  http://nj01-hadoop-rd03.nj01.baidu.com:8080/api/v1/clusters/abaciCluster/hosts/nj01-hadoop-rd03.nj01.baidu.com

    • 其中 <ambari-server> = nj01-hadoop-rd03.nj01.baidu.com <cluster-name> = abaciCluster <master/slave
      host> = nj01-hadoop-rd03.nj01.baidu.com

    • 注意:如果一个集群有多台host 那么调用多次命令。

  • 向已创建的集群添加服务    (以添加HDFS服务为例)

    • 添加hdfs服务

      • 采用HTTP POST http://<ambari-server>:8080/api/v1/clusters/<cluster-name>/services 
      • request body

        {

        "ServiceInfo": {

        "service_name": "HDFS"

        }

        }

      • 实际命令

        curl -u admin:admin -i -X POST -d ‘{"ServiceInfo":{"service_name":"HDFS"}}‘ -H "X-Requested-By:ambari" http://nj01-hadoop-rd03.nj01.com:8080/api/v1/clusters/abaciCluster/services 

      • 其中 <ambari-server> = nj01-hadoop-rd03.nj01.com <cluster-name> = abaciCluster <service-name> = HDFS

    • 添加服务组件 (包括namenode datanode)
      • 采用HTTP POST http://<ambari-server>:8080/api/v1/clusters/<cluster-name>/services/<service-name>/components/<component-name>
      • 实际命令

        curl -u admin:admin -i -X POST -H "X-Requested-By:ambari" http://nj01-hadoop-rd03.nj01.com:8080/api/v1/clusters/abaciCluster/services/HDFS/components/NAMENODE 

        curl -u admin:admin -i -X POST -H "X-Requested-By:ambari" http://nj01-hadoop-rd03.nj01.com:8080/api/v1/clusters/abaciCluster/services/HDFS/components/DATANODE 

      • 其中 <ambari-server> = nj01-hadoop-rd03.nj01.com <cluster-name> = abaciCluster <service-name> = HDFS <component-name> =
        NAMENODE/DATANODE
      • 注意:调用restapi的次数有该服务的组件种类决定。
    • 添加用户对HDFS的配置

      • 采用HTTP POST  http://<ambari-server>:8080/api/v1/clusters/<cluster-name>/configurations
      • request body 以hadoop-user-info.properties.xml为例

        {

        "type": "hadoop-user-info.properties",

        "tag": "1",

        "properties": {

        "root_ugi": "root,baidu",

        "user_ugi": "public,slave",

        "content": " # Format: username=password,group1,group2,group3 root=baidu,root public=slave,slave "

        }

        }

      • 上面的key-value值会存储在command-json中
      • 实际命令:

        curl -u admin:admin -i -X POST -d ‘{"type":"hadoop-user-info.properties","tag":"1","properties":{"root_ugi":"root,baidu","user_ugi":"public,slave","content":" # Format: username=password,group1,group2,group3 root=baidu,root
        public=slave,slave "}}‘  -H "X-Requested-By:ambari" http://<ambari-server>:8080/api/v1/clusters/abaciCluster/configurations

      • 注意:配置项很多,可能需要调用多次该restapi。
    • 更新用户添加的配置 更新后配置信息中的key/value会写入至command-json中

      • HTTP PUT 请求 http://<ambari-server>:8080/api/v1/clusters/<cluster-name>
      • request body

        {

        "Clusters": {

        "desired_configs": {

        "type": "hadoop-user-info.properties",

        "tag": "1"

        }

        }

        }

      • 实际命令

        curl -u admin:admin -i -X PUT -d ‘{ "Clusters" : {"desired_configs": {"type": "hadoop-user-info.properties", "tag" : "1" }}}‘ -H "X-Requested-By:ambari" http://<ambari-server>:8080/api/v1/clusters/abaciCluster

    • 对于每个组件配置相应的host (03为namenode 02 06为datanode)

      • HTTP POST请求 http://<ambari-server>:8080/api/v1/clusters/<cluster-name>/hosts?Hosts/host_name=<host-name>
      • request body

        {

        "host_components": [

        {

        "HostRoles": {

        "component_name": "NAMENODE"

        }

        }

        ]

        }

      • 实际命令

        curl -u admin:admin -i -X POST -d ‘{"host_components":[{"HostRoles":{"component_name":"NAMENODE"}}]}‘ -H "X-Requested-By:ambari" http://<ambari-server>:8080/api/v1/clusters/abaciCluster/hosts?Hosts/host_name=nj01-hadoop-rd03.nj01.com

        curl -u admin:admin -i -X POST -d ‘{"host_components":[{"HostRoles":{"component_name":"DATANODE"}}]}‘ -H "X-Requested-By:ambari" http://<ambari-server>:8080/api/v1/clusters/abaciCluster/hosts?Hosts/host_name=nj01-hadoop-rd02.nj01.com

        curl -u admin:admin -i -X POST -d ‘{"host_components":[{"HostRoles":{"component_name":"DATANODE"}}]}‘ -H "X-Requested-By:ambari" http://<ambari-server>:8080/api/v1/clusters/abaciCluster/hosts?Hosts/host_name=nj01-hadoop-rd06.nj01.com

  • 将所有服务部署完成后,开始进行集群服务的安装、开启、关闭

    • 服务安装

      • HTTP PUT 请求  http://<ambari-server>:8080/api/v1/clusters/<cluster-name>/services/<service-name>
      • request body

        {

        "ServiceInfo": {

        "state": "INSTALLED"

        }

        }

      • 实际命令:

        curl -u admin:admin -i -X PUT -d      ‘{"ServiceInfo": {"state" : "INSTALLED"}}‘  -H "X-Requested-By:ambari" http://<ambari-server>/api/v1/clusters/abaciCluster/services/ZOOKEEPER

    • 服务开启
      • HTTP PUT 请求  http://<ambari-server>:8080/api/v1/clusters/<cluster-name>/services/<service-name>
      • request body

        {

        "ServiceInfo": {

        "state": "STARTED"

            }

        }

      • 实际命令:

        curl -u admin:admin -i -X PUT -d      ‘{"ServiceInfo": {"state" : "STARTED"}}‘  -H "X-Requested-By:ambari" http://<ambari-server>:8080/api/v1/clusters/abaciCluster/services/ZOOKEEPER 

    • 服务关闭 
      • 服务关闭的命令同服务安装完全一致,当该服务在集群中的状态为started时,这时调用ambari-api的安装命令,ambari系统会将正在运行的服务进程通过python脚本内的stop函数进行关闭。

文章有改动过 具体关于ambari的问题可以联系我 大家一起讨论一下

时间: 2024-10-19 07:08:10

Ambari-单步创建cluster的相关文章

纯手动创建Redis Cluster集群,最原始的三主三从创建方法

Cluster集群Redis Cluster是官方提供的高可用方案,一个去中心化的Redis集群方案,所有的Redis节点彼此间互联(PING-PONG机制),客户端直连任意节点即可连接到Cluster集群,无需haproxy中间件.总结:1. 去中心化,分片存储,把所有的物理节点映射到[0-16383]共16384个slot(槽位)上,并不一定平均分配.2. Redis集群预分好16384个桶,当需要在 Redis 集群中放置一个 key-value 时,根据 CRC16(key) mod 1

ambari搭建

简介: 1.ambari为分布式架构的软件,主要由两部分组成:Ambari Server 和 Ambari Agent.简单来说,用户通过 Ambari Server 通知 Ambari Agent 安装对应的软件:Agent 会定时地发送各个机器每个软件模块的状态给 Ambari Server,最终这些状态信息会呈现在 Ambari 的 GUI,方便用户了解到集群的各种状态,并进行相应的维护.(类似zabbix agent模式) 2.ambari为创建.管理.监视 Hadoop 的集群,Amb

Configure Red Hat Enterprise Linux shared disk cluster for SQL Server

下面一步一步介绍一下如何在Red Hat Enterprise Linux系统上为SQL Server配置共享磁盘集群(Shared Disk Cluster)及其相关使用(仅供测试学习之用,基础篇) 一.      创建共享磁盘和 Cluster 微软官方配置文档:https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-shared-disk-cluster-red-hat-7-configure. Linux Cluster结构

Configure Red Hat Enterprise Linux shared disk cluster for SQL Server——RHEL上的“类”SQL Server Cluster功能

下面一步一步介绍一下如何在Red Hat Enterprise Linux系统上为SQL Server配置共享磁盘集群(Shared Disk Cluster)及其相关使用(仅供测试学习之用,基础篇) 一.      创建共享磁盘和 Cluster 微软官方配置文档:https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-shared-disk-cluster-red-hat-7-configure. Linux Cluster结构

weblogic管理1——创建 和 删除一个domain

说明本文环境  WLS_HOME=/home/weblogic/Oracle/Middleware 创建一个domian   第一种方法通过console 创建> [[email protected] Middleware]$ cd /home/weblogic/Oracle/Middleware/wlserver_10.3/common/bin[[email protected] bin]$ lltotal 112-rwxr-x---. 1 weblogic weblogic 22872 No

redis cluster

Redis cluster 介绍 Redis在3.0版正式引入了集群特性.Redis集群是一个分布式(distributed).容错(fault-tolerant)的 Redis内存K/V服务, 普通单机 Redis 使用的功能 仅是集群中的功能的一个子集(subset).Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误. Redis集群的几个重要特征: (1).Redis 集群的分片特征在

How To Setup Domino Cluster

创建Cluster Group 首先创建一个Clustter群组,并在各自的服务器文档中添加可以创建数据库及抄本的权限. 创建Domino Cluster服务器. 在服务器文档中选中需要添加的服务器,按要求创建完成. ? ? ? ? ? 此时的群集网络使用与邮件路由同一张网卡,如果用户数量多,邮件量大的话,会带来瓶颈,所以建议大家把群集服务器间的通信使用其它网卡. 为群集添加附加网络 ? ? Notes.ini文件添加以下参数 同样在另外一台机器上做重复如上操作,最后重启两台服务器. 检查群集端

zstack 创建云主机 (三)

扁平网络 Flat Network 1. 介绍 扁平网络在私有云网络环境中非常的流行.它的网络拓扑很简单,所有的云主机都是直接接在公司内部的一个大二层的网络上.扁平网络也非常容易搭建.由于所有的云主机和物理主机都在一个二层广播域,在这个二层网络上的云主机可以通过数据中心的核心路由器链接到Internet.在这个教程里,我们假定您拥有一个可以访问Internet的IP网络. 2. 前提 我们假定您已经根据安装手册里的方法成功的安装并且启动了ZStack.您可以在Chrome浏览器或者FireFox

Redis Cluster 的实现 - 初始化(2)

2) 在监听套接口上通过调用 aeCreateFileEvent() 设置事件处理器,从签名的调用可以看到设置的 ACCEPT 事件处理器为 clusterAcceptHandler(), aeCreateFileEvent(server.el, server.cfd[j], AE_READABLE, clusterAcceptHandler, NULL); // 设置事件处理器     int aeCreateFileEvent(aeEventLoop *eventLoop, int fd,