文章目录
1、相关安装包以及规划
考虑本地测试使用,这里所使用的三台服务器均有虚拟机创建,每台配置:1个vCPU+1G内存+9G硬盘
Hadoop:Hadoop-3.1.2
JDK: jdk1.8.0_161
Ip | 角色 | hadoop路径 | Hostname | jdk路径 | linux版本 |
---|---|---|---|---|---|
192.188.0.4 | NameNode,Datanode,NodeManager | /opt/hadoop-3.1.2 | nn | /opt/jdk1.8.0_161 | Centos7.5 |
192.188.0.5 | DataNode,ResourceManager,NodeManager,JobHistoryServer | /opt/hadoop-3.1.2 | dn1 | /opt/jdk1.8.0_161 | Centos7.5 |
192.188.0.6 | DataNode,Secondarynode,NodeManager | /opt/hadoop-3.1.2 | dn2 | /opt/jdk1.8.0_161 | Centos7.5 |
这里列出节点服务的基础介绍:
hadoop平台相关:
NameNode:
接收用户操作请求
维护文件系统的目录结构
管理文件与block之间关系,block与datanode之间关系
DataNode:
存储文件
文件被分成block存储在磁盘上
为保证数据安全,文件会有多个副本
Secondary NameNode:
合并来自namenode的fsimage和edits文件来更新namenode的metedata
yarn平台相关:
ResourceManager:
集群中所有资源的统一管理和分配,它接受来自各个节点的NodeManager的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序,是整个yarn集群中最重要的组件之一。
JobHistoryServer:
历史服务器,可以通过历史服务器查看已经运行完成的Mapreduce作业记录,比如用了多少个Map、多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息。默认情况下,历史服务器是没有启动的,需要进行参数配置才能启动
NodeManager:
运行在单个节点上的代理,管理hadoop集群中单个计算节点,它需要与相应用程序ApplicationMaster和集群管理者ResourceManager交互
从ApplicationMaster上接收有关Contioner的命令并执行
向ResourceManager汇报各个Container运行状态和节点健康状况,并领取有关的Container的命令并执行
2、设置hostname
分别对三个节点更改对应的hostname
[root@nn ~]# vi /etc/hostname
nn
[root@dn1 ~]# vi /etc/hostname
dn1
[root@dn2 ~]# vi /etc/hostname
dn2
配置域名解析,三个节点都需要配置
[root@dn2 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.188.0.4 nn
192.188.0.5 dn1
192.188.0.6 dn2
# 无需重启,直接ping主机名称
[root@dn2 ~]# ping nn
PING nn (192.188.0.4) 56(84) bytes of data.
64 bytes from nn (192.188.0.4): icmp_seq=1 ttl=64 time=0.322 ms
64 bytes from nn (192.188.0.4): icmp_seq=2 ttl=64 time=0.347 ms
3、配置免密ssh
3.1 对三台服务器设置ssh公钥
[root@nn /]# ssh-keygen -t rsa
# 手动创建 authorized_keys文件
[root@nn .ssh]# ls
id_rsa id_rsa.pub
[root@nn .ssh]# cp id_rsa.pub authorized_keys
其他两个节点同样操作
3.2 在nn节点将自己公钥拷贝到其他两个节
# 三个节点都需要操作
[root@nn ~]# ssh-copy-id nn
[root@nn ~]# ssh-copy-id dn1
[root@nn ~]# ssh-copy-id dn2
# 测试免密登录
[root@nn ~]# ssh dn1
[root@nn ~]# ssh dn2
4、配置Java环境
本项目中,java包、hadoop包、spark包都放在/opt目录下,三个节点都需配置
# java包路径
[root@nn jdk1.8.0_161]# pwd
/opt/jdk1.8.0_161
# 配置环境变量
# vi /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_161
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# 生效配置
source /etc/profile
# 查看版本
[root@nn jdk1.8.0_161]# java -version
java version &