集群环境搭建
1:注意事项
1.1 windows系统确认所有的关于VmWare的服务都已经启动
1.2 确认好VmWare生成的网关地址
1.3 确认VmNet8网卡已经配置好了IP地址和DNS
2:复制虚拟机
2.1 将虚拟机文件夹复制三份,并分别重命名, 并使用VM打开重命名
2.2分别设置三台虚拟机的内存
- 需要三台虚拟机, 并且需要同时运行, 分别设置为 4 2 2
- 在分配的时候, 需要在总内存大小的基础上, 减去2G-4G作为系统内存, 剩余的除以3, 作为每台虚拟机的内存
3:启动虚拟机并修改Mac和IP
3.1 集群规划
IP | 主机名 | 环境配置 | 安装 |
---|---|---|---|
192.168.69.101 | CDH1 | 关防火墙和selinux, host映射, 时钟同步 | JDK, NameNode, ResourceManager, Zookeeper |
192.168.69.102 | CDH2 | 关防火墙和selinux, host映射, 时钟同步 | JDK, DataNode, NodeManager, Zookeeper |
192.168.69.103 | CDH3 | 关防火墙和selinux, host映射, 时钟同步 | JDK, DataNode, NodeManager, Zookeeper |
3.2 :设置ip和Mac地址
配置静态ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33 分别修改IPADDR=192.168.69.(101、102、103)
使用service network restart加载网络配置信息
使用xshell连接虚拟机修改主机名称分别为CDH1、CDH2、CDH3
vi /etc/hostname
reboot重启虚拟机
修改C:\Windows\System32\drivers\etc|host文件最下面添加ip地址映射进去如下图
vim /etc/hosts
3.3 linux系统重启
关机重启linux系统即可进行联网了使用ping命令查看虚拟机是否能联网(例: ping www.baidu.com)
第二台第三台机器重复上述步骤,并设置IP网址为192.168.69.102,192.168.69.103
4:三台虚拟机关闭防火墙
将ntp enabled 改为yes
timedatectl set-ntp yes
查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
5.3 三台机器机器免密码登录
- 为什么要免密登录
- Hadoop 节点众多, 所以一般在主节点启动从节点, 这个时候就需要程序自动在主节点登录到从节点中, 如果不能免密就每次都要输入密码, 非常麻烦
- 免密 SSH 登录的原理
- 需要先在 B节点 配置 A节点 的公钥
- A节点 请求 B节点 要求登录
- B节点 使用 A节点 的公钥, 加密一段随机文本
- A节点 使用私钥解密, 并发回给 B节点
- B节点 验证文本是否正确
- 配置时间同步
配置CDH1对CDH1、CDH2、CDH3三台服务器免密登录。
1)生成公钥和私钥:
[root@CDH1 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
2)将公钥拷贝到要免密登录的目标机器上
[root@CDH1 .ssh]$ ssh-copy-id CDH1(输入yes和CDH1密码)
[root@CDH1 .ssh]$ ssh-copy-id CDH2
[root@CDH1 .ssh]$ ssh-copy-id CDH3
3)重复1和2的操作,配置CDH2和CDH3对CDH1、CDH2、CDH3三台服务器免密登录。
5.4三台机器时钟同步
- 为什么需要时间同步
- 因为很多分布式系统是有状态的, 比如说存储一个数据, A节点 记录的时间是 1, B节点 记录的时间是 2, 就会出问题
配置时间同步
yum install ntp
将ntp enabled 改为yes
timedatectl set-ntp yes
date查看时间
6:装辅助软件
6.1 每台主机安装jdk
查看自带的openjdk
rpm -qa | grep java
卸载系统自带的openjdk
rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 tzdata-java-2016j-1.el6.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64 --nodeps
上传jdk并解压然后配置环境变量
所有软件的安装路径
mkdir -p /export/servers
所有软件压缩包的存放路径
mkdir -p /export/softwares
安装上传工具
yum -y install lrzsz
使用rz -E命令把jdk的压缩包上传到/expoort/softwores中。
解压
tar -zxvf jdk-8u141-linux-x64.tar.gz -C ../servers/
配置环境变量
vim /etc/profile
export JAVA_HOME=/export/servers/jdk1.8.0_141
export PATH=:$JAVA_HOME/bin
5、编写集群同步脚本(cd /bin) vi xsync
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if