Apache Hadoop的完全分布式集群环境准备
Hadoop搭建方式:
-
单机模式:单节点模式,非集群,生产不会使用这种方式;
-
单机伪分布式模式:单节点,多线程模拟集群的效果,生产不会使用这种方式;
-
完全分布式模式:多台节点,真正的分布式Hadoop集群的搭建(生产环境建议使用这种方式);
VMware Workstation安装
-
双击运行安装包程序。
-
接受许可证协议。
-
选择安装位置,建议非中文无空格,增强型键盘驱动程序可选。
-
按照自身使用习惯勾选产品更新和客户体验提升计划。
-
勾选,桌面和开始创建快捷方式。
-
开始安装。
-
可输入许可证也可直接完成,如直接完成需要在打开软件时输入许可证。
-
稍等一会儿,完成。
CentOS安装
-
在VMware中新建虚拟机。
-
默认即可,不需要做任何修改,直接下一步。
-
选择稍后安装操作系统,然后下一步。
-
选择安装的操作系统为Linux,版本为CentOS7 64位。
-
虚拟机命名,可随意取, 安装位置最好选择固态硬盘(有固态的情况)。
-
按照物理机CPU实际情况,选择处理器配置, 处理器数量*每个处理器内存数量要小于等于物理机CPU的数量,否则报错。选择虚拟机CPU配置。
-
选择分配给虚拟机的内存,最少2G,后续建议适当调大。
-
网络类型选择NAT。
-
I/O控制器类型选择默认推荐即可。
-
磁盘类型选择SCSI。
-
选择创建新虚拟磁盘。
-
磁盘容量指定50G,选择将虚拟磁盘拆分成多个文件. 不要勾选立即分配所有磁盘空间,否则会直接占用50G大小的磁盘空间。
-
选择Linux文件的存储位置,建议选择到Linux的安装位置,存储到第5步选择的目录下。
-
装机器完成。 点击完成即可。如果想更改配置,可点击自定义硬件。对之前步骤的选择进行更改。
-
装系统,选择系统盘位置。
-
开启虚拟机。
-
进入倒计时,鼠标点进去, 键盘上下键可以选择,选择Install CentOS 7,然后回车即可。不要选择Test this media & install CentOS 7。
-
选择安装语言为简体中文。
-
设置日期和时间 选择亚洲/上海。
-
设置软件选择。
-
设置安装位置,即进行分区。
-
选择我要配置分区,然后点左上角完成进入分区界面。
-
第一个分区: /boot 引导分区,建议给1G。
-
修改设备类型为标准分区,文件系统为ext4。
-
第二个分区 swap 交换分区,建议设置与内存大小一致 2G。
-
修改设备类型为标准分区,文件系统为swap。
-
第三个分区 / , 剩余的磁盘大小全部分配。 /为linux文件系统的根目录。
-
修改设备类型为标准分区,文件系统为ext4。
-
确认最终分区后的情况,点击左上角完成即可。
-
关闭KDUMP。
-
配置网络和主机名(可选,也可在安装好后进入到系统中配置)。
-
配置ROOT密码。Linux会默认提供一个超级管理员用户,就是root。 类似于Windows的admin用户。
-
等待安装完成,预估10分钟左右。
-
安装完成,重启虚拟机。
配置网络IP和网关
-
查看网络IP和网关。VMware点击编辑选择虚拟网络编辑器。
-
点击更改配置。
-
选择NAT模式,注意⼦⽹IP前三位与NAT设置的⽹关IP⼀致。
-
点击DHCP设置,⼦⽹IP前三位与DHCP设置的起始IP、结束IP⼀致。
-
打开Linux虚拟机的ifcfg-ens33⽂件,修改配置。进入虚拟机,输入以下命令。
1
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO改为静态static。IP的配置方法none|static|bootp|dhcp(引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)。
ONBOOT改为yes开启⾃动启⽤⽹络连接。系统启动的时候网络接口是否有效(yes/no)。
添加IP地址IPADDR,网关GATEWAY,子网掩码NETMASK,域名解析器DNS1。
IPADDR可以改为你⾃⼰设置的ip (ip可以通过命令ip addr来获得)。
-
执行service network restart 重启网络。
-
ping外网是否连通
1
ping baidu.com
-
关闭防火墙
1
2
3systemctl status firewalld.service 查看firewall状态
systemctl stop firewalld.service 停⽌firewall
systemctl disable firewalld.service 禁⽌firewall开机启动 -
配置yum源(默认的系统YUM源,需要连接国外apache网站,网速比较慢,可以修改关联的网络YUM源为国内镜像的网站,比如网易163,aliyun等)。
清理一下缓存,缓存新数据。
1 | yum clean all |
-
安裝常用软件
1
2yum install -y epel-release
yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git -
克隆hadoop需要的3台主机(一定关机了,完整克隆)。
克隆出来两个虚拟机名为linux02,linux03,然后分别启动,修改 ifcfg-ens33 这个文件中的 IPADDR 为192.168.80.122,192.168.80.123。
-
修改本机以及网络配置hostname
修改配置文件 /etc/hostname ,保存并退出。
1
2vi /etc/hostname
# 进入vi,删除旧主机名,输入新主机名,Esc后冒号 wq退出保存分别打开三个虚拟机,通过 vi /etc/sysconfig/network 打开 network 编辑,分别输入对应的ip地址和hostname。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15NETWORK=yes
RORWARD_IPV4=yes
HOSTNAME=deep.openarch.com
GAREWAY=0.0.0.0
GATEWAYDEV=
NETWORK=yes/no 网络是否被配置;
FORWARD_IPV4=yes/no 是否开启IP转发功能
HOSTNAME=hostname hostname表示服务器的主机名最后重启生效。
1
reboot
-
配置IP映射
分别打开三个虚拟机,通过 vi /etc/hosts 打开 hosts 编辑。
三个虚拟机编辑内容是一致的。
-
修改window主机的IP映射
编辑内容与虚拟机是一致的。
-
虚拟机互相访问免密
ssh-keygen -t rsa (三个回车)
ssh-copy-id linux01; ssh-copy-id linux02; ssh-copy-id linux03
ssh linux01; ssh linux02; ssh linux03
-
虚拟机同步时间
-
每个虚拟机都安装ntpdate工具
1
yum -y install ntp ntpdate
-
每个虚拟机都设置系统时间与网络时间同步
1
ntpdate cn.pool.ntp.org
-
-
修改克隆环境的账号密码
- 知道root用户密码时
修改root用户密码
在root用户登录的情况下,执行以下指令,进入密码修改界面
1
2
3passwd
# passwd命令后不加用户名,表示修改当前用户的密码
输入新密码即可,无需重启Linux系统。修改普通用户密码(普通用户账号密码登录时,只能修改自己的密码)
1
2
3
4more /etc/passwd #查看当前所有用户,自己创建的用户,在最后
passwd es #更改用户 es 的密码
#输入新的密码
#root用户登录时,运行passwd 命令,可以设置或修改任何用户的密码。- 知道一个普通用户的账号密码
在普通用户登录的情况下,修改root用户密码
1
2
3sudo passwd root # 会要求输入普通用户的密码
输入后,会显示“enter new Unix password”
这就是修改root用户密码,输入并确认密码后,即成功修改root用户密码修改普通用户自己的密码
1
passwd // 进入修改密码界面,输入新密码即可
- 忘记所有用户密码,修改root密码
重启Centos环境,在开机过程中,快速按下键盘上的方向键↑和↓。
使用↑和↓将选择行设置为第一行(背景高亮即为选中),按下键盘上的e,进入编辑模式。
将光标一直移动到 LANG=en_US.UTF-8 后面,空格,再追加init=/bin/sh。这里特别注意,需要写在UTF-8后,保持在同一行,并注意空格。有些虚拟机由于屏幕太小,会自动添加\换行,这个是正常的
按下CTRL+X进行引导启动,成功后进入该界面。
设置密码,执行命令
1
2
3
4
5
6
7
8
9
10
11
12
13
141、挂载根目录
mount -o remount, rw /
2、选择要修改密码的用户名,这里选择root用户进行修改,可以更换为你要修改的用户
passwd root
3、输入2次一样的新密码,注意输入密码的时候屏幕上不会有字符出现。输入完成点回车。
如果输入的密码太简单,会提示警告(BAD PASSWORD:Thepassword fails the dictionary check - it is too simplistic/systematic),可以无视它,继续输入密码,不过建议还是设置比较复杂一些的密码,以保证安全性
4、如果已经开启了SElinux,则需要输入以下命令
touch /.autorelabel
5、最后输入以下命令重启系统即可
exec /sbin/init