完全分布式Hadoop搭建指南

前文回顾:我们已经完成了单机版的Hadoop安装,基本的hdfs命令也可以操作练习了,具体的hdfs指令可以参考Hadoop官网的文档,多多操练,必有大益!Hadoop官网

1、删除单机hadoop的数据和相关日志

namedatatemplog、root根目录下的tmp,尽量删干净避免重做时数据干扰

:⚠️工作中禁止删除name和data中的数据,高风险,高价值的数据

[root@c001 ~]# cd /opt/bigdata/hadoop-2.7.1/
[root@c001 hadoop-2.7.1]# cd hdfs/name/
[root@c001 name]# rm -rf *
[root@c001 name]# cd ../data/
[root@c001 data]# rm -rf *
[root@c001 data]# cd ..
[root@c001 hdfs]# cd ..
[root@c001 hadoop-2.7.1]# cd temp/
[root@c001 temp]# rm -rf *
[root@c001 temp]# cd ../logs/
[root@c001 logs]# rm -rf *
[root@c001 logs]# cd /tmp/
[root@c001 tmp]# rm -rf *

2、配置hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.101 c001
192.168.100.102 c002
192.168.100.103 c003

以三台物理、虚拟设备为例,实际按需和按能力添加

3、新机切换源

/etc/yum.repo.d/CentOS-Base.repo

:⚠️修改前记得先备份,有备无患

4、安装基础依赖

yum install gcc perl autoconf libaio lrzsz -y
#习惯使用vim的可以在安装vim、否则就用自带的vi
yum install vim

gcc

中文名称:GNU C 语言编译器

用途:Linux 下最核心的C/C++ 代码编译工具,用于把源代码编译成可执行程序,安装大部分源码软件都必须依赖它。

perl

中文名称:Perl 脚本语言解释器

用途:运行 Perl 脚本,常用于系统管理、文本处理、日志分析、自动化脚本,很多 Linux 自带工具和服务依赖它。

autoconf

中文名称:自动配置脚本生成工具

用途:源码编译自动化配置工具,执行 ./configure 时必须用到,用于检测系统环境、生成编译规则,是安装源码包的必备工具。

libaio

中文名称:异步输入输出库

用途:提供异步 I/O 功能支持,大幅提升数据库(MySQL/Oracle)、高性能服务的磁盘读写效率,是高性能应用的依赖库。

lrzsz

中文名称:文件上传下载工具包

用途:Linux 终端下通过 X/Y/Zmodem 协议 上传 / 下载文件,常用命令:rz(上传文件到服务器)、sz(下载文件到本地)。

5、关闭防火墙

临时关闭:systemctl stop firewalld
永久关闭:systemctl disable firewalld
查看防火墙状态:systemctl status firewalld

:💁‍♂按顺序执行,避免永久关闭失败,下次重启时,防火墙在此打开

6、安装JDK

6.1 gz包解压的绿色版方式

[root@c001 ~]# scp -r /usr/local/java root@c002:/usr/local/
[root@c001 ~]# scp -r /usr/local/java root@c003:/usr/local/

在另外两台配置环境变量

#jdk环境变量
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
#mysql环境变量
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
#hadoop搭建
export HADOOP_HOME=/opt/bigdata/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

记得刷新profile

source /etc/profile

6.2 通过yum安装的java1.8

[root@c001 ~]# scp -r /usr/lib/jvm/ root@c002:/usr/lib/
[root@c001 ~]# scp -r /usr/lib/jvm/ root@c003:/usr/lib/

要把整个jvm目录都搬过去!!!

#JAVA_HOME配置
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH

#MYSQL配置
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin

#hadoop配置
ulimit -n 65535
ulimit -u 65535
#Hadoop环境变量
export HADOOP_HOME=/opt/bigdata/hadoop-2.7.1
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

7、创建Hadoop安装路径

[root@c002 ~]# mkdir -p /opt/bigdata
[root@c003 ~]# mkdir -p /opt/bigdata

8、配置多机SSH免密钥登入:⭐️⭐️ ⭐️

清除1号机(之前的单机hadoop)原有秘钥

[root@c001 ~]# pwd
/root
[root@c001 ~]# ls -al
总用量 44
dr-xr-x---. 5 root root 4096 324 09:39 .
drwxr-xr-x. 17 root root 4096 324 10:21 ..
-rw-------. 1 root root 887 320 11:20 anaconda-ks.cfg
-rw-------. 1 root root 3180 324 10:21 .bash_history
-rw-r--r--. 1 root root 18 1229 2013 .bash_logout
-rw-r--r--. 1 root root 176 1229 2013 .bash_profile
-rw-r--r--. 1 root root 176 1229 2013 .bashrc
-rw-r--r--. 1 root root 100 1229 2013 .cshrc
-rw-------. 1 root root 163 320 15:35 .mysql_history
drwxr-xr-x. 2 root root 38 320 14:47 .oracle_jre_usage
drwxr-----. 3 root root 18 320 14:33 .pki
drwx------. 2 root root 76 323 10:46 .ssh
-rw-r--r--. 1 root root 129 1229 2013 .tcshrc
-rw-------. 1 root root 2659 324 09:39 .viminfo
[root@c001 ~]# cd .ssh/
[root@c001 .ssh]# ll
总用量 16
-rw-r--r--. 1 root root 391 323 10:46 authorized_keys
-rw-------. 1 root root 1675 323 10:46 id_rsa
-rw-r--r--. 1 root root 391 323 10:46 id_rsa.pub
-rw-r--r--. 1 root root 886 324 09:54 known_hosts
[root@c001 .ssh]# rm -rf *

