Hadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
注意:NameNode和SecondaryNameNode不要安装在同一台服务器 注意:ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。
节点node06node07node08node09node10hdfsDataNodeDataNodeDataNodeNameNode DataNodeSecondaryNameNode DataNodeyarnNodeManagerNodeManagerNodeManagerNodeManager ResourceManagerNodeManager ResourceManager(1)如果集群是第一次启动需要在master节点格式化NameNode
[root@node09 hadoop-3.1.3]$ bin/hdfs namenode -format(2)如果使用的是root用户需要修改dfs 和yarn 相关的启动关闭脚本
对于start-dfs.sh和stop-dfs.sh文件,添加下列参数:
HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root对于start-yarn.sh和stop-yarn.sh文件,添加下列参数:
YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:
(1)配置mapred-site.xml [root@node09 hadoop]# vim mapred-site.xml <!-- 历史服务器端地址 --> <property> <name>mapreduce.jobhistory.address</name> <value>node09:10020</value> </property> <!-- 历史服务器web端地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>node09:19888</value> </property> (2)分发配置 [root@node09 hadoop]# xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml (3)在node09启动历史服务器 [root@node09 hadoop]# mapred --daemon start historyserver (4)查看历史服务器是否启动 [root@node09 hadoop]# jps (5)查看JobHistory http://node09:19888/jobhistory日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。 日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。 注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager。
开启日志聚集功能具体步骤如下:
(1)配置yarn-site.xml[root@node09 hadoop]# vim yarn-site.xml <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log.server.url</name> <value>http://${yarn.timeline-service.webapp.address}/applicationhistory/logs</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> <property> <name>yarn.timeline-service.enabled</name> <value>true</value> </property> <property> <name>yarn.timeline-service.hostname</name> <value>${yarn.resourcemanager.hostname}</value> </property> <property> <name>yarn.timeline-service.http-cross-origin.enabled</name> <value>true</value> </property> <property> <name>yarn.resourcemanager.system-metrics-publisher.enabled</name> <value>true</value> </property> (2)分发配置[root@node09 hadoop]# xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml (3)关闭NodeManager 、ResourceManager和HistoryServer[root@node09 hadoop]# stop-yarn.sh [root@node09 hadoop]# mapred --daemon stop historyserver (4)启动NodeManager 、ResourceManage、Timelineserver和HistoryServer[root@node09 hadoop]# start-yarn.sh [root@node09 hadoop]# yarn --daemon start timelineserver [root@node09 hadoop]# mapred --daemon start historyserver (5)测试(1)在DataNode节点增加磁盘并进行挂载。
(2) 在hdfs-site.xml文件中配置多目录,注意新挂载磁盘的访问权限问题。
<property> <name>dfs.datanode.data.dir</name <value>file:///${hadoop.tmp.dir}/dfs/data1,file:///hd2/dfs/data2,file:///hd3/dfs/data3,file:///hd4/dfs/data4</value> </property>(3) 增加磁盘后,保证每个目录数据均衡 开启数据均衡命令:
bin/start-balancer.sh –threshold 10对于参数10,代表的是集群中各个节点的磁盘空间利用率相差不超过10%,可根据实际情况进行调整。
停止数据均衡命令:
bin/stop-balancer.sh(1)hadoop本身并不支持lzo压缩,故需要使用twitter提供的hadoop-lzo开源组件。hadoop-lzo需依赖hadoop和lzo进行编译
(2)将编译好后的hadoop-lzo-0.4.20.jar 放入hadoop-3.1.3/share/hadoop/common/
[root@node09 common]# pwd /opt/module/hadoop-3.1.3/share/hadoop/common [root@node09 common]# ls hadoop-common-3.1.3.jar hadoop-common-3.1.3-tests.jar hadoop-kms-3.1.3.jar hadoop-lzo-0.4.20.jar hadoop-nfs-3.1.3.jar jdiff lib sources webapps(3)同步hadoop-lzo-0.4.20.jar到集群其他节点
[root@node09 common]# xsync hadoop-lzo-0.4.20.jar(4)core-site.xml增加配置支持LZO压缩
<property> <name>io.compression.codecs</name> <value> org.apache.hadoop.io.compress.GzipCodec, org.apache.hadoop.io.compress.DefaultCodec, org.apache.hadoop.io.compress.BZip2Codec, org.apache.hadoop.io.compress.SnappyCodec, com.hadoop.compression.lzo.LzoCodec, com.hadoop.compression.lzo.LzopCodec </value> </property> <property> <name>io.compression.codec.lzo.class</name> <value>com.hadoop.compression.lzo.LzoCodec</value> </property>(5)同步core-site.xml到集群其他节点
[root@node09 hadoop]# xsync core-site.xml(6)重启及查看集群
[root@node09 hadoop]# stop-dfs.sh [root@node09 hadoop]# stop-yarn.sh [root@node09 hadoop]# start-dfs.sh [root@node09 hadoop]# start-yarn.shThe number of Namenode RPC server threads that listen to requests from clients. If dfs.namenode.servicerpc-address is not configured then Namenode RPC server threads listen to requests from all nodes. NameNode有一个工作线程池,用来处理不同DataNode的并发心跳以及客户端并发的元数据操作。对于大集群或者有大量客户端的集群来说,通常需要增大参数dfs.namenode.handler.count的默认值10。设置该值的一般原则是将其设置为集群大小的自然对数乘以20,即20logN,N为集群大小。
dfs.namenode.handler.count=20 * log2(Cluster Size),比如集群规模为8台时,此参数设置为60
单个任务申请的内存 根据输入的数据大小 map 128M 需要一个maptask 1G内存 1G 需要八个maptask 8G内存 2G 需要十六个maptask 16G内存 reduce 看需要reduce的任务
参考 关于hadoop3.1.3 root 用户启动报错问题
