1.简介
Hadoop是大数据通用处理平台,提供了分布式文件存储以及分布式离线并行计算,由于Hadoop的高拓展性,在使用Hadoop时通常以集群的方式运行,集群中的节点可达上千个,能够处理PB级的数据。
Hadoop各个模块剖析:www.cnblogs.com/funyoung/p/…
2.Hadoop集群架构图
3.Hadoop集群搭建
3.1 修改配置
1.配置SSH以及hosts文件
由于在启动hdfs、yarn时都需要对用户的身份进行验证,且集群中NameNode、ResourceManager在启动时会通过SSH的形式通知其他节点,使其启动相应的进程,因此需要相互配置SSH设置免密码登录并且关闭防火墙或开启白名单。
复制代码 //生成秘钥 ssh-keygen -t rsa
//复制秘钥到本机和其他受信任的主机中,那么在本机可以直接通过SSH免密码登录到受信任的主机中. ssh-copy-id 192.168.1.80
ssh-copy-id 192.168.1.81
ssh-copy-id 192.168.1.82 复制代码
编辑/etc/hosts文件,添加集群中主机名与IP的映射关系。
2.配置Hadoop公共属性(core-site.xml)
复制代码
hadoop.tmp.dir /usr/hadoop/hadoop-2.9.0/data fs.defaultFS hdfs://192.168.1.80 fs.trash.interval 1440 复制代码 *fs.defaultFS配置项用于指定HDFS集群中默认使用的NameNode。3.配置HDFS(hdfs-site.xml)
复制代码
dfs.replication 3 dfs.permissions.enabled false dfs.namenode.http-address 192.168.1.80:50070 dfs.namenode.secondary.http-address 192.168.1.80:50090 复制代码4.配置YARN(yarn-site.xml)
复制代码
yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname 192.168.1.80 yarn.web-proxy.address 192.168.1.80:8089 yarn.log-aggregation-enable true yarn.log-aggregation。retain-seconds 864000 yarn.nodemanager.resource.memory-mb 8192 yarn.nodemanager.resource.cpu-vcores 8 复制代码 *yarn.resourcemanager.hostname配置项用于指定YARN集群中默认使用的ResourceManager。5.配置MapReduce(mapred-site.xml)
复制代码
mapreduce.framework.name yarn mapreduce.jobhistory.address 192.168.1.80:10020 mapreduce.jobhistory.webapp.address 192.168.1.80:19888 mapreduce.job.ubertask.enable true 复制代码 *Hadoop的JobHistory记录了已运行完的MapReduce任务信息并存放在指定的HDFS目录下,默认未开启。*Uber运行模式对小作业进行优化,不会给每个任务分别申请分配Container资源,这些小任务将统一在一个Container中按照先执行map任务后执行reduce任务的顺序串行执行。
6.配置Slave文件
#配置要运行DataNode、NodeManager的节点,值可以是主机名或IP地址。 192.168.1.80 192.168.1.81 192.168.1.82 *slave文件可以只在NameNode以及ResourceManager所在的节点中配置。
*在服务器中各种配置尽量使用主机名来代替IP。
3.2 启动集群
启动HDFS集群
1.分别格式化NameNode
2.在任意一台Hadoop节点中启动HDFS,那么整个HDFS集群将会一起启动。
分别通过jps命令查看当前启动的进程
*当HDFS集群启动完毕后,由于NameNode部署在hadoop1机器上,因此可以访问http://192.168.1.80:50070进入HDFS的可视化管理界面,可以查看到当前HDFS集群中有3个存活的DataNode节点。
启动YARN集群
1.在yarn.resourcemanager.hostname配置项指定的节点中启动YARN集群。
分别通过jps命令查看当前启动的进程
*当YARN集群启动完毕后,由于ResourceManager部署在hadoop1机器上,因此可以访问http://192.168.1.80:50070进入YARN的可视化管理界面,可以查看到当前YARN集群中有3个存活的NodeManager节点。
2.在mapreduce.jobhistory.address配置项指定的节点中启动JobHistory。
*当启动JobHistory后,可以访问mapreduce.jobhistory.address配置项指定的地址进入JobHistory,默认是http://192.168.1.80:19888。
4.Hadoop集群管理
4.1 动态添加节点
1.修改各个节点的hosts文件,添加新节点的主机名与IP映射关系。
2.相互配置SSH,使可以通过SSH进行免密码登录。
3.修改NameNode和ResourceManager所在节点的Slave文件,添加新节点的主机名或IP地址。
4.单独在新节点中启动DataNode和NodeManager。
*进入HDFS管理页面,可以查看到当前HDFS集群中有4个存活的DataNode节点。
*进入YARN管理页面,可以查看到当前YARN集群中有4个存活的NodeManager节点。
4.2 动态卸载节点
1.修改NameNode所在节点上的hdfs-site.xml配置文件。
dfs.hosts.exclude /usr/hadoop/hadoop-2.9.0/etc/hadoop/hdfs.exclude2.修改ResourceManager所在节点上的yarn-site.xml配置文件。
yarn.resourcemanager.nodes.exclude-path /usr/hadoop/hadoop-2.9.0/etc/hadoop/yarn.exclude3.分别刷新HDFS和YARN集群
查看HDFS管理页面,可见hadoop4的DataNode已被动态的剔除。
查看YARN管理页面,可见hadoop4的NodeManager已被动态的剔除。
使用jps命令查看hadoop4中Hadoop进程,可以发现NodeManager进程已经被kill掉,只剩下DataNode进程,因此YARN集群在通过配置文件的形式动态过滤节点时,一旦节点被过滤,则NodeManager进程直接被杀死,不能动态的进行恢复,必须重启进程并在exclude.host文件中剔除,而HDFS集群在通过配置文件的形式动态过滤节点时可以动态的进行卸载和恢复。
*若第一次使用该配置则需要重启HDFS和YARN集群,使其重新读取配置文件,往后一旦修改过exclude.host配置文件则直接刷新集群即可。 欢迎工作一到五年的Java工程师朋友们加入Java群: 891219277 群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!