- dataNode的java堆内存
默认4G->
出现datanode-gc超时问题,调整到6G - hdfs默认副本因子
默认为3->
出现存储瓶颈,调整为2- dfs.datanode.balance.bandwidthPerSec
数据节点之间banlance的带宽
默认10M->
根据集群实际带宽调整
- dfs.datanode.balance.bandwidthPerSec
- dfs.datanode.max.transfer.threads
数据节点内外传输数据最大线程数
默认4096->
调整为8092 - spark任务中文乱码问题
在spark-default.conf中添加配置:
spark.driver.extraJavaOptions=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 - namenode处理请求线程数
dfs.namenode.handler.count
通过公式计算线程数量:N为集群服务器数量
ln(N)*20
7 . dfs.datanode.max.transfer.threads
datanode传输数据的最大线程数,之前的名称是 dfs.datanode.max.xcievers,默认4096,调整到了32768。这个参数控制着datanode传输数据、文件操作的最大并行度,类似datanode上的最大文件句柄数。通常文件操作压力比较大的场景下需要调大该参数,例如执行一个比较重的MapReduce任务、频繁的HBase flush刷写磁盘等。针对这个参数调整,后来想了想直接调整到32768这种8倍的幅度有点大,建议先调整到2倍、4倍。
8. dfs.datanode.handler.count
datanode处理请求的线程数,从3调整到了8。这个参数原生Hadoop默认为10,这边CDH初始值只设置了3,对于读写请求比较大的场景,建议增大该参数以支持更大的并发请求。
9. hbase.regionserver.thread.compaction.small
regionserver服务端做small compaction的线程数,默认1,调整到了5。这个参数的调整主要是考虑到HBase flush刷写比较频繁,为了避免小文件持续增加,增大该参数加快合并小文件的compaction操作。建议调整范围保持在2~5,避免消耗过多的服务端CPU、Mem资源。