基于以下环境提供参考值: 5台内存32G、cpu8核的服务器,操作系统为centos6.8
总内存: 160G
总核数: 40核
不同的环境可以根据自己环境的总内存以及总内核和这个参考值得出系数,那么:值= 推荐值 X 系数

  • hdfs

参数

解释


NameNode 的 Java 堆栈大小

Java 进程堆栈内存的最大大小,改Java进程主要是:维护整个系统的的文件目录树,维护文件/目录的信息和每个文件对应的数据块列表,接受并处理用户的操作请求

至少1GB

dfs.datanode.max.locked.memory

一个DataNode将要用来被做HDFS缓存的内存的最大值

至少256MB

DataNode 的 Java 堆栈大小

Java 进程堆栈内存的最大大小,改Java进程主要是:周期性检测并向NameNode上报其管理的块信息,同时处理namenode给该Datanode的命令

512MB

Failover Controller 的 Java 堆栈大小

Java 进程堆栈内存的最大大小,改Java进程主要是:监控NameNode的健康状态,监控NameNode在zookeeper中的健康状态,监控之后管理NameNode的状态

至少256MB

JournalNode 的 Java 堆栈大小

Java 进程堆栈内存的最大大小,改Java进程主要是:实现两个NameNode的数据同步,active的NameNode做变更的时候,会通知JournalNode 进程,standby的NameNode心跳获取

至少256MB

  • hive

参数

解释


Hive Metastore Server 的 Java 堆栈大小(字节)

Java 进程堆栈内存的最大大小,改Java进程主要是:为hive、impala、kudu提供元数据管理

1.5GB

HiveServer2 的 Java 堆栈大小

由于我们的系统没有使用到hiveserver2,所以设置小的值,同时可以将它停止

1GB

  • impala

参数

解释


Catalog Server 的 Java 堆栈大小

Java 进程堆栈内存的最大大小,改Java进程主要是:作为meta访问网关,从Hive Metastore等外部catalog中获取元数据信息,放到impala自己的catalog结构中,impalad执行ddl命令时通过catalogd由其代为执行,该更新则由statestored广播

最少256MB

Impala Daemon 内存限制

Java 进程堆栈内存的最大大小,改Java进程主要是:作为客户端,接受客户的查询请求,生成查询计划树,把查询计划分发给其他的Impala Daemon(包括自己),被分配的Impala Daemon读写数据进行查询,并返回改客户端

1GB

  • kafka

参数

解释


Java Heap Size of Broker

kafka broker java 进程堆栈内存的最大大小

至少1GB

  • kudu

参数

解释


Kudu Tablet Server Hard Memory Limit

kudu tablet server最大能使用的内存,kudu写入数据的时候,是将数据先缓存到内存,然后保存到磁盘,如何设置过低,会影响写入的性能

3GB

Kudu Tablet Server Block Cache Capacity

kudu tablet 块缓存的最大内存量

2GB

maintenance_manager_num_threads

kudu对数据管理的时候最大显成熟

4

  • spark

参数

解释


Java Heap Size of History Server in Bytes

spark history server java 进程堆栈内存的最大大小

至少512MB

  • yarn

参数

解释


JobHistory Server 的 Java 堆栈大小

java 进程堆栈内存的最大大小

512MB

NodeManager 的 Java 堆栈

java 进程堆栈内存的最大大小

512MB

容器内存

每个nodemanager为最大可分配的内存

9GB

ResourceManager 的 Java 堆栈大小

java 进程堆栈内存的最大大小

512MB

最小容器内存

单个任务可申请的最少内存量

1GB

容器内存增量

单个任务可申请的内存的增量

512MB

最大容器内存

单个任务可申请的最大内存量

6GB

容器虚拟 CPU 内核

每个nodemanager为最大可分配的内核数量

6

最小容器虚拟 CPU 内核数量

单个任务可申请的最小内核数量

1

容器虚拟 CPU 内核增量

单个任务申请的内核增量

1

最大容器虚拟 CPU 内核数量

单个任务可申请的最大内核数量

1

  • zookeeper

参数

解释


ZooKeeper Server 的 Java 堆栈大小

java 进程堆栈内存的最大大小

至少512MB

  • Cloudera Management Service

参数

解释


Activity Monitor 的 Java 堆栈大小

至少1GB

Alert Publisher 的 Java 堆栈

至少256MB

EventServer 的 Java 堆栈大小

至少1GB

Host Monitor 的 Java 堆栈大小

至少1GB

Host Monitor 的最大非 Java 内存

至少1.5GB

Service Monitor 的 Java 堆栈大小

至少1GB

Service Monitor 的最大非 Java 内存

至少1.5GB