一、hadoop完全分布式运行模式介绍
Hadoop的守护进程运行在由多台主机搭建的集群上,是真正的生产环境,只有分布式多台服务器运行,才满足大数据算力的要求。
在所有的主机上安装JDK和Hadoop,配置SSH组成相互连通的网络,集群之间才可以网络通信,实现分布式计算。
二、hadoop完全分布式运行环境搭建
这里用vmare虚拟三台centos的虚拟机进行完全分布式运行环境的搭建。
2.1 在一台机器上配置好环境
按照我的另一篇文章,“Hadoop环境搭建之本地运行模式”,将一台机器上的环境搭建好,执行以下步骤即可:
1、创建虚拟机
2、将虚拟机ip修改为静态ip
ip修改为:192.168.1.151
3、修改主机名
主机名称修改为:hadoop151
4、配置主机名与ip映射
这里注意要配置三个:
192.168.1.151 hadoop151
192.168.1.152 hadoop152
192.168.1.153 hadoop153
直接在文件的后面加上就好,克隆的其他虚拟机则不需要配置主机名与ip映射,直接ping主机名就可以实现网络通畅。
5、关闭防火墙
6、创建test用户
7、使test用户拥有sudo权限
8、在/opt目录下创建文件夹
9、安装jdk
10、安装hadoop
软件包链接也在文章中,文章链接如下:
https://blog.csdn.net/a1786742005/article/details/104078490
2.2 克隆两台虚拟机并修改配置
1、克隆第一台虚拟机
(1) 使用vmare克隆
(2) 点击下一步
(3) 选择虚拟机当前状态
(4) 创建完整克隆
(5) 修改虚拟机名称,并指定存储位置
(6) 克隆完成
2、修改克隆的第一台虚拟机的静态ip
将ip修改为192.168.1.152
(1) 修改网卡
[test@hadoop151 /]sudo vim /etc/udev/rules.d/70-persistent-net.rules
进入如下页面,删除eth0那一段;将eth1修改为eth0,同时复制物理ip地址。
(2) 修改ip
[test@hadoop151 /]sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改前:
修改后:
(3) 重启一下虚拟机
[test@hadoop151 /]reboot
(4) 再查看一下ip
发现ip已经修改
(5) ping一下第一台虚拟机
发现网络通畅
3、修改克隆的第一台虚拟机的主机名
将主机名修改为:hadoop152
(1) 修改主机名
[test@hadoop151 /]sudo vim /etc/sysconfig/network
(2) 重启一下虚拟机
[test@hadoop151 /]reboot
(3) 查看主机名
主机名已修改
4、修改克隆的第二台虚拟机的ip、主机名
配置操作与上面操作相同,只需要把ip改为192.168.1.153,主机名改为hadoop153。
2.3 配置三台机器之间的ssh无密码登录
1、免密登录原理
2、在hadoop151上配置test用户的ssh无密登录
(1) 生成公钥和私钥
A、先到用户根目录
[test@hadoop151 桌面]$ cd ~
B、进入.ssh文件夹
[test@hadoop151 ~]$ cd .ssh
C、生成公钥和私钥
[test@hadoop151 .ssh]$ ssh-keygen -t rsa
然后敲三个回车,就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(2) 将公钥拷贝到要免密登录的目标机器上
[test@hadoop151 .ssh]$ ssh-copy-id hadoop151
[test@hadoop151 .ssh]$ ssh-copy-id hadoop152
[test@hadoop151 .ssh]$ ssh-copy