8.1 三台主机依次生成私钥

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

使用FinalShell等任何的Shell工具都连上虚拟机,同时操作,避免错漏

[root@c001 .ssh]# cat id_rsa.pub

查看并报错私钥

ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDYnKf1mcNITJqn/OVdGcVMdCkUYYv6up/B6aRh1XtrNaaJoK/Nl
CWi1/8qgYY398dXtCwrBMH3oHWYo818TnMI/IWiNcr8/nZSA90QtSfFp6brp8YhdAp9ot36n83pp7q0II
NrJn+iy22MymVbgPUkvlkdaBUYQtR3hcfawTUit6H1puCgnks1sCaDKXkaqmhhCATog
7A2EFDqbSEctFjA37+CIU/UnP8R0xj2CaeNljW9JWkWIOd0ARl9w8MFI/9nAMTLJiHGGdvS0ir9+A3nl9
3m3EU6bN9ffmd9hEDj5wbr2kwIfLU7hsCkFU5SiBm2eUVLAd root@c001
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDvXe409IfsXDmRuVaHacM43xZEa/UKdQMkIvvx8TFBw/QWkMnKj
eLYalxuZi7TJjKmGs1IhnqgQjfiV1TC1F2oYzn5OMGhnbL/hytTOAAtT8Z2dzsLd/R5A/UXC2sxxFwmc3
1IGyedcc6T3FBQMcLBNHCpUui3zCoargDFl1aL7rminE0h8jevb34qkq3taBAmLlHxhXn
zIL5rDM6iIDO3zFyAkv6E3WVa4cbRha/49FGqcNpbjJXn8NoKIXubnP6QyDF2tnNrkwi2NRHqW2hmhSkR
xrqfVxuItsVo6Ty8/urf4Pmc/hyt2PI0xOW/uP8a3pwVdnYj root@c002
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDHzp02SJMCxhfl3Q4nePJW16GWqrZCXpSH76qT+hLwZpOeW8Bbm
Sywi5Bg8fMdL1Bs32Jui+J+CiMgtOxo+koL8rvdo5wvvlE3BR6YB1Oh0sCyEB0vk7gdDjTjy+H2oBXfX8
djV7fM/CGWTLXPjeFOsB10OcnW3ZCdb/KmJMu+rbPvoSHSh+dPqKYr0HmoAtsbnZ47gO
YPniV15a5oB0lab/KRyl7LJYqgsgsZm7ynfaMoIfyoz7GRgZU811G+82tY/+4VxG7rUcu+k4ilRrCv6/F
xkouoGmzzZcnJWmbSaDebGp7U50Rrh9vXJzBjhx6hB4K/213 root@c003

8.2 创建公钥文件

[root@c001 .ssh]# touch authorized_keys

8.3 分发公钥到其他主机

[root@c001 .ssh]# scp authorized_keys root@c002:/root/.ssh/
[root@c001 .ssh]# scp authorized_keys root@c003:/root/.ssh/

9、同步hosts文件到其他主机

[root@c001 /]# scp /etc/hosts root@c002:/etc/
[root@c001 /]# scp /etc/hosts root@c003:/etc/

10、验证SSH免密登入效果

应该能达到ssh c00*,丝滑切换,第一次可能需要输入‘yes’

如失败,检查hosts文件配置内容有没有错?分发有没有成功,路径对不对?不放心主机器C001,reboot试试,重启大法不可忽视!

[root@c001 ~]# ssh c002
[root@c002 ~]# ssh c001
[root@c001 ~]# ssh c003
[root@c003 ~]# ssh c002

11、配置slaves

[root@c001 ~]# cat /opt/bigdata/hadoop-2.7.1/etc/hadoop/slaves
c001
c002
c003

⚠️如果原始文件中有关于localhost的配置,删除,本人启动时出现了manager节点启动失败,删除后重试,丝滑启动!可能是这个原因,也可能是我的内存占用过多。

12、分发Hadoop到其他机器

[root@c001 ~]# scp -r /opt/bigdata/hadoop-2.7.1 root@c002:/opt/bigdata/
[root@c001 ~]# scp -r /opt/bigdata/hadoop-2.7.1 root@c003:/opt/bigdata/

13、 在此格式化hadoop的配置

hadoop namenode -format

只要在namenode上格式化就行

14、验证

#namenode节点上启动Hadoop服务
start-all.sh

#依次在各节点上jps查看服务
[root@c001 ~]# jps
2320 NameNode
2592 SecondaryNameNode
2832 NodeManager
2737 ResourceManager
2440 DataNode
3119 Jps

[root@c002 ~]# jps
19412 NodeManager
19508 Jps
19317 DataNode

[root@c003 ~]# jps
2272 NodeManager
2177 DataNode
2369 Jps

在这里插入图片描述
在这里插入图片描述

更多推荐