Hadoop集群优化

2022-09-29 15:10:34 浏览数 (1)

Hadoop

namenode vs RM

  1. 小集群:namenode和RM可以部署在一个节点上
  2. 大集群:因为namenode和RM的内存需求量较大,应将他们分开部署。如果分开部署的话,要保证slaves文件的内容一样,这样就可以让NM和DN部署在一个节点上

端口

A port number of 0 instructs the server to start on a free port, but this is generally discouraged because it is incompatible with setting cluster-wide firewall policies.

HDFS

ECC memory

ECC memory is strongly recommended, as several Hadoop users have reported seeing many checksum errors when using non-ECC memory on Hadoop clusters.

dfs.name.dir

配置成多个路径,FSImage和EditLog会同时写入多个路径,方便以后恢复用

RAID

不适合datanode,如果配置成RAID的话,就不需要副本了:

  1. 因为hdfs的冗余已经很好了
  2. 速度比JBOD (Just a Bunch Of Disks)慢,RAID的速度由最慢的那块磁盘决定,而JBOD的各块磁盘相互没有影响
  3. 如果JBOD中一块磁盘损坏的话,HDFS还能正常使用;但如果RAID的一块磁盘坏了的话,上面的整个数据就损坏了

适合namenode:用于保护元数据信息

MapReduce

slowstart

参数mapreduce.job.reduce.slowstart.completedmaps表示map任务完成多少后,reduce任务才能开始执行。将其设置成0.80,以增加集群的吞吐量

mapreduce.job.user.classpath.first

当你实现的java类和Hadoop自带的类相同的时候,怎么处理呢?如果不配置该参数的话,在执行mapreduce作业时,系统会优先选择Hadoop框架中已经存在的java类而不是用户指定包中自己编写的java类

0 人点赞