Hadoop集群搭建(完全分布式)
实验环境
∎ 系统:64位Linux系统(ubuntu-12.04.3-desktop-amd.iso)
∎ JDK:64位 jdk-6u45-linux-x64.bin
∎ Hadoop版本:hadoop-1.2.1.tar.gz
∎ Eclipse版本:eclipse-standard-kepler-R-linux-gtk-64.tar.gz
∎ Hadoop插件:hadoop-eclipse-plugin-1.2.1.jar
∎ 硬件环境:三台PC机
Hadoop只能用JDK1.6以上版本
安装完Linux系统Ubuntu之后,然后做接下来的工作:
一、准备安装环境
本机环境是安装windows7和Ubuntu双系统。集群环境为一个master,两个slave,节点代号分别为master、slave1、slave2。要保证三个节点IP地址可以ping通,并在/etc/hosts中进行配置
机器名 |
IP地址 |
作用 |
Master |
192.168.1.120 |
NameNode、JobTracker |
Slave1 |
192.168.1.100 |
DataNode、TaskTracker |
Slave2 |
192.168.1.110 |
DataNode、TaskTracker |
下面开始安装环境
1、启动root超级用户
与其他linux版本不同,Ubuntu安装时默认使用一个非root用户,在首次进入系统后,需要启用root超级用户,以便后面获得一些权限。
方法:以普通用户登录,进入终端(Ctrl+Alt+T)输入命令:
sudo passwd root
然后会提示输入密码:root
若是想以root用户登录系统,则需要在lightdm.conf中写入以下语句:
vi /etc/lightdm/lightdm.conf
greeter-show-manual-login=true # 禁用客人会话
allow-guest=false #开启图形登陆
如下图所示
完成之后重启系统,以root用户名和密码登录进行以后所有的操作;没有配置lightdm.conf的话,可以在普通用户登陆的情况下,控制台中使用suroot 进行账户切换。
2、配置节点host文件,修改主机名
hosts文件是最重要的配置文件,在hosts文件中会配置namenode和datanode的ip
方法:
按照在所有namenode和datanode节点的/etc/hosts文件中添加节点ip和对
应的机器名,所有节结点的hosts文件相同:既包含namenode的IP又包含
datanode的IP
vi/etc/hosts
其中各个节点master、slave1、slave2的配置如下:
192.168.1.120 master
192.168.1.100 slave1
192.168.1.110 slave2
若是机器名和别名不一致,则可以将机器名修改和对应别名一致,如本集群的master主机名为student-OptiPlex-380,则可将其修改为master即可;或者直接在hosts里将其机器名也配置上,配置结果如图
3、添加用户
在root权限下使用以下命令添加hadoop用户,在三个虚拟机上都添加这个用户
sudo adduser hadoop
如下图所示
4、关闭Linux防火墙
推荐关闭Linux防火墙,原因是,遇到很多很多蛋疼的问题都与防火墙有关,所以推荐关闭防火墙,目前没找到什么好的办法
方法:
命令行输入
sudo ufw disable
二、安装JDK
Hadoop只能用JDK1.6以上版本
1、下载JDK
64位 jdk-6u45-linux-x64.bin下载地址
2、解压安装
进入文件所在目录,将文件拷贝到/home/hadoop下,如下图所示
然后修改jdk安装包权限
执行:
./jdk-6u45-linux-x64.bin
此处解压到: /home/hadoop/jdk1.6.0_45
3、修改环境变量
切换到root用户下
su root
进入
vi /etc/profile
然后在profile最后添加
export JAVA_HOME=/home/hadoop/jdk1.6.0_45
export PATH=$PATH:JAVA_HOME/bin
exportCLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
如下图
保存退出,输入以下命令使之立即生效:
source ~/.profile
4、测试
执行java -version 看到相对应的版本信息则配置成功,如下图
若是出现多个需要选择性安装提示,则需要进行下面第5步的配置
5、配置默认JDK
由于Ubuntu中可能会有默认的JDK,如openjdk,所以,为了将我们安装的JDK