Hadoop集群环境搭建(一)

1、搭建过程总览

通过克隆方式准备3台虚拟机(NAT网络模式、静态ip、主机名称、关闭防火墙)

1) 通过克隆方式准备3台虚拟机(NAT网络模式、静态ip、主机名称、关闭防火墙)

a) 设置静态ip

vim  /etc/udev/rules.d/70-persistent-net.rules(拷贝物理地址)

vim  /etc/sysconfig/network-scripts/ifcfg-eth0(配置静态ip等)

b) 配置主机名及主机名与ip的映射

vim  /etc/sysconfig/network(修改主机名)

vim   /etc/hosts(配置主机名与ip的映射关系)

c) 重启配置生效

reboot

2) 虚拟机环境配置

a) 关闭防火墙

b) 关闭selinux

c) 三台机器免密登录

d) 三台机器时钟同步

3) 安装jdk(rpm)

a) 配置jdk环境变量

4)配置hadoop集群

5)启动测试集群

​​​​​​​2、集群规划

IP

主机名

环境配置

安装

192.168.110.101

hadoop101

1.关闭防火墙

2.关闭selinux

3.三台机器免密登录

4.三台机器时钟同步

1.阿里云的时钟同步服务器

2.lrzsz软件(用于命令行上传)

3.jdk

192.168.110.102

hadoop102

1.关闭防火墙

2.关闭selinux

3.三台机器免密登录

4.三台机器时钟同步

1.阿里云的时钟同步服务器

2.lrzsz软件(用于命令行上传)

3.jdk

192.168.110.103

hadoop103

1.关闭防火墙

2.关闭selinux

3.三台机器免密登录

4.三台机器时钟同步

1.阿里云的时钟同步服务器

2.lrzsz软件(用于命令行上传)

3.jdk

​​​​​​​3、电脑虚拟网卡VMnet8设置

通过控制面板——网络和Internet——查看网络状态与任务

并选择“更改适配器设置”

选择VMware Network Adapter VMnet8,通过右键菜单选择属性

双击打开Internet协议版本4(TCP/IPv4)

依次设置IP地址、子网掩码、默认网关、首选DNS服务器如下。

​​​​​​​4、克隆机器

考虑到同时运行3台虚拟机,如果带图形化界面,将极大消耗内存。这里就使用了不带图形化界面的版本。

从头开始,解压centos6.9-clean-machine.zip到当前文件夹。然后进入centos6.9-clean-machine目录修改里面的CentOS 6 64位.vmx文件(用notepad++打开编辑),修改VMware版本位15(与VMWare对应)。

virtualHW.version = "15"

保存后,在VMWare中打开CentOS 6 64位.vmx

以此为模板,克隆3份

同样的方式克隆三次,注意:第一、二、三台虚拟名称为:hadoop101、hadoop102、hadoop103,克隆路径也不一样

在VMware虚拟机软件上新建一个文件hadoop_03,将三台虚拟机装在一起。

虚拟机在电脑上的文件存储如下:

​​​​​​​5、设置三台虚拟机的硬盘至少为30G,内存至少为2G 

如果原来的硬盘已经大于30G,则无法扩展。

​​​​​​​6、虚拟机网络模式设置为NAT

​​​​​​​7、设置静态IP

在终端命令窗口中输入

vim /etc/udev/rules.d/70-persistent-net.rules

进入如下页面,删除eth0该行;将eth1修改为eth0,同时复制物理ip地址

记录下hadoop101的物理IP地址为:00:0c:29:7f:24:b3

然后修改IP地址

vim /etc/sysconfig/network-scripts/ifcfg-eth0

修改前的内容如下:

修改如下:

HWADDR=00:0c:29:7f:24:b3 

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.110.101

NETMASK=255.255.255.0

GATEWAY=192.168.110.2

DNS1=8.8.8.8

修改后的内容如下:

​​​​​​​8、修改主机名

进入Linux系统查看本机的主机名。通过hostname命令查看

hostname

如果感觉此主机名不合适,我们可以进行修改。通过编辑/etc/sysconfig/network文件

vim /etc/sysconfig/network

修改HOSTNAME即可。注意,主机名不能有“_”下划线:

打开此文件后,可以看到主机名。修改此主机名为我们想要修改的主机名hadoop101

保存退出。

​​​​​​​9、设置ip和域名的映射

打开/etc/hosts

vim /etc/hosts

添加如下内容:

192.168.110.101 hadoop101.hadoop.com hadoop101

192.168.110.102 hadoop102.hadoop.com hadoop102

192.168.110.103 hadoop103.hadoop.com hadoop103

修改后如下:

​​​​​​​10、重启虚拟机让设置生效

输入reboot命令重启

reboot 

虚拟机设置成功标志:能够ping通网络。

​​​​​​​11、第二台和第三台虚拟机重复以上设置

重复3.2.6~3.2.10的步骤。设置第二台第三台虚拟机。

