Hadoop3.2.1分布式高可用安装
1 下载安装包
hadoop-3.2.1.tar.gz zookeeper-release-3.6.2.tar.gz |
2 主机规划
IP |
主机名 |
用途 |
系统进程 |
用户密码 |
操作系统 |
CPU |
内存 |
硬盘 |
备注 |
192.168.31.101 |
cancer01 |
Namenode |
namenode journalnode resourcemanager zkfc |
hadoop hadoop |
Centos7 |
2c |
32G |
1T |
|
192.168.31.102 |
cancer02 |
SecondaryNamenode
|
namenode journalnode resourcemanager zkfc |
hadoop hadoop |
Centos7 |
2c |
32G |
1T |
|
192.168.31.103 |
cancer03 |
Datanode |
datanode journalnode nodemanager quorumpeermain zkfc |
hadoop hadoop |
Centos7 |
2c |
32G |
1T |
|
192.168.31.104 |
cancer04 |
Datanode |
datanode nodemanager quorumpeermain zkfc |
hadoop hadoop |
Centos7 |
2c |
32G |
1T |
|
192.168.31.105 |
cancer05 |
Datanode |
datanode nodemanager quorumpeermain zkfc |
hadoop hadoop |
Centos7 |
2c |
32G |
1T |
|
3 主机环境准备
3.1 设置主机IP
在每台主机上设置IP
1、修改配置文件 # vim /etc/sysconfig/network-scripts/ifcfg-eth0(ifcfg-eth0为网卡名,不同主机可能名称不同) BOOTPROTO=static ONBOOT=yes IPADDR=192.168.31.101 NETMASK=255.255.255.0 GATEWAY=192.168.31.1 DNS1=192.168.31.1 DNS2=0.0.0.0 2、重启服务 # service network restart |
3.2 设置主机名
在每台主机上设置主机名
1、查看主机名 # hostnamectl 2、用命令修改 # hostnamectl set-hostname cancer01 (修改当前主机名) 3、修改配置文件 # vim /etc/hosts (每台主机hosts文件均为如下内容) 127.0.0.1 localhost 192.168.116.101 cancer01 192.168.116.102 cancer02 192.168.116.103 cancer03 192.168.116.104 cancer04 192.168.116.105 cancer05 4、重启主机 # reboot now |
3.3 添加用户
在每台主机上添加用户
# useradd hadoop # passwd hadoop |
3.4 关闭防火墙
在每台主机上关闭防火墙
# systemctl stop firewalld.service centos7停止firewall # systemctl disable firewalld.service centos7禁止firewall开机启动 |
3.5 关闭selinux
在每台主机上关闭selinux
selinux=disabled |
3.6 禁用Transparent Hugepage
在每台主机上禁用Transparent Hugepage
查看状态 # cat /sys/kernel/mm/transparent_hugepage/enabled 返回结果 [always] madvise never 永久关闭 # vim /etc/rc.local if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi 或者直接运行下面命令: # echo never > /sys/kernel/mm/transparent_hugepage/enabled # echo never > /sys/kernel/mm/transparent_hugepage/defrag 重启机器 查看状态 # cat /sys/kernel/mm/transparent_hugepage/enabled 返回结果 always madvise [never] |
3.7 授权sudo
在每台主机上给hadoop用户授权sudo
hadoop ALL=(ALL) ALL |
3.8 设置文件打开数量和用户最大进程数
1、在每台主机上设置文件打开数量和用户最大进程数
1、查看文件句柄数 # ulimit -a 2、查看应用进程打开文件句柄数 # lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 根据进程ID号来查看进程名 # ps aef|grep 24204 3、用户级限制修改 # vim /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535 * soft nproc 32000 * hard nproc 32000 4、系统级限制修改 # echo 6553560 > /proc/sys/fs/file-max (临时生效,重启机器后会失效) # vim /etc/sysctl.conf fs.file-max = 6553560 (永久生效) # reboot now |
2、设置最大虚拟内存区
echo "vm.max_map_count=262144" > /etc/sysctl.conf sysctl -p
|
3.9 主机时间同步
在每台主机上安装ntp时间同步插件
1.检查是否有时间同步的插件: # rpm -qa | grep ntp 2.没有就安装(每台都要安装): # yum -y install ntp ntpdate 3.选择一台服务器作为集群的时间服务器 比如:cancer01:时间服务器,cancer02、cancer03、cancer04、cancer05时间同步cancer01 4.查看Linux中的ntpd时间服务(这里只要开启第一 |