from cm_api.api_client import ApiResource
CM_HOST = "ENTER_HOST"
CM_USER = "ENTER_USR_NAME"
CM_PASSWD = "ENTER_PASSWD"
DATA_CLUSTER = "ENTER_CLUSTER"
SERVICE_LIST=[ #Find out service names by looking in CM > Service > Charts Library > Charts Builder
"flume19",
"flume20",
"flume21",
etc,
etc,
]
api = ApiResource(CM_HOST, version=5, username=CM_USER, password=CM_PASSWD, use_tls=True)
cluster = api.get_cluster(DATA_CLUSTER)
for i in range (len(SERVICE_LIST)):
service = cluster.get_service(SERVICE_LIST[i])
for role in service.get_all_roles():
if service.roleState = "STOPPED":
service.restart_roles(role.name)[0]
1条答案
按热度按时间oxcyiej71#
您可以设置cron来定期运行python脚本,并使用clouderamanagerpythonapi(https://cloudera.github.io/cm_api/docs/python-client/#inspecting-a-service)您可以执行这些类型的操作。我为你写了这个剧本:
检查角色状态是否已停止,如果已停止,则再次启动。但是,如果您参考上面的链接,那么您可以使用api做更多的事情。不过,这似乎是一个明智的起点。
你的问题不是特别清楚,所以请原谅我,如果这不是你想要的信息!
谢谢。