我有一个场景,需要更改 Ambari 管理的 hadoop 集群的几个参数,以记录特定应用程序的性能。配置中的更改需要重新启动受影响的组件。
我正在使用Ambari REST API为了实现这一目标。我想出了如何为 hadoop 的所有服务组件执行此操作。我不确定该 API 是否提供了重新启动 Hive 使用的 MySQL 服务器的方法。
我有以下问题:-
- 是否仅在适当的机器上停止和启动 mysqld 就足以确保 Ambari 和应用程序识别所需的配置更改?
- 我在通过 Ambari 安装 Hive 时选择了“新 MySQL 数据库”选项。这是否意味着只有从 Ambari UI 执行重新启动才会反射(reflect)在 Ambari 中?
我们将非常感谢您的意见。
谢谢!
最佳答案
找到了问题的解决方案。我使用 Ambari REST API 使用以下命令来更改配置并从后端重新启动服务。
登录到运行 ambari 服务器的主机并使用已提供的 config.sh 脚本,如下所述。
修改配置文件
#!/bin/bash
CLUSTER_NAME=$1
CONFIG_FILE=$2
PROPERTY_NAME=$3
PROPERTY_VALUE=$4
/var/lib/ambari-server/resources/scripts/configs.sh -port <ambari-server-port> set localhost $1 $2 "$3" "$4"
其中 CONFIG_FILE
可以采用诸如 tez-site
、mapred-site
、hadoop-site
、hive-site
等。PROPERTY_NAME
和 PROPERTY_VALUE
应设置为与指定的 CONFIG_FILE
相关的值。
重新启动主机组件
curl -uadmin:admin -H 'X-Requested-By: ambari' -X POST -d '
{
"RequestInfo":{
"command":"RESTART",
"context":"Restart MySQL server used by Hive Metastore on node3.cluster.com and HDFS client on node1.cluster.com",
"operation_level":{
"level":"HOST",
"cluster_name":"c1"
}
},
"Requests/resource_filters":[
{
"service_name":"HIVE",
"component_name":"MYSQL_SERVER",
"hosts":"node3.cluster.com"
},
{
"service_name":"HDFS",
"component_name":"HDFS_CLIENT",
"hosts":"node1.cluster.com"
}
]
}' http://localhost:<ambari-server-port>/api/v1/clusters/c1/requests
引用链接:
希望这有帮助!
关于mysql - 重新启动 Ambari 管理的 MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36791084/