1 cmd的使用 可以直接传命令
os.system(cmd)
os.system(),也可以用 Script 的 Execute 函数,而且更加简单
2 ConfigDictionary类是不可变的字典,只能获取值不能修改值
os.system(),也可以用 Script 的 Execute 函数,而且更加简单
2 ConfigDictionary类是不可变的字典,只能获取值不能修改值
获取配置文件中属性值方法:
config = Script.get_config()
direnv= config['configurations']['hue-env'][' dfs.namenode.name.direnv']
config = Script.get_config()
direnv= config['configurations']['hue-env'][' dfs.namenode.name.direnv']
config中包含了所有服务的配置
hdfssite= config['configurations']['hdfs-site'][' dfs.namenode.name.dir']
print "hdfs-site: " + hdfssite
hdfssite= config['configurations']['hdfs-site'][' dfs.namenode.name.dir']
print "hdfs-site: " + hdfssite
注意:config(ConfigDictionary类)是不可更改的,因为在类中定义set函数时没有具体的属性赋值操作,直接抛出异常“Configuration dictionary is immutable!”
def __setitem__(self, name, value):
raise Fail(IMMUTABLE_MESSAGE)
raise Fail(IMMUTABLE_MESSAGE)
3 服务的命令脚本什么时候被传到agent?
重启server,agent,登录画面之后
重启server,agent,登录画面之后
在做脚本测试时直接修改
/var/lib/ambari-agent/cache/stacks/HDP/2.5/services/TROYHUE/package/scripts/hue-server.py
不用重启server和agent就可以测试