在准备好3台虚拟机,并安装好jdk和hadoop后,我们开始进行集群配置,首先要做一个集群配置的规划,也就是将不同的角色放到不同的虚拟机上。
hadoop的三个核心部分
- Hdfs 数据存储
- Yarn 资源调度
- MapReduce 计算框架
这里我们要规划分配的是Hdfs和Yarn的角色。
Hdfs的结构
1.NameNode (数据的索引) 主角色 名字节点 统筹信息,统筹数据存储的工作,本身不存储数据
2.DataNode (数据的本身) 数据节点 以块为单位存储数据(Block),默认128M一个块
3.Secondary NameNode(2NN)用来监控HDFS状态的辅助后台程序(辅助NameNode)
3台虚拟机中我们要选一台存放NameNode,另一台放2NN,并且每一台虚拟机都存放一个DataNode。
Yarn的结构
1.Resource Manager:负责统筹管理集群的计算资源,响应资源请求,协调NodeManager。
2.Node Manager:负责管理物理机器上与容器的协调。
3.Application Master :做应用内的资源协调和申请。
4.container:对任务运行环境的抽象,封装了CPU、内存等多维资源及环境变量、启动命令等任务运行相关信息。
3台虚拟机中选择一台存放Resource Manager,每台虚拟机存放一个Node Manager。
集群部署规划
生产环境中,一般NN、RN、2NN是不会和DN、NM混搭的,但是对于个人PC端来说,16G内存无法支撑6台虚拟机,因此采取3台虚拟机混搭的模式。
集群配置
在hadoop100上进行核心文件配置
为了便捷,修改文件我们使用Notepad++,通过Notepad++的NppFTP插件连接Linux
选择插件菜单栏—NppFTP—show NppFTP Window
点击设置—Profile settings
设置信息
进入hadoop路径:/opt/module/hadoop-2.7.1/etc/hadoop
第一步:
我们先修改以下3个文件,添加JAVA_HOME
hadoop-env.sh
mapred-env.sh
yarn-env.sh
第二步:
1.核心配置文件:修改core-site.xml文件
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
2.HDFS配置文件:修改hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop102:50090</value>
</property>
3.YARN配置文件:修改yarn-site.xml
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
4.MapReduce配置文件:修改mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
第三步:
分发配置好的hadoop文件
Xshell远程连接hadoop100,进入指定路径
指令:cd /opt/module/hadoop-2.7.2
指令:xsync etc
集群单点启动
用Xshell连接hadoop101
【1】格式化NameNode
如果集群是第一次启动,需要格式化NameNode
指令:cd /opt/module/hadoop-2.7.2
指令:hdfs namenode -format
出现sucessfully formatted 说明成功了
【2】在hadoop101上启动NameNode、DataNode
指令:hadoop-daemon.sh start namenode
指令:hadoop-daemon.sh start datanode
【3】在hadoop102上启动DataNode、SecondaryNameNode
指令:hadoop-daemon.sh start datanode
指令:hadoop-daemon.sh start secondarynamenode
【4】在hadoop103上启动DataNode
指令:hadoop-daemon.sh start datanode
所有窗口输入jps查看
hadoop101
hadoop102
hadoop103
通过web查看hadoop状态
在本机windows 修改C:WindowsSystem32driversetc的host文件(否则无法通过主机名访问)
把以下内容加进去
192.168.111.128 hadoop100
192.168.111.129 hadoop101
192.168.111.130 hadoop102
192.168.111.131 hadoop103
设置完成后,打开浏览器输入hadoop101:50070
看到3个datanode 说明启动成功