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/NAMENODEcurl -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",
",
"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": ""
}
}
} 实际命令
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.comcurl -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的问题能够联系我 大家一起讨论一下
Ambari-单步创建cluster的更多相关文章
- 在nodejs中创建cluster
目录 简介 cluster集群 cluster详解 cluster中的event cluster中的方法 cluster中的属性 cluster中的worker 总结 在nodejs中创建cluste ...
- docker下创建redis cluster集群
概述 在Redis中,集群的解决方案有三种 主从复制 哨兵机制 Cluster Redis Cluster是Redis的分布式解决方案,在 3.0 版本正式推出. 准备工作 1.确定本机IP地址 2. ...
- Ambari与Kerberos 集成
Kerberos 介绍 Kerberos 是一个网络认证的框架协议,其设计的初衷便是通过密钥系统为 Client 和 Server 应用程序之间提供强大的认证服务.在使用 Kerberos 认证的集群 ...
- 使用docker部署ambari的若干要点
ambari部署各个组件 使用ambari进行部署时主要需要的组件包括: ambari-server: 主要部署的控制节点,负责控制agent进行部署. mysql: server存储的数据库.也支持 ...
- Ambari安装常见问题
参考自: http://blog.csdn.net/xingxc111/article/details/70667574 http://blog.csdn.net/xfg0218/article/de ...
- 【定义及安装】Ambari——大数据平台的搭建利器
Ambari 是什么 Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目.目前最新的发布版本是 2.0.1,未来不 ...
- Ambari——大数据平台的搭建利器(一)
Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是**项目.目前最新的发布版本是 2.0.1,未来不久将发布 2.1 版本 ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- oracle中的cluster表
大家对通常oracle中的cluster的理解是不准确的,经常和sql server中的cluster index混淆.Cluster是存储一组table的一种方法,这些table共享同一数据块中的某 ...
随机推荐
- 中文分词--最大正向与逆向匹配算法python实现
最大匹配法:最大匹配是指以词典为依据,取词典中最长单词为第一个次取字数量的扫描串,在词典中进行扫描(为提升扫描效率,还可以跟据字数多少设计多个字典,然后根据字数分别从不同字典中进行扫描).例如:词典中 ...
- raspberry-同路由器用putty和vnc桌面登录方法
一个raspberry B,家里电脑是win10系统. 最初是用HDMI连家里电视机的显示屏来当桌面的,没有配置就好用,但第二次再开机发现怎么弄都显示无信号,排除SD卡不活动.HDMI接口被烧坏等可能 ...
- [JavaEE] DWR框架简介
DWR框架简介 DWR框架是一个可以允许你去创建AJAX WEB站点的JAVA开源库.它可以让你在浏览器的JavaScript代码中调用Web服务器的Java代码,就像Java代码在浏览器中一样.DW ...
- 【BZOJ3218】【UOJ#77】a + b Problem
题目 题目在这里 思路&做法 明显的最小割(其实是之前做过一道类似的题) S向每一个格子连容量为\(b_i\)的边 每一个格子向T连容量为\(w_i\)的边 对于格子\(i\)向满足条件的格子 ...
- 【算法】Quick Select
针对问题 找到一对无序的数中第 K 大,或者第 K 小的元素,返回该元素的值或者它的 index(index 的情况比较适合这堆数每个都独一无二的情况,不然可能会有多个答案). 关键思想 拿一个数 ...
- 云信 短信发送 demo
package com.dataTaskListener; import org.apache.commons.httpclient.Header; import org.apache.commons ...
- Javassist介绍
要想将编译时不存在的类在运行时动态创建并加载,通常有两种策略: 1. 动态编译 2. 动态生成二进制字节码(.class) 对于第二种策略,实际上已经有诸多比较成熟的开源项目提供支持,如CGLib.A ...
- sql server restore DB issue
error occurs when restoring the backup file of sql server(DB.bak) to run the above t-sql will shoot ...
- Spring boot application.properties 配置
原文链接: http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.ht ...
- 杭电 2095 find your present (2)【位运算 异或】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2095 解题思路:因为只有我们要求的那个数出现的次数为奇数,所以可以用位运算来做,两次异或同一个数最后结 ...