完全分布式Hadoop搭建指南
完全分布式Hadoop搭建指南
前文回顾:我们已经完成了单机版的Hadoop安装,基本的hdfs命令也可以操作练习了,具体的hdfs指令可以参考Hadoop官网的文档,多多操练,必有大益!Hadoop官网
1、删除单机hadoop的数据和相关日志
name、data、temp、log、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 3月 24 09:39 .
drwxr-xr-x. 17 root root 4096 3月 24 10:21 ..
-rw-------. 1 root root 887 3月 20 11:20 anaconda-ks.cfg
-rw-------. 1 root root 3180 3月 24 10:21 .bash_history
-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 12月 29 2013 .bashrc
-rw-r--r--. 1 root root 100 12月 29 2013 .cshrc
-rw-------. 1 root root 163 3月 20 15:35 .mysql_history
drwxr-xr-x. 2 root root 38 3月 20 14:47 .oracle_jre_usage
drwxr-----. 3 root root 18 3月 20 14:33 .pki
drwx------. 2 root root 76 3月 23 10:46 .ssh
-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc
-rw-------. 1 root root 2659 3月 24 09:39 .viminfo
[root@c001 ~]# cd .ssh/
[root@c001 .ssh]# ll
总用量 16
-rw-r--r--. 1 root root 391 3月 23 10:46 authorized_keys
-rw-------. 1 root root 1675 3月 23 10:46 id_rsa
-rw-r--r--. 1 root root 391 3月 23 10:46 id_rsa.pub
-rw-r--r--. 1 root root 886 3月 24 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


更多推荐
所有评论(0)