注意:根据集群规划配置静态ip和主机名,每台虚拟机的物理地址不能一样。

hadoop102的MAC地址为:“00:0c:29:5b:9d:77”

hadoop103的MAC地址为:“00:0c:29:04:52:3d”

​​​​​​​12、三台机器拍摄快照

快照的作用类似于一个系统还原点,一个虚拟系统里可以存在多个快照。利用快照可进行系统和数据还原。

当搭建好一个环境后,在没有添加任何数据时,或改变系统环境时,可以启用快照功能,虚拟机会保存虚拟系统里当前的环境,包括所安装的软件等设置;

当环境改变或需要重新搭建并系统初始化时,为免安装其他大型软件,可以启用快照的保存点进行恢复。作用就达到了快捷搭建环境的作用,也可以说是一种备份。

三台虚拟机准备好之后,我们为每台虚拟机拍摄快照,以第一台为例:

​​​​​​​13、三台虚拟机关闭防火墙

使用SecureCRT快速连接三台虚拟机并显示交互窗口

三台机器执行如下命令:(使用root用户来执行)

service iptables stop # 关闭防火墙

chkconfig iptables off # 禁止开机启动

service iptables status # 查看防火墙状态

可以在SecureCRT用到交互窗口(将命令发送给三台机器)

勾选“send commands to All Sessions”,输入命令,然后按回车,即可把命令发送给所有窗口。

​​​​​​​14、三台虚拟机关闭selinux

什么是SELinux?

1) SELinux是Linux的一种安全子系统。

2) Linux中的权限管理是针对于文件的, 而不是针对进程的, 也就是说, 如果root启动了某个进程, 则这个进程可以操作任何一个文件。

3) SELinux在Linux的文件权限之外, 增加了对进程的限制, 进程只能在进程允许的范围内操作资源。

为什么要关闭SELinux?

如果开启了SELinux, 需要做非常复杂的配置, 才能正常使用系统, 在学习阶段, 在非生产环境, 一般不使用SELinux。

SELinux的工作模式:

  1. enforcing 强制模式
  2. permissive 宽容模式
  3. disabled 关闭模式

三台虚拟机都修改selinux的配置文件,把SELinux设置为关闭模式,为免密登录做准备:

修改配置文件:vim /etc/selinux/config

让配置文件生效:source /etc/selinux/config

三台虚拟机拍摄快照

​​​​​​​15、三台虚拟机设置免密登陆

为什么要免密登录?

Hadoop 节点众多, 所以一般在主节点启动从节点, 这个时候就需要程序自动在主节点登录到从节点中, 如果不能免密就每次都要输入密码, 非常麻烦。

免密登录的原理:

1) 需要先在 B节点 配置 A节点 的公钥

2) A节点 请求 B节点 要求登录

3) B节点 使用 A节点 的公钥, 加密一段随机文本

4) A节点 使用私钥解密, 并发回给 B节点

5) B节点 验证文本是否正确

设置免密登录:

1.在三台机器执行以下命令,生成公钥与私钥:

ssh-keygen -t rsa

执行该命令之后,按下三个回车即可

2.拷贝公钥到同一台机器

三台机器将拷贝公钥到第一台机器

三台机器执行命令:

ssh-copy-id hadoop101

然后输入:yes

再输入hadoop101的root用户登录密码:123456

3.复制第一台机器的认证到其他机器

将第一台机器的公钥拷贝到其他机器上

只在第一台机器上面执行以下命令(注意只有第一台机器上有 /root/.ssh/authorized_keys文件,其他机器都没有。)

scp /root/.ssh/authorized_keys hadoop102:/root/.ssh

scp /root/.ssh/authorized_keys hadoop103:/root/.ssh

执行命令后,第二台第三台机器上就都有 /root/.ssh/authorized_keys 文件了。

验证相互登陆

ssh hadoop101

ssh hadoop102

ssh hadoop103

​​​​​​​16、三台虚拟机设置时钟同步

为什么需要时间同步?

因为很多分布式系统是有状态的, 比如说存储一个数据, A节点 记录的时间是 1, B节点 记录的时间是 2, 就会出问题。

解决方案:

选用第一种方案:

1.给每台机器安装阿里云的时钟同步服务器。

2.设置定时任务每一分钟与阿里云云端的时钟同步服务器同步一次。

步骤:

1. 给三台虚拟机安装阿里云的时钟同步服务器,命令如下:

yum install -y ntp

注意:yum显示失败时,可以输入如下5步:

sed -i "s|enabled=1|enabled=0|g" /etc/yum/pluginconf.d/fastestmirror.conf

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo

yum clean all

yum makecache

2. 设置定时任务,命令如下:

crontab -e

进入编辑模式:i

随后在输入界面写入:

*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;

保存退出:输入:wq

3. 验证是否成功,命令如下:

crontab –l # 小写的L

4. 三台虚拟机拍摄快照

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Distantfbc

你的鼓励是我最大的动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值