1. 环境准备
说明:分布式集群最少 3 台,如何在自己本地虚拟安装Linux虚拟机,请转至另一篇安装部署文章 https://blog.csdn.net/weixin_45579026/article/details/117932287
1. 配置网络
将3台CentOS的ip设置成手动 Manual
。
VMware:编辑 → 虚拟网络编辑器 → VMnet8 NAT模式 → NAT模式(与虚拟机共享主机的IP地址) → NAT设置,获取VMware的相关信息:
- 子网IP:192.168.26.0
- 子网掩码:255.255.255.0
- 网关:192.168.26.2
2. 修改hostname主机名
[root@hadoop0 ~]# hostname
hadoop0
- 若hostname都一样则修改为不一样的
3. 修改hosts文件
[root@hadoop0 ~]# vi /etc/hosts
# 将下边三行写到hosts文件末尾:
192.168.26.101 hadoop0
192.168.26.102 hadoop1
192.168.26.103 hadoop2
4. 防火墙策略
- 查看防火墙状态:
systemctl status firewalld.service
- 关闭防火墙:
systemctl stop firewalld.service
- 永久关闭防火墙(重启也不行):
systemctl disable firewalld.service
5. ssh相互免密码登录
1. 三台机器都生成密钥:
[root@hadoop0 ~]# cd /root/
[root@hadoop0 ~]# pwd
/root
[root@hadoop0 ~]# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): # 回车
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): # 回车
Enter same passphrase again: # 回车
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is: # 回车
SHA256:19rqsF9c8x9uu1vfc7fIZr+l8hKNQKpPuHIwQ8zmWgU root@hadoop0
The key's randomart image is:
。。。
2. 将hadoop0和hadoop1的密钥拷贝到hadoop2上
分别在hadoop0和hadoop1上执行下行代码并输入hadoop2的root口令
ssh-copy-id -i /root/.ssh/id_dsa.pub hadoop2
3. 将hadoop2的密钥拷贝到hadoop0和hadoop1上
在hadoop2上执行以下两行代码
scp /root/.ssh/authorized_keys hadoop0:/root/.ssh/
scp /root/.ssh/authorized_keys hadoop1:/root/.ssh/
2. 安装JDK
-------------- 三台都修改 --------------
1. 安装前先查看系统是否自带JDK
[root@hadoop1 ~]# rpm -qa | grep java # 返回空
2. 在根目录下创建 software
文件夹,将JDK包导到software
下
使用xshell的文件传输功能即可
3. 解压 jdk-8u181-linux-x64.tar.gz
[root@hadoop1 ~]# cd /software/
[root@hadoop1 software]# tar -zxvf jdk-8u181-linux-x64.tar.gz
4. 重命名Java包
[root@hadoop1 software]# mv jdk1.8.0_181/ jdk
5. 配置Java和Hadoop的环境变量
- 先备份:
[root@hadoop1 software]# cp /etc/profile /etc/profile.back
- 再修改:
[root@hadoop1 software]# vi /etc/profile
- 在文件最后写入:
export JAVA_HOME=/software/jdk
export PATH=.:$PATH:$JAVA_HOME/bin
6. 使配置产生作用
[root@hadoop1 software]# source /etc/profile
7. 验证JDK安装和配置是否成功
java
java -version
javac
- 以上3个指令都返回相应信息即可。
3. 安装ZooKeerper
-------------- 三台都修改 --------------
1. 解压zookeeper-3.4.10.tar.gz
[root@hadoop1 software]# tar -zxvf zookeeper-3.4.10.tar.gz
2. 重命名zk包
[root@hadoop1 software]# mv zookeeper-3.4.10 zk
3. 添加环境变量
[root@hadoop1 software]# vi /etc/profile
将以下两行添加到文件末尾:
export ZOOKEEPER_HOME=/software/zk
export PATH=.:$PATH:$ZOOKEEPER_HOME/bin
4. 安装Hadoop
-------------- 三台都修改 --------------
1. 解压hadoop-2.7.4.tar.gz
[root@hadoop1 software]# tar -zxvf hadoop-2.7.4.tar.gz
2. 重命名Hadoop包
[root@hadoop1 software]# mv hadoop-2.7.4 hadoop
3. 添加环境变量
[root@hadoop1 software]# vi /etc/profile
将以下两行添加到文件末尾:
export HADOOP_HOME=/software/hadoop
export PATH=.:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
4. 修改配置文件
[root@hadoop1 software]# cd /software/hadoop/etc/hadoop
配置hadoop-env.sh
[root@hadoop0 hadoop]# cp hadoop-env.sh hadoop-env.sh.bak
[root@hadoop0 hadoop]# vi hadoop-env.sh
export JAVA_HOME=/software/jdk #109行
# 以下两行写到文件末尾
export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin
export HADOOP_PID_DIR=/software/hadoop/pids
配置hdfs-site.xml
[root@hadoop0 hadoop]# cp hdfs-site.xml hdfs-site.xml.bak
[root@hadoop0 hadoop]# vi hdfs-site.xml
将如下内容放置在<configuration>
和</configuration>
之间:
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///software/hadoop/data/datanode</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///software/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop0:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop1:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
配置core-site.xml
[root@hadoop0 hadoop]# cp core-site.xml core-site.xml.ba
[root@hadoop0 hadoop]# vi core-site.xml
将如下内容放置在<configuration>
和</configuration>
之间
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop0/</value>
</property>
配置 slaves
[root@hadoop0 hadoop]# cp slaves slaves.bak
[root@hadoop0 hadoop]# vi slaves
将slaves文件内的localhost
删掉,把下边两行写入保存:
hadoop1
hadoop2
5. 启动服务并查看
1. 首次启动格式化nodeman
第一次启动Hadoop服务前先在三台机器上格式化nodeman:
hadoop namenode -format
2. 启动方式有两种
1. 一次性把HDFS和yarn都启动
start-all.sh
# 停止服务
stop-all.sh
2. 一个一个启动
- 启动HDFS:
start-dfs.sh
- 启动yarn:
start-yarn.sh
3. 三个节点都启动起来后的情况
[root@hadoop0 sbin]# jps
10562 Jps
10311 ResourceManager
10046 NameNode
[root@hadoop1 hadoop]# jps
10053 Jps
9927 NodeManager
9771 DataNode
9854 SecondaryNameNode
[root@hadoop2 hadoop]# jps
9610 DataNode
9706 NodeManager
9807 Jps
4. 页面显示
浏览器输入:
知识点
1. 在CentOS界面,点击Ctrl+Alt可以释放鼠标
2. 集群的安装与部署
- 单机模式
- 伪分布模式
- 分布式模式
- 高可用模式
- 联邦模式
3. HDFS服务和Yarn服务种类
HDFS服务
- nodeman:主节点
- DataNode
- Seco
- ndaryNameNode
Yarn服务
- ResourceManager
- NodeManager