Hadoop获取namenode的命令

在某些场景下,我们需要及时的得到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一下然后再进行使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值