|
@@ -0,0 +1,22 @@
|
|
|
+import json
|
|
|
+
|
|
|
+import requests
|
|
|
+
|
|
|
+
|
|
|
+class HDFSClient(object):
|
|
|
+
|
|
|
+ def __init__(self, cluster_ip, port):
|
|
|
+ self.cluster_ip = cluster_ip
|
|
|
+ self.port = port
|
|
|
+
|
|
|
+ def get_name_node_info(self) -> dict:
|
|
|
+ url = f"http://{self.cluster_ip}:{self.port}/jmx?qry=Hadoop:service=NameNode,name=NameNodeInfo"
|
|
|
+ resp = requests.get(url)
|
|
|
+ if resp.status_code == 200:
|
|
|
+ return json.loads(resp.text)
|
|
|
+ else:
|
|
|
+ return {}
|
|
|
+
|
|
|
+ def get_data_node_info(self):
|
|
|
+ resp = self.get_name_node_info()
|
|
|
+ return json.loads(resp['beans'][0]['LiveNodes'])
|