1. 服务器集群
hostname | IP | user | password | path | os |
---|---|---|---|---|---|
spark01 | 192.168.0.201 | hadoopadmin | java | home/hadoopadmin | Ubuntu18虚拟 |
spark02 | 192.168.0.202 | hadoopadmin | java | home/hadoopadmin | Ubuntu18虚拟 |
spark03 | 192.168.0.201 | hadoopadmin | java | home/hadoopadmin | Ubuntu18虚拟 |
2. 集群规划
spark01 | spark02 | spark03 |
---|---|---|
namenode | namenode | |
DataNode | DataNode | DataNode |
zookeeper | zookeeper | zookeeper |
ResourceManage | ResourceManage | |
NodeManage | NodeManage | NodeManage |
3. 组件版本
组件 | 版本 | 下载地址 |
---|---|---|
ubuntu | ubuntu-18.04.1-live-server-amd64 | linux服务器下载地址 |
JDK | 1.8.0_181 | Jdk |
Zookeeper | zookeeper-3.4.10 | zookeeper下载地址 |
Hadoop | hadoop-2.7.5 | hadoop下载地址 |
4. 配置服务器
从此步开始,开始进行服务器基础环境配置。
为了解决机器间通信问题,hadoop部署必须要配置,提前配置是为了解决步骤5中的发送文件问题
将集群中所有的机器hostname+ip,添加到/etc/hosts,
192.168.0.201 spark01 192.168.0.202 spark02 192.168.0.203 spark03
关闭防火墙
由于不同版本的linux系统关闭防火墙方式不同,所以这里不再详细记录,具体细节安装时进行google。
ubuntu这里使用一下命令进行配置。systemctl status firewalld.service systemctl start firewalld.service
配置网卡及主机名
编辑文件/etc/sysconfig/network-scripts/ifcfg-eth0,写入如下配置(每一台机器):DEVICE="eth0" BOOTPROTO="static" IPADDR=192.168.0.201 GATEWAY=192.168.0.1 NETMASK=255.255.255.0 ONBOOT="yes"
配置主机名编辑文件/etc/sysconfig/network以及编辑文件/etc/hostname
NETWORKING=yes HOSTNAME=master1
master1
配置完成后,重启网络服务。
service network restart
配置免密登录
Linux免密登录,本质上是使用了”公钥登录”。原理很简单,就是用户将自己的 公钥 储存在远程主机上。登录的时候,远程主机会向用户发送一段 随机字符串,用户用自己的 私钥 加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。- 生成本机公钥
ssh-keygen -t rsa
- 三台机器之间免密登陆只需要将每台机的公钥文件cat id_rsa.pub发送到每台机器上即可。
scp -r hadoopadmin@sprak01:/home/hadoopadmin/.ssh
- 添加本机到“authorized_keys”文件中,文件目录为/home/hadoopadmin/.ssh/。
cat id_rsa.pub >> authorized_keys
- 配置完成后使用ssh命令进行登陆,测试免密登陆是否成功(若登陆不成功,则有可能防火墙没有关闭,或者公钥配置失败)
ssh spark01
5. 拷贝,解压
根据下载链接将需要组建下载到物理机,由物理机下载到本地后,需要拷贝到三台虚拟机中,我这里编写脚本进行发送(需要先进行hosts配置以及四台机器间免密登录,参考步骤 4)
#!/bin/bash targets="spark01 spark02 spark03" for target in $targets do scp -r $1 hadoopadmin@$target:/home/hadoopadmin/ done
执行发送命令, xxx.tar.gz为各组件安装包。
./send.sh xxx.tar.gz
在所有组件安装包上传完成后,开始解压安装包。
tar -zvxf xxx.tar.gz