我正在研究通过 Ansible 模板调整 MapR Hadoop。
根据系统上的 CPU 线程数调整某些内容非常容易。例如,将 reduce 任务设置为线程的 1/4:
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>{{ (ansible_processor_vcpus / 4)|int }}</value>
一个资源建议 map/reduce 任务的数量应该与系统上的磁盘 数量成比例。我没有看到任何可比较的变量。
有一个 ansible_devices
数组,其中包含 sda、sdb 和 &c。也许我可以算一下?或许应用过滤器,以便我只计算 Hadoop 可用的磁盘?
最佳答案
也许 length :
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>{{ (ansible_devices|length) / 4 }}</value>
关于hadoop - 在 Ansible 中,如何访问 "number of disks"变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31684734/