linux - 如何从 HDI 集群获取工作线程数、核心数、内存数

标签 linux shell azure azure-hdinsight azure-rm-template

这是我的场景。我正在创建 HDI 集群并使用 ARM 模板安装我的自定义应用程序。

我需要使用 Shell 脚本为我的应用程序配置以下值。使用 ARM 模板中的 CustomScript 选项安装我的应用程序。

Number of worker nodes

Number of cores per worker node

RAM per worker node

RAM per head node

Number of cores per worker node

最佳答案

您可以使用Ambari REST API获取工作节点的数量。

PASSWORD=<>
CLUSTERNAME=<>
#Worker nodes
  curl -u admin:$PASSWORD -sS -G "https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/services/HDFS/components/DATANODE">worker.txt
cat worker.txt |grep total_count|awk -F: '{print $2}'|sed 's/\,//g'

RAM per worker node

您是指虚拟机的最大 RAM 吗?如果是,则每个工作节点虚拟机应具有相同的 RAM。 VM 的 RAM 和内核取决于 VM 的大小。更多信息请引用这个link 。如果你想用脚本来实现。我建议你可以写一个配置文件,例如

Standard_DS1_v2 1   3.5

Standard_DS2_v2 2   7

你可以使用awk获取core和MEM,很简单。这是一个例子。

mem=`cat configure.txt|grep "Standard_DS1_v2"|awk '{print $3}`

关于linux - 如何从 HDI 集群获取工作线程数、核心数、内存数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43255648/

相关文章:

python - 实时捕获 python-background-processes 输出

php - 如何使用 cURL 下载在 PHP 中使用 HTTP 摘要身份验证保护的文件?

azure - 如何从我的网站启动 Azure Web 作业?

azure - "Turn off"Azure 应用服务和 Azure SQL Server 以降低成本

linux - 将调试和 STDOUT 重定向到不同的文件

asp.net-mvc - 扩展 MVC session 的 Azure ACS 声明

c++ - 如何添加为 C++ 生成类源文件和头文件的 vim 命令?

linux - 通过 bash 脚本为 Linux 服务器设置代理失败

linux - 使用 awk 拆分具有位置值条件的文件

linux - 在 Unix 中递归地用先前回显的值替换回显值