Hadoop獲取namenode的命令
阿新 • • 發佈:2019-02-07
在某些場景下,我們需要及時的得到Hadoop的當前的一些配置資訊,例如namenode。
hadoop下的命令如下:
為了更好的在程式中使用,我們可以封裝一個相應的方法:
#coding:utf-8 import os import subprocess def getNameNode(): hadoopPath = os.environ["HADOOP_CONF_DIR"].replace("/etc/hadoop","") cmd = "%s/bin/hdfs getconf -namenodes"%(hadoopPath,) nameNode = "" try: subp = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE) nameNode = subp.stdout.readline() nameNode = nameNode.replace("\n","") except Exception,e: raise e return nameNode if __name__ == '__main__': print getNameNode()
如果是用了Hadoop HA的話,可能是有多個namenode的(主namenode和standby namenode),此時的返回值是空格分隔的namenode,可以得到後用空格split一下然後再進行使用。