CentOS系统环境准备

环境要求

使用VMware虚拟机搭建基于CentOS7.5的Hadoop环境:

  • cpu核数(需要搭建3台Hadoop组成集群,加上Windows本机,所以可以分配的数量为本机的cpu核数除以4)
  • 内存至少4G
  • 硬盘最少50G

CentOS 7.5,即官方的 CentOS-7-xxxxxx-1804 版本。

创建虚拟机

创建虚拟机:

  1. 新建虚拟机,选择自定义(高级)
  2. 硬件兼容性默认
  3. 选择稍后安装操作系统
  4. 客户机操作系统选择 Linux -> CentOS7 64位
  5. 配置虚拟机名称、存储位置
  6. 处理器数量1,每个处理器内核数2.(本机总共有4核,8个逻辑处理器)
  7. 配置虚拟机内存 4G
  8. 网络类型默认的NAT
  9. IO类型、磁盘类型默认
  10. 选择 创建新虚拟磁盘
  11. 磁盘容量设置为 60G,默认将虚拟磁盘拆分成多个文件不用变
  12. 创建的磁盘文件配置到指定目录
  13. 完成

安装CentOS

安装CentOS7系统:

  1. 配置CD/DVD使用的iso文件指向下载好的 CentOS 7.5 系统镜像
  2. 启动虚拟机
  3. 选择安装CentOS7
  4. 虚拟机自动进入图形界面安装
  5. 选择中文(安装过程中使用的语言,不代表操作系统的语言),继续
  6. 修改时区、日期和时间
  7. 软件选择可以选择最小安装或者GNOME 桌面安装,本次选择桌面版
  8. 选择安装位置我要分配分区进行手动分区,大小可以参考以下配置:
    • /boot:1g(如果是最小化安装,/boot只有150多Mb),文件系统配置为 ext4
    • swap分区:4g
    • /:剩余空间分给根分区,文件系统默认xfr就行
  9. 自己实验用的虚拟机,KDUMP可以禁用kdump以节省资源。(kdump是系统崩溃前捕获系统信息,用于诊断崩溃原因,但是需要预留一部分系统内存)
  10. 网络和主机名称配置主机名称、网络。主机名例如设置为hadoop100
  11. SECURITY POLICY安全策略默认打开即可
  12. 然后便可以点击安装
  13. 安装的过程中可以配置root密码
  14. 等安装完成,点击重启
  15. 重启进来之后,点开许可协议,选择我同意许可协议
  16. 点击完成配置
  17. 选择中文汉语、打开位置、选择上海时区、跳过在线账号
  18. 创建一个用户,例如tengyer,设置密码tengyer
  19. 开始使用

配置网络静态IP

配置网络:

  1. 配置hostname,检查/etc/hostname中的主机名配置信息,例如将主机名配置为hadoop100(后面的几台集群中主机为hadoop101hadoop102hadoop103组成集群)
  2. 配置IP为静态IP,默认的为DHCP动态获取。修改/etc/sysconfig/network-scripts/ifcfg-ens33: ```properties TYPE=”Ethernet” PROXY_METHOD=”none” BROWSER_ONLY=”no”

    将DHCP动态获取修改为static静态IP

    BOOTPROTO=”static” DEFROUTE=”yes” IPV4_FAILURE_FATAL=”no” IPV6INIT=”yes” IPV6_AUTOCONF=”yes” IPV6_DEFROUTE=”yes” IPV6_FAILURE_FATAL=”no” IPV6_ADDR_GEN_MODE=”stable-privacy” NAME=”ens33” UUID=”b77a5288-57bc-4564-a2d2-3c12ab2395a9” DEVICE=”ens33” ONBOOT=”yes”

    其他保持默认即可

然后添加以下配置(根据虚拟机实际情况进行配置)

ip

IPADDR=192.168.29.100

网关(可以在VMware虚拟网络编辑器的NAT模式中 NAT设置 里面查找到)

GATEWAY=192.168.29.2

DNS

DNS1=192.168.29.2

  1. 3. 配置hosts映射,,将集群中的主机添加进来,`/etc/hosts`

192.168.29.100 hadoop100 192.168.29.101 hadoop101 192.168.29.102 hadoop102 192.168.29.103 hadoop103 192.168.29.104 hadoop104 192.168.29.105 hadoop105



4.  在Windows系统中,也讲Hosts映射加入进来。`C:\Windows\System32\drivers\etc\hosts`文件 
5.  配置好网络,使用`reboot`重启使其生效 
6.  重新进来后,使用`ifconfig`判断网络配置是否生效,`ping`一个外部网站查看是否可以连网 

<a name="8a25eddd"></a>
## 安装epel-release

Extra Packages for Enterprise Linux是为“红帽系”的操作系统提供额外的软件包,适用于 RHEL、CentOS和Scientific Linux。相当于是一个软件仓库,大多数 rpm 包在官方 repository 中是找不到的。

安装命令:

```shell
yum install -y epel-release

如果Linux安装的是最小系统板,还需要安装net-toolvim等常用工具:

# 安装ifconfig命令
yum install -y net-tools
# 安装vim编辑器
yum install -y vim

关闭防火墙

关闭防火墙,关闭防火墙的开机自启:

systemctl stop firewalld
systemctl disable firewalld.service

将自己创建的用户加入sudoers

如果安装的桌面版,在安装过程就会让创建一个非root用户。

如果安装的最小系统版,则可以手工执行命令创建一个非root用户,例如:

useradd tengyer
passwd tengyer

将该用户加入sudoers中,方便后续添加sudo执行命令。

编辑 /etc/sudoers文件(该文件默认只读,需要先添加写权限),在%wheel用户执行命令权限下面添加一行:

%wheel  ALL=(ALL)       ALL
# 在%wheel下面添加,不要直接加载 root下面。因为所有用户都属于wheel组,如果放到了root下面(%wheel上面),那么执行了NOPASSWD:ALL免密之后,程序走到%wheel时就又会被覆盖回需要密码
tengyer ALL=(ALL) NOPASSWD:ALL

创建文件夹,准备环境

/opt下创建文件夹modulesoftware

# 软件安装位置
sudo mkdir module
# 软件安装包存放位置
sudo mkdir software
sudo chown tengyer:tengyer module/ software/

卸载自带的JDK

检查系统中自带的JDK:

rpm -qa | grep -i java

卸载自带的JDK:(需要以root用户运行)

# grep -i 忽略大小写
# xargs 将前面的输出结果作为命令的参数
# -n1 每次只取一个结果作为命令参数。如果不加,则会将所有结果以空格分隔拼接作为命令的参数
# rpm -e --nodeps:不验证套件档的相互关联性进行卸载
rpm -qa | grep -i java | grep -v ".noarch" | xargs -n1 rpm -e  --nodeps

克隆虚拟机

因为我们要搭建集群,所以需要再克隆出几台虚拟机出来。

hadoop100虚拟机关机,然后创建完整克隆。克隆出 hadoop102hadoop103hadoop104几台主机。(hadop101用于后面搭建伪分布式,分析源码,本次先不搭建进集群中)。

克隆完成之后,还需要依次修改 hadoop102hadoop103hadoop104的ip和hostname。