您好,登錄后才能下訂單哦!
溫馨提示:要看高清無碼套圖,請使用手機打開并單擊圖片放大查看。
1.問題描述
人啊,上了年紀了,總?cè)菀淄浺恍┦虑?,比如你一不小心就忘記了CDH集群Hive,Hue和Sentry服務(wù)的元數(shù)據(jù)庫密碼,對于數(shù)據(jù)庫(MySQL/Oracle/PostgreSQL)管理員來說,可能有自己獨特的一些奇技淫巧來找回密碼。但對于咱普通人,其實Cloudera Manger提供了一種很優(yōu)雅的方式讓你找回元數(shù)據(jù)庫密碼,那就是神奇的Cloudera Manager API。
2.解決方法
2.1通過HTTP方式
1.獲取Cloudera Manager所有集群信息
在瀏覽器輸入如下地址,將<cmserver>替換為CM的IP地址
http://<cmserver>:7180/api/v10/clusters/
輸入CM的賬號密碼
獲取集群信息:
{
"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"
} ]
}
2.通過上一步獲取的集群信息,獲取指定集群的Services
在瀏覽器輸入如下地址,將<cmserver>替換成CM的IP地址,<cluster_name>替換為上一步中獲取到的集群名稱
http://<cmserver>:7180/api/v10/clusters/<cluster_name>/services/
{
"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數(shù)據(jù)片段,標紅部分為Services名稱。
3.通過服務(wù)名稱獲取,該服務(wù)的配置信息
在瀏覽器輸入如下地址,將<cmserver>替換成CM的IP地址,<cluster_name>替換為集群名稱,將<service_name>替換為指定服務(wù)的名稱
http://<cmserver>:7180/api/v10/clusters/<cluster_name>/services/<service_name>/config
{
"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"
}... ]
}
這樣就獲取到了相應(yīng)服務(wù)的配置信息,標紅部分即為該服務(wù)的數(shù)據(jù)庫密碼。
2.2命令行方式
1.獲取集群信息
將<cm_admin_user>替換為CM的用戶名,<cm_admin_pass>替換為CM對應(yīng)用戶密碼,<cmserver>替換為CM的IP地址
curl -v -k -X GET -u <cm_admin_user>:<cm_admin_pass> http://<cmserver>:7180/api/v10/clusters/
命令行執(zhí)行
[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 ~]$
標注部分為獲取到的集群名稱。
2.獲取指定集群的Services
將如下命令中相應(yīng)參數(shù)替換,<cloudera_name>替換為上一步獲取到的集群名稱
curl -v -k -X GET -u <cm_admin_user>:<cm_admin_pass> http://<cmserver>:7180/api/v10/clusters/<cluster_name>/services/
命令行執(zhí)行:
[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 ~]$
標注部分為服務(wù)名稱。
3.根據(jù)獲取到的Service名稱,獲取該服務(wù)的配置
將一下命令中參數(shù)替換為自己環(huán)境信息,<service_name>替換為上一步獲取到的服務(wù)名稱。
curl -v -k -X GET -u <cm_admin_user>: <cm_admin_pass>http://<cmserver>:7180/api/v10/clusters/<cluster_name>/services/<service_name>/config
命令行執(zhí)行:
[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 ~]$
上圖標注部分即為hive服務(wù)元數(shù)據(jù)庫的密碼。
3.總結(jié)
通過以上兩種方式可以獲取Hue、Hive、Sentry服務(wù)元數(shù)據(jù)庫密碼,但不支持獲取Oozie、AM、CM、RM、Navigator等服務(wù)的數(shù)據(jù)庫密碼。注意:以上操作需要使用CM的管理員用戶獲取,非管理員用戶獲取的密碼顯示為“REDACTED”。
更多關(guān)于CM的API接口可參考官網(wǎng):
https://×××w.cloudera.com/documentation/enterprise/latest/topics/cm\_intro\_api.html
醉酒鞭名馬,少年多浮夸! 嶺南浣溪沙,嘔吐酒肆下!摯友不肯放,數(shù)據(jù)玩的花!
溫馨提示:要看高清無碼套圖,請使用手機打開并單擊圖片放大查看。
推薦關(guān)注Hadoop實操,第一時間,分享更多Hadoop干貨,歡迎轉(zhuǎn)發(fā)和分享。
原創(chuàng)文章,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明:轉(zhuǎn)載自微信公眾號Hadoop實操
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。