Hadoop
namenode vs RM
- 小集群:namenode和RM可以部署在一个节点上
- 大集群:因为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的话,就不需要副本了:
- 因为hdfs的冗余已经很好了
- 速度比JBOD (Just a Bunch Of Disks)慢,RAID的速度由最慢的那块磁盘决定,而JBOD的各块磁盘相互没有影响
- 如果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类