Hadoop集群完全分布式搭建(保姆级教程)
此次搭建实在伪分布的基础上进行完全分布式搭建,hadoop版本是3.3.1,安装目录是/opt/installs/hadoop。
·
注:此次搭建实在伪分布的基础上进行完全分布式搭建,hadoop版本是3.3.1,安装目录是/opt/installs/hadoop
一、网络和节点规划
- 网络规划
| 主机名 | ip地址 | 节点类型 |
|---|---|---|
| bigdata01 | 192.168.17.160 | master |
| bigdata02 | 192.168.17.161 | slave1 |
| bigdata03 | 192.168.17.162 | slave2 |
- 节点规划
| bigdata01 | bigdata02 | bigdata03 |
|---|---|---|
| NameNode | secondNameNode | / |
| dataNode | dataNode | dataNode |
二、环境准备
完全分布式搭建至少需要三台虚拟机,在进行伪分布搭建时已经有一台虚拟机,并且安装了jdk和SSH服务,因此把第一台作为master节点,其他两台作为slave节点(bigdata02,bigdata03).
1.克隆虚拟机

在克隆时要先关闭虚拟机,否则克隆不了.
本集群选择创建完整克隆,然后分别给虚拟机曲目bigdata02和bigdata03.

2.修改映射名,ip地址和映射关系
克隆的虚拟机所有配置文件都是一样的,需要根据网络规划对克隆的两台虚拟机进行操作
在bigdata02中进行,bigdata03参考一下操作配置
#修改hostname
vi /etc/hostname
hostname bigdata02
#修改ip地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.17.161
在bigdata01中进行配置hosts
#配置hosts
vi /etc/hosts
192.168.17.160 bigdata01
192.168.17.161 bigdata02
192.168.17.163 bigdata03
三台虚拟机的hosts文件是一样的,可以通过scp远程拷贝到bigdata02,bigdata03.
scp -r /etc/hosts root@bigdata02:/etc/
scp -r /etc/hosts root@bigdata03:/etc/
修改hosts后重启网络
service network restart
3.设置免密登录
#1、需要在bigdata01上生成公钥和私钥,四次回车
ssh-keygen -t rsa
#2、将公钥传递给其他虚拟机
ssh-copy-id bigdata01
ssh-copy-id bigdata02
ssh-copy-id bigdata03
4.关闭防火墙,修改安全机制
#禁用防火墙
systemctl disable firewalld
#修改安全机制
vi /etc/selinux/config
修改⾥⾯的 SELINUX=disabled

三、配置hadoop集群
1.配置java,hadoop的环境变量
#配置bigdata01的环境变量
vi /etc/profile
export HADOOP_HOME=/opt/installs/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
jdk在之前已经配置过
#拷贝环境变量到另外两台
scp -r /etc/profile root@bigdata02:/etc/
scp -r /etc/profile root@bigdata03:/etc/
#在01,02,03上分别刷新
source /etc/profile
2.配置分布式集群环境
路径:/opt/installs/hadoop/etc/hadoop
cd /opt/installs/hadoop/etc/hadoop
vi core-site.xml
<configuration>
<!-- 设置namenode节点 -->
<!-- 注意: hadoop1.x时代默认端⼝9000 hadoop2.x时代默认端⼝8020 hadoop3.x时 代默认端⼝ 9820 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata01:9820</value>
</property>
<!-- hdfs的基础路径,被其他属性所依赖的⼀个基础路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/installs/hadoop/tmp</value>
</property>
</configuration>
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--secondarynamenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdata02:9868</value>
</property>
<!-- namenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
<property>
<name>dfs.namenode.http-address</name>
<value>bigdata01:9870</value>
</property>
</configuration>
vi hadoop-env.sh
export JAVA_HOME=/opt/installs/jdk
# Hadoop3中,需要添加如下配置,设置启动集群⻆⾊的⽤户是谁
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
vi workers
bigdata01
bigdata02
bigdata03
3. hadoop和环境变量远程拷贝到bigdata02,bigdata03
此次搭建是在伪分布的基础上操作,因此首先需要把bigdata01的hadoop安装目录下的logs,tmp文件删除,以便后续格式化
#将bigdata01上的hadoop 拷贝给 02 和 03
scp -r /opt/installs/hadoop/ root@bigdata02:/opt/installs/
scp -r /opt/installs/hadoop/ root@bigdata03:/opt/installs/
#拷贝环境变量
scp -r /etc/profile root@bigdata02:/etc/
scp -r /etc/profile root@bigdata03:/etc/
在02 和 03 上刷新环境变量
source /etc/profile
4.格式化nameNode
hdfs namenode -format
四、启动集群
start-dfs.sh
通过jps查看进程


至此,hadoop完全分布式搭建成功!
更多推荐


所有评论(0)