博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
0036-如何通过CM API优雅的获取元数据库密码
阅读量:6962 次
发布时间:2019-06-27

本文共 4849 字,大约阅读时间需要 16 分钟。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

1.问题描述


人啊,上了年纪了,总容易忘记一些事情,比如你一不小心就忘记了CDH集群Hive,Hue和Sentry服务的元数据库密码,对于数据库(MySQL/Oracle/PostgreSQL)管理员来说,可能有自己独特的一些奇技淫巧来找回密码。但对于咱普通人,其实Cloudera Manger提供了一种很优雅的方式让你找回元数据库密码,那就是神奇的Cloudera Manager API。

2.解决方法

2.1通过HTTP方式


1.获取Cloudera Manager所有集群信息

在浏览器输入如下地址,将<cmserver>替换为CM的IP地址

http://
:7180/api/v10/clusters/

输入CM的账号密码

0036-如何通过CM API优雅的获取元数据库密码

获取集群信息:

{  "items" : [ {    "name" : "cluster",    "displayName" : "Cluster 1",    "version" : "CDH5",    "fullVersion" : "5.11.2",    "maintenanceMode" : false,    "maintenanceOwners" : [ ],    "clusterUrl" : "http://ip-172-31-22-86.ap-southeast-1.compute.internal:7180/cmf/clusterRedirect/cluster"  } ]}

0036-如何通过CM API优雅的获取元数据库密码

2.通过上一步获取的集群信息,获取指定集群的Services

在浏览器输入如下地址,将<cmserver>替换成CM的IP地址,<cluster_name>替换为上一步中获取到的集群名称

http://
:7180/api/v10/clusters/
/services/

0036-如何通过CM API优雅的获取元数据库密码

{  "items" : [ …{    "name" : "hue",    "type" : "HUE",    "clusterRef" : {      "clusterName" : "cluster"    },    "serviceUrl" : "http://ip-172-31-22-86.ap-southeast-1.compute.internal:7180/cmf/serviceRedirect/hue",    "serviceState" : "STARTED",    "healthSummary" : "GOOD",    "healthChecks" : [ {      "name" : "HUE_HUE_SERVERS_HEALTHY",      "summary" : "GOOD"    } ],    "configStalenessStatus" : "FRESH",    "clientConfigStalenessStatus" : "FRESH",    "maintenanceMode" : false,    "maintenanceOwners" : [ ],    "displayName" : "Hue"  } …]}

以上为获取到的json数据片段,标红部分为Services名称。

3.通过服务名称获取,该服务的配置信息

在浏览器输入如下地址,将<cmserver>替换成CM的IP地址,<cluster_name>替换为集群名称,将<service_name>替换为指定服务的名称

http://
:7180/api/v10/clusters/
/services/
/config

0036-如何通过CM API优雅的获取元数据库密码

{  "items" : [ {    "name" : "database_host",    "value" : "ip-172-31-22-86.ap-southeast-1.compute.internal"  }, {    "name" : "database_password",    "value" : "password"  }, {    "name" : "database_type",    "value" : "mysql"  }... ]}

这样就获取到了相应服务的配置信息,标红部分即为该服务的数据库密码。

2.2命令行方式


1.获取集群信息

将<cm_admin_user>替换为CM的用户名,<cm_admin_pass>替换为CM对应用户密码,<cmserver>替换为CM的IP地址

curl -v -k -X GET -u 
:
http://
:7180/api/v10/clusters/

命令行执行

[ec2-user@ip-172-31-22-86 ~]$ curl -v -k -X GET -u admin:admin http://ip-172-31-22-86:7180/api/v10/clusters/...{  "items" : [ {    "name" : "cluster",    "displayName" : "Cluster 1",    "version" : "CDH5",    "fullVersion" : "5.11.2",    "maintenanceMode" : false,    "maintenanceOwners" : [ ],    "clusterUrl" : "http://ip-172-31-22-86.ap-southeast-1.compute.internal:7180/cmf/clusterRedirect/cluster"  } ]* Connection #0 to host ip-172-31-22-86 left intact}[ec2-user@ip-172-31-22-86 ~]$

0036-如何通过CM API优雅的获取元数据库密码

标注部分为获取到的集群名称。

2.获取指定集群的Services

