用三台Linux虚拟机配置Hadoop集群的过程

配置集群环境

1.软件包准备

VMWARE 虚拟环境安装软件
CENTOS7 镜像文件
FinalShell

2.配置虚拟机

虚拟机版本:  CENTOS7
安装过程  :   不再赘述


安装必要的包: 
yum install -y epel-release

yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl static tree iotop git  libaio

yum install -y 软件包名


目录创建:   创建 /opt/soft    /opt/package  两个目录

关闭防火墙:        systemctl  stop  firewalld
关闭防火墙开机自启:  systemctl disable firewalld


systemctl  [start | stop | status | disable ]   服务名

```

## 3.关闭SELINUX

```properties
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
SELinux 主要由美国国家安全局开发。  Linux 内核都已经集成了 SELinux 模块。
SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)

命令: vim /etc/selinux/config
修改: SELINUX=disabled
```


## 4.安装JDK环境

```properties
为什么安装 JDK:
Hadoop 是用Java语言写的  

1: 检查删除linux自带的jdk
   rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps
   
2: 上传 JDK 安装包到 /opt/package 目录

3: 解压到 /opt/soft 目录

配置环境变量:  vim  /etc/profile.d/my_env.sh

添加如下内容
#JAVA_HOME
export JAVA_HOME=/opt/soft/jdk1.8.0_65
export PATH=$PATH:$JAVA_HOME/bin
```

## 5.设置静态IP

```properties
#1 编辑网卡信息
vim /etc/sysconfig/network-scripts/ifcfg-ens33

#2 修改内容
将 BOOTPROTO="dhcp" 修改成  BOOTPROTO="static"
将 ONBOOT="no"  修改成  ONBOOT="yes"

#3 添加如下内容, 注意  ip 的第三段 要改成自己的
IPADDR="192.168.52.67"
NETMASK="255.255.255.0"
GATEWAY="192.168.52.2"
DNS1="192.168.52.2"

#  重启网卡
service network restart
```

## 6.配置host映射

```properties
vim /etc/hosts

根据个人主机名和ip添加如下:  注意 ip 要改成自己的
192.168.52.181  node1
192.168.52.182  node2
192.168.52.183  node3
```

## 7.克隆虚拟机

```properties
1:将第二步安装好的虚拟机关机
2:克隆另外两台机器
3:修改克隆的2台虚拟机的MAC地址[]
```

![image-20221023180048003](C:\Users\zhang\AppData\Roaming\Typora\typora-user-images\image-20221023180048003.png)

## 8.修改主机名和IP(克隆后的2台)

```properties
# 修改主机名
vim /etc/hostname 

# 修改IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33

## 修改完后 要重启 虚拟机
```

## 9.设置免密登录

```properties
在node1上生成公钥和私钥
ssh-keygen

将公钥拷贝给三台机器
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
```

## 10.远程拷贝

```
scp 
```

## 同步脚本zlcp

### 在root 下创建脚本

```
vim zlcp
```

### 复制以下内容

注意: 如果主机名不一致,自行修改后再复制

```shell
#!/bin/bash

if [ $# -lt 1 ]
then
  echo "no parameter!"
  exit;
fi

#2. 遍历集群所有机器
for host in node1 node2 node3
do
  echo ====================  $host  ====================
  
  for file in $@
  do
    #4 判断文件是否存在
    if [ -e $file ]
    then
      #5. 获取父目录
      pdir=$(cd -P $(dirname $file); pwd)
      #6. 获取当前文件的名称
      fname=$(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done
```
sh zlcp a 在所有虚拟机更新a文件的数据


### 添加执行权限

```
chmod +x zlcp
```
这个脚本有了路径执行权限
./zlcp
./root/zlcp
### 将脚本移动到/bin中

```
mv zlcp /bin/
cp zlcp /bin/
```

## 配置时间同步

在所有节点关闭ntp服务和自启动

```
systemctl stop ntpd
systemctl disable ntpd
```

1.修改ntp配置文件 (只在node1做配置)

```
vim /etc/ntp.conf
```

![image-20220323170953411](C:\Users\zhang\AppData\Roaming\Typora\typora-user-images\image-20220323170953411.png)

2.添加下面2行

```
server 127.127.1.0
fudge 127.127.1.0 stratum 10
```

当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步

3 . 修改/etc/sysconfig/ntpd 文件

```
vim /etc/sysconfig/ntpd
```

添加如下内容

```
SYNC_HWCLOCK=yes
```

![image-20220323171527995](C:\Users\zhang\AppData\Roaming\Typora\typora-user-images\image-20220323171527995.png)

4 . 重新启动ntpd服务,设置开机自启动

```
systemctl start ntpd

systemctl enable ntpd
```

5 . 其他2台机器配置(node2 和 node3 )

在其他机器配置10分钟与时间服务器同步一次

```
crontab -e

添加
*/10 * * * * /usr/sbin/ntpdate node1
```

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值