通过API访问Ambari的配置
HttpClient client = new HttpClient();
Base64.Encoder encoder = Base64.getEncoder();
HttpMethod method = new GetMethod("http://hdp0:8080/api/v1/clusters/HDP/configurations");
method.addRequestHeader("Authorization",
"Basic " + encoder.encodeToString("admin:admin".getBytes("iso-8859-1")));
method.addRequestHeader("X-Requested-By", "ambari");
client.executeMethod(method);
// 获取YARN的capacity-scheduler属性信息
AmbariClient aClient = new AmbariClient("10.1.108.45", "8080", "admin", "admin");
String typeName = "capacity-scheduler";
String propertieName = "yarn.scheduler.capacity.root.unfunded.capacity";
Map<String, Map<String, String>> map = aClient.getServiceConfigMap(typeName);
for (String key : map.keySet()) {
System.out.println("key: " + key + ";");
Map<String, String> kvs = map.get(key);
for (String name : kvs.keySet()) {
if (name.equals(propertieName)) {
System.out.println("name: " + name + "; value: " + kvs.get(name));
}
}
}
// 修改配置信息
Map<String, String> mapUpdate = new HashMap<String, String>(); mapUpdate.put(propertieName, "55");
aClient.modifyConfiguration(typeName, mapUpdate); map = aClient.getServiceConfigMap(typeName);
for (String key : map.keySet()) {
System.out.println("key: " + key + ";");
Map<String, String> kvs = map.get(key);
for (String name : kvs.keySet()) {
if (name.equals(propertieName)) {
System.out.println("name: " + name + "; value: " + kvs.get(name));
}
}
}
Ambari所有的服务的组件列表:
{"service_name":"HDFS","component_name":"DATANODE","hosts":"c6401.ambari.apache.org"},
{"service_name":"HDFS","component_name":"HDFS_CLIENT","hosts":"c6401.ambari.apache.org"},
{"service_name":"HDFS","component_name":"NAMENODE","hosts":"c6401.ambari.apache.org"},
{"service_name":"HDFS","component_name":"SECONDARY_NAMENODE","hosts":"c6401.ambari.apache.org"},
{"service_name":"HIVE","component_name":"HCAT","hosts":"c6401.ambari.apache.org"},
{"service_name":"HIVE","component_name":"HIVE_CLIENT","hosts":"c6401.ambari.apache.org"},
{"service_name":"HIVE","component_name":"HIVE_METASTORE","hosts":"c6401.ambari.apache.org"},
{"service_name":"HIVE","component_name":"HIVE_SERVER","hosts":"c6401.ambari.apache.org"},
{"service_name":"HIVE","component_name":"MYSQL_SERVER","hosts":"c6401.ambari.apache.org"},
{"service_name":"HIVE","component_name":"WEBHCAT_SERVER","hosts":"c6401.ambari.apache.org"},
{"service_name":"YARN","component_name":"APP_TIMELINE_SERVER","hosts":"c6401.ambari.apache.org"},
{"service_name":"YARN","component_name":"NODEMANAGER","hosts":"c6401.ambari.apache.org"},
{"service_name":"YARN","component_name":"RESOURCEMANAGER","hosts":"c6401.ambari.apache.org"},
{"service_name":"YARN","component_name":"YARN_CLIENT","hosts":"c6401.ambari.apache.org"},
{"service_name":"MAPREDUCE2","component_name":"HISTORYSERVER","hosts":"c6401.ambari.apache.org"},
{"service_name":"MAPREDUCE2","component_name":"MAPREDUCE2_CLIENT","hosts":"c6401.ambari.apache.org"},
{"service_name":"AMBARI_METRICS","component_name":"METRICS_COLLECTOR","hosts":"c6401.ambari.apache.org"},
{"service_name":"AMBARI_METRICS","component_name":"METRICS_MONITOR","hosts":"c6401.ambari.apache.org"},
{"service_name":"PIG","component_name":"PIG","hosts":"c6401.ambari.apache.org"},
{"service_name":"TEZ","component_name":"TEZ_CLIENT","hosts":"c6401.ambari.apache.org"},
{"service_name":"ZOOKEEPER","component_name":"ZOOKEEPER_CLIENT","hosts":"c6401.ambari.apache.org"},
{"service_name":"ZOOKEEPER","component_name":"ZOOKEEPER_SERVER","hosts":"c6401.ambari.apache.org"}
通过API访问Ambari的配置的更多相关文章
- docker 远程rest api 访问配置
Docker RestApi 的配置及使用 Centos Docker1.12 远程Rest api访问的配置方法 http restapiv1.24 docker sdk for python
- asp.net core系列 57 IS4 使用混合流(OIDC+OAuth2.0)添加API访问
一.概述 在上篇中,探讨了交互式用户身份验证,使用的是OIDC协议. 在之前篇中对API访问使用的是OAuth2.0协议.这篇把这两个部分放在一起,OpenID Connect和OAuth 2.0组合 ...
- 第13章 切换到混合流并添加API访问 - Identity Server 4 中文文档(v1.0.0)
在之前的快速入门中,我们探讨了API访问和用户身份验证.现在我们想把这两个部分放在一起. OpenID Connect和OAuth 2.0组合的优点在于,您可以使用单个协议和使用令牌服务进行单次交换来 ...
- Hadoop学习笔记1 - 使用Java API访问远程hdfs集群
转载请标注原链接 http://www.cnblogs.com/xczyd/p/8570437.html 2018年3月从新司重新起航了.之前在某司过了的蛋疼三个月,也算给自己放了个小假了. 第一个小 ...
- 大数据实操2 - hadoop集群访问——Hadoop客户端访问、Java API访问
上一篇中介绍了hadoop集群搭建方式,本文介绍集群的访问.集群的访问方式有两种:hadoop客户端访问,Java API访问. 一.集群客户端访问 Hadoop采用C/S架构,可以通过客户端对集群进 ...
- IdentityServer4 中文文档 -13- (快速入门)切换到混合流并添加 API 访问
IdentityServer4 中文文档 -13- (快速入门)切换到混合流并添加 API 访问 原文:http://docs.identityserver.io/en/release/quickst ...
- IdentityServer4【QuickStart】之切换到混合流并且添加API访问
切换到混合流并且添加API访问 前面的示例中我们开发了API访问和用户认证,现在我们要将两个合并到一起. OpenID Connect&OAuth 2.0组合的美妙之处是,你可以使用单一协议和 ...
- Servlet、Tomcat访问(access)日志配置、记录Post请求参数
一.运行环境: Maven:3.5.2(点击下载) ,下载页 Tomcat:8.5.29(点击下载) ,下载页 JDK:jdk1.7.0_80(点击下载) ,下载页 MavenDependency: ...
- 以太坊api访问,区块同步监测
以太坊geth api访问,区块同步监测 curl查询geth区块高度 supervisor管理以太坊geth进程 geth进程健康检查 # curl访问geth api #使用curl访问geth ...
随机推荐
- Hardware Prefetcher
硬件预取选项,指CPU有硬件预取功能,在CPU处理指令或数据之前,它将这些指令或数据从内存预取到L2缓存中,借此减少内存读取的时间,帮助消除潜在的瓶颈,以此提高系统效能.通常情况下建议设置为Enabl ...
- 并发-AtomicInteger源码分析—基于CAS的乐观锁实现
AtomicInteger源码分析—基于CAS的乐观锁实现 参考: http://www.importnew.com/22078.html https://www.cnblogs.com/mantu/ ...
- PAT1054. The Dominant Color (20)
#include <iostream> #include <map> using namespace std; int n,m; map<int,int> imgM ...
- SpringBoot配置文件 application.properties详解
SpringBoot配置文件 application.properties详解 本文转载:https://www.cnblogs.com/louby/p/8565027.html 阅读过程中若发现 ...
- Mine_hibernate
1. __z知识点\整理_归纳 ==> "ZC_归纳.txt" 和 "ZC_归纳__12_用Eclipse开发hibernate.txt" 2.
- selenium学习笔记(xpath和css定位)
简单的介绍下xpath和css的定位 理论知识就不罗列了 还是利用博客园的首页.直接附上代码: 这个是xpath #!/usr/bin/env python # -*- coding: utf_8 - ...
- Android 性能测试小工具 Emmagee
Emmagee 是一个性能测试小工具 用来监控指定被测应用在使用过程中占用机器的CPU, 内存,流量资源的性能小工具 Emmagee 介绍 Emmagee是网易杭州研究院QA团队开发的一个简单易上手的 ...
- laravel中Blade模板继承
Blade模板继承 和 区块 <!-- 文件保存于 resources/views/layouts/app.blade.php --> <html> <head> ...
- NPOI将xls文件解析为DataTable类数据
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- [转载]SVN trunk、branch、tag的用法
Subversion有一个很标准的目录结构,是这样的. 比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是 svn://proj/|+-trunk+-branches+-t ...