将如下命令中相应参数替换,<cloudera_name>替换为上一步获取到的集群名称

curl -v -k -X GET -u 
:
http://
:7180/api/v10/clusters/
/services/

命令行执行:

[ec2-user@ip-172-31-22-86 ~]$ curl -v -k -X GET -u admin:admin http://ip-172-31-22-86:7180/api/v10/clusters/cluster/services/...{  "items" : [ {    "name" : "hive",    "type" : "HIVE",    "clusterRef" : {      "clusterName" : "cluster"    },    "serviceUrl" : "http://ip-172-31-22-86.ap-southeast-1.compute.internal:7180/cmf/serviceRedirect/hive",    "serviceState" : "STARTED",    "healthSummary" : "GOOD",    "healthChecks" : [ {      "name" : "HIVE_HIVEMETASTORES_HEALTHY",      "summary" : "GOOD"    }, {      "name" : "HIVE_HIVESERVER2S_HEALTHY",      "summary" : "GOOD"    } ],    "configStalenessStatus" : "FRESH",    "clientConfigStalenessStatus" : "FRESH",    "maintenanceMode" : false,    "maintenanceOwners" : [ ],    "displayName" : "Hive"  } ...]}[ec2-user@ip-172-31-22-86 ~]$

0036-如何通过CM API优雅的获取元数据库密码

标注部分为服务名称。

3.根据获取到的Service名称,获取该服务的配置

将一下命令中参数替换为自己环境信息,<service_name>替换为上一步获取到的服务名称。

curl -v -k -X GET -u 
:
http://
:7180/api/v10/clusters/
/services/
/config

命令行执行:

[ec2-user@ip-172-31-22-86 ~]$ curl -v -k -X GET -u admin:admin http://ip-172-31-22-86:7180/api/v10/clusters/cluster/services/hive/config...{  "items" : [ {    "name" : "hive_metastore_database_host",    "value" : "ip-172-31-22-86.ap-southeast-1.compute.internal"  }, {    "name" : "hive_metastore_database_password",    "value" : "password"  }, {    "name" : "mapreduce_yarn_service",    "value" : "yarn"  }, {    "name" : "zookeeper_service",    "value" : "zookeeper"  } ]* Connection #0 to host ip-172-31-22-86 left intact}[ec2-user@ip-172-31-22-86 ~]$

0036-如何通过CM API优雅的获取元数据库密码

上图标注部分即为hive服务元数据库的密码。

3.总结


通过以上两种方式可以获取Hue、Hive、Sentry服务元数据库密码,但不支持获取Oozie、AM、CM、RM、Navigator等服务的数据库密码。注意:以上操作需要使用CM的管理员用户获取,非管理员用户获取的密码显示为“REDACTED”。

更多关于CM的API接口可参考官网:

https://×××w.cloudera.com/documentation/enterprise/latest/topics/cm\_intro\_api.html

醉酒鞭名马,少年多浮夸! 岭南浣溪沙,呕吐酒肆下!挚友不肯放,数据玩的花!

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

0036-如何通过CM API优雅的获取元数据库密码

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

转载于:https://blog.51cto.com/14049791/2320845

你可能感兴趣的文章
解决字符替换时大小写的敏感问题
查看>>
linux 磁盘管理上(分区操作,格式化文件,挂载和卸载)
查看>>
我的友情链接
查看>>
以太网为什么要有最小帧长?
查看>>
IBM服务器BMC 远程管理
查看>>
Altium Designer 常用快捷键(记录)
查看>>
BIO模型分析
查看>>
linux 修改默认编码
查看>>
用磁带后改用本地磁盘备份可能出现的问题
查看>>
Python装饰器进阶
查看>>
调用 SetRect 函数可以设定矩形区域
查看>>
zabbix监控之nginx
查看>>
MaxCompute Studio 使用入门
查看>>
读《Linux Shell脚本攻略》第1章笔记
查看>>
某电商项目PostgreSQL数据库备份恢复方案
查看>>
UI2Code智能生成Flutter代码——机器生成代码
查看>>
Node.js 应用故障排查手册 —— 类死循环导致进程阻塞
查看>>
Discord 公司如何使用 Cassandra 存储上亿条线上数据
查看>>
mysql8.0 二进制安装
查看>>
内存问题导致机器无法正常开机
查看>>