1 集群参考
1.1 集群服务
1.2 Cloudera Management
服务 |
选项 |
配置值 |
Activity Monitor |
Java Heap Size |
2G |
Alert Publisher |
Java Heap Size |
2G |
Event Server |
Java Heap Size |
2G |
Host Monitor |
Java Heap Size |
4G |
Service Monitor |
Java Heap Size |
4G |
1.3 Zookeeper
服务 |
选项 |
配置值 |
Zookeeper |
Java Heap Size (堆栈大小) |
4G |
Zookeeper |
maxClientCnxns (最大客户端连接数) |
1024 |
Zookeeper |
dataDir (数据文件目录+数据持久化路径) |
/hadoop/zookeeper (建议独立目录) |
Zookeeper |
dataLogDir (事务日志目录) |
/hadoop/zookeeper_log (建议独立目录) |
Zookeeper |
maxSessionTimeout |
180000 |
1.4 HDFS
服务 |
选项 |
配置值 |
NameNode |
Java Heap Size (堆栈大小) |
56G |
NameNode |
dfs.namenode.handler.count(详见1.4.2) |
80 |
NameNode |
dfs.namenode.service.handler.count(详见1.4.2) |
80 |
NameNode |
fs.permissions.umask-mode (使用默认值022) |
027(使用默认值022) |
DataNode |
Java Heap Size (堆栈大小) |
8G |
DataNode |
dfs.datanode.failed.volumes.tolerated (详见1.4.3) |
1 |
DataNode |
dfs.datanode.balance.bandwidthPerSec (DataNode 平衡带宽) |
100M |
DataNode |
dfs.datanode.handler.count (服务器线程数) |
64 |
DataNode |
dfs.datanode.max.transfer.threads (最大传输线程数) |
20480 |
JournalNode |
Java Heap Size (堆栈大小) |
1G |
1.4.1 数据块优化
dfs.blocksize = 128M
a) 文件以块为单位进行切分存储,块通常设置的比较大(最小6M,默认128M),根据网络带宽计算最佳值。
b) 块越大,寻址越快,读取效率越高,但同时由于MapReduce任务也是以块为最小单位来处理,所以太大的块不利于于对数据的并行处理。
c)一个文件至少占用一个块(如果一个1KB文件,占用一个块,但是占用空间还是1KB)
d) 我们在读取HDFS上文件的时候,NameNode会去寻找block地址,寻址时间为传输时间的1%时,则为最佳状态。
e) 目前磁盘的传输速度普遍为100MB/S
f) 如果寻址时间约为10ms,则传输时间=10ms/0.01=1000ms=1s
g) 如果传输时间为1S,传输速度为100MB/S,那么一秒钟我们就可以向HDFS传送100MB文件,设置块大小1