背景
之前的时间里对Hadoop的使用都是基于学长所搭建起的实验环境的,没有完整的自己部署和维护过,最近抽时间初体验了在集群环境下装机、配置、运行的全过程,梳理总结到本文中。
配置
- 内存:8G
- CPU:i5-2400 3.1GHz;
- 硬盘:960G
- 系统:windows 7旗舰 64bits
- 虚拟机:VMware7.1.1
- 虚拟集群:
- T (master节点)Ubuntu11.04 32 bits 内存512MB;硬盘100G;单核;
- T2(slave节点) Ubuntu11.04 32 bits 内存512MB;硬盘100G;单核;
- T3(slave节点) Ubuntu11.04 32 bits 内存512MB;硬盘100G;单核;
- T4(slave节点) Ubuntu11.04 32 bits 内存512MB;硬盘100G;单核;
环境准备
1.节点机器的配置
配置固定IP:修改/etc/nerwork/interfaces auto lo iface lo inet loopback address 192.168.108.131 gateway 192.168.108.2 netmask 192.168.108.0 broadcast 192.168.108.0
为了便于管理,建议按统一约定修改hostname:修改/etc/hostname;同时,Hadoop集群要求每个节点使用同一个账号来管理、运行,所以,也需要设置好公用账号。
2.集群ssh配置
ssh相关原理和操作,参见博文《SSH原理和使用》。
在每台机器上生成密钥对,并将所有机器的公钥集成到master的~/.ssh/authorized_keys中,之后将这个文件分发到集群所有机器上。 这样,所有机器之间都可以实现免密码的ssh访问了。
使用如下指令,可以将本机的公钥添加到master的authorized_keys文件末尾。当所有节点都执行一遍以后,再将master的authorized_keys发布到各个节点上。
cat .ssh/id_rsa.pub | ssh T 'cat >> ~/.ssh/authorized_keys'
3.工具脚本
在分布式的环境里,运维工作的自动化很有必要。为了方便集群的运维,我写了两个简单的batch脚本。