1. 安装环境
本文使用三台CentOS6.4虚拟机模拟完全分布式环境。
1.1. 安装环境
项目 | 参数 |
---|---|
主操作系统 | Windows 10 64 bit,8GB内存 |
虚拟软件 | VMware® Workstation 12 Pro 12.5.2 |
虚拟机操作系统 | CentOS6.5 64位 512MB内存 |
虚拟机数量 | 3 |
jdk版本 | java version “1.8.0_131” |
安装的hadoop版本 | hadoop-1.2.1 |
1.2. 集群环境
集群包含三个节点:1个namenode、2个datanode
主机名称 | 主机IP | 节点类型 | hadoop账号 |
---|---|---|---|
tiny1 | 192.168.132.101 | namenode | grid |
tiny2 | 192.168.132.102 | datanode | grid |
tiny3 | 192.168.132.103 | datanode | grid |
在我们的测试机上,我们使用三台虚拟机来模拟linux。我们下文中称之为tiny1、tiny2、tiny3
2. 配置hosts文件
我们希望三个主机之间都能够使用主机名称的方式相互访问而不是IP,我们需要在hosts中配置其他主机的host。因此我们在三个主机的/etc/hosts下均进行如下配置:
1. 打开hosts文件
[root@tiny1 ~]# vi /etc/hosts
2. 配置主机host
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.132.101 tiny1
192.168.132.102 tiny2
192.168.132.103 tiny3
3. 将配置发送到其他主机(同时在其他主机上配置)
[root@tiny1 etc]# scp /etc/hosts root@tiny2:/etc/hosts
[root@tiny1 etc]# scp /etc/hosts root@tiny3:/etc/hosts
4. 测试
[root@tiny1 root]$ ping tiny1
[root@tiny1 root]$ ping tiny2
[root@tiny1 root]$ ping tiny3
3.建立hadoop运行账号
我们在所有的主机下均建立一个grid账号用来运行hadoop
创建grid账号的命令如下
[root@tiny1 ~]# useradd grid
[root@tiny1 ~]# # 通过手动输入修改密码
[root@tiny1 ~]# passwd --stdin grid
更改用户 grid 的密码 。
123456
passwd: 所有的身份验证令牌已经成功更新。
测试:
[root@tiny1 ~]# su admin
[admin@tiny1 root]$ su grid
密码:
[grid@tiny1 root]$
4. 设置SSH免密码登陆
关于ssh免密码的设置,要求每两台主机之间设置免密码,自己的主机与自己的主机之间也要求设置免密码。 这项操作我们需要在hadoop用户下执行。
[root@tiny1 ~]# su grid
[grid@tiny1 ~]# ssh-keygen -t rsa
[grid@tiny1 ~]# ssh-copy-id tiny1
[grid@tiny1 ~]# ssh-copy-id tiny2
[grid@tiny1 ~]# ssh-copy-id tiny3
我们在每一台主机上执行如上命令。我们的设置结果如下,在每一台主机grid用户中的~/.ssh/authorized_keys
文件中,其内容均为:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAs5s4u1SHzkeqHHMozFWyqFj/qKwn57Gm8tpvOxSRY+5xqdEonJGvQ71AF+EOvttz/qBgEGB3UX2jp7YVIcKcc9WDoJXrb2NuBKbnP0zywDCsVQj/4KC7rQzG7YF2x8xueuDrW8nSxmNF1cYfENtYKpIITtL3cwAaVBBgwZJFTj9QN8/cMorG5aclMCETeklpUhGkSZ5Ccjc0FfGNKhnQntPqPVMBbDaSrJ31T7eONlIRymBJufAengHWYFGkEm/mnktxeDxDpVgLSEhbvwRUOeQUZzGfRcpdWwGFyQNoPTfCYKPpaQsJT7tCB97VY6aAZiaNqoN0kLEvKVAYLyhaJQ== grid@tiny1
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAs0uMn5wpUJNqxi++3i2WQu9KSv7Mj2Za4yu/8pXGFDxIEJCNEgREnfSAdrmpftRjp083RV3842zp2fqpbcE335fma7VbIcSqq20cQhWFyB1dZFP+H+f4+RbC5g31Hk5YG+DDY5dEm2B3RLDpLt0FukJcc0smN56ZwQ3JUXxe9ip8slTvtMr2ptvSg86cy+Eu7Gwt+7XHCNYIrxCzv7YQ0WilzvEpHP09wRp/K15HFHh+mTimxN2z4QERNMg77hNYEdEVrOVIhMztgakuhhSkpbyskkQuTeiyvKTLd/QL4iSFjt7dB1nieVFWCRP2yY2AsjD8nbHarBrgYojS/kslCw== grid@tiny2
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAy4h+XIl/IR8/QxtCxW8xl8QOqqZQWlL+rsI2zlhgTb+6dN4B6CE+u3/SrU8c8tLJSAXuRTg+MohIABrKRpFuu8VCLHw27JZ21c9KXpncAe+wkv3vagbH1lfxyYnBGn5XY6MEhNTx7nyBL7O55GNA92kD+JIEGvVF+NUq8yBJDBqeVFoFPU6FARI3OJi1Hlh47+gjIAIp2SP8QEhvjm+katL4+KtGgyHMkw8OYYzW6t6wjzmqgIRdzkIZI0Q0ChC8wAl8wkhwYXnbdw6m4pgSnVJ0zBhQZ5ovCHF3FR0OsrXpoe/2tpjT4LG04khTpqt2T4PC36No3dhcd/9wAw4+4Q== grid@tiny3