Hadoop-2.4.1完全分布式环境搭建
Hadoop-2.4.1完全分布式环境搭建
一、配置步骤如下:
- 主机环境搭建,这里是使用了5台虚拟机,在ubuntu 13系统上进行搭建hadoop环境。
- 创建hadoop用户组以及hadoop用户,并给hadoop用户分配权限。
- 免密码登陆,为5台主机进行免密码登陆配置。
- 安装hadoop以及jdk,并配置环境变量。
- Hadoop分布式环境参数配置。
二、主机环境搭建:
在虚拟机上安装5台虚拟主机并分别安装好hadoop系统,然后分别完成以下操作。
1. 设定静态ip地址,这里的虚拟机使用的是NAT上网模式,配置命令如下:
a) 配置静态地址
sudo gedit /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.182.132
netmask 255.255.255.0
gateway 192.168.182.1
b) 配置网关
sudo gedit /etc/resolv.conf
nameserver 192.168.182.1
c) 重启网络
/etc/init.d/networking restart
2. 修改主机名,打开hostname文件,分别将主机名修改为master,slave1,slave2,slave3,slave4
sudo gedit /etc/hostname
3. 修好主机配置文件,打开hosts文件,我的主机配置是这样的:
sudo gedit /etc/hosts
192.168.182.132 master
192.168.182.134 slave1
192.168.182.135 slave2
192.168.182.136 slave3
192.168.182.137 slave4
三、添加用户
1. 创建hadoop用户组
sudo addgroup hadoop
2. 创建hadoop用户
sudo adduser -ingroup hadoop hadoop
3. 给hadoop用户添加权限,打开/etc/sudoers文件
sudo gedit /etc/sudoers
按回车键后就会打开/etc/sudoers文件了,给hadoop用户赋予root用户同样的权限
在root ALL=(ALL:ALL) ALL下添加hadoop ALL=(ALL:ALL) ALL
四、配置master到slave的免密码登陆
1. 安装ssh服务
sudo apt-get install ssh openssh-server
2. 配置master到slave的免密码登陆(这里以slave1为例,其他slave操作一致)
master生成authorized_key
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cd .ssh/
cat id_dsa.pub >> authorized_keys
slave1添加master的authorized_key到本地
scp yss@master:~/.ssh/id_dsa.pub ./master_dsa.pub
cat master_dsa.pub >> authorized_keys
五、安装hadoop和jdk,配置环境变量
hadoop安装包版本是2.4.1,jdk使用的是1.7.0_65版本,分别到官网上去下载。
hadoop,jdk分别解压到/home/hadoop/hadoop-2.4.1,/home/hadoop/jdk1.7.0_65目录下,配置环境变量如下:
sudo gedit /etc/profile
HADOOP_HOME=/home/hadoop/hadoop-2.4.1
JAVA_HOME=/home/hadoop/jdk1.7.0_65
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib:$CLASSPATH
export HADOOP_HOME
export JAVA_HOME
export PATH
export CLASSPATH
source /etc/profile
注:配置环境变量应该在最后一步,各个节点都需要单独配置
六、配置hadoop环境
core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
<final>true</final>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.4.1/tmp</value>
<description>A base for other temporary directories.</description>
</property>
</configuration>
Hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/hadoop-2.4.1/name</value>
<final>true</final>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hadoop-2.4.1/data</value>
<final>true</final>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<final>true</final>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.182.132:9001</value>
</property>
</configuration>
注:五、六步骤中都只是配置的master节点,master配置完成后将/home/hadoop/文件夹拷到各个slave
scp -r ./hadoop slave1:/home
七、启动Hadoop
1. 格式化namenode
在master节点执行下面命令:
hadoop namenode format
2. 启动服务
进去master节点/home/hadoop/hadoop-2.4.1/sbin目录,执行如下命令:
./start-all.sh
下面是停止Hadoop服务命令:
./stop-all.sh
3. master有如下进程:
hadoop@master: /home/hadoop/hadoop-2.4.1/sbin $jps
21211 Jps
7421 SecondaryNameNode
7154 NameNode
7968 ResourceManager
4. slave1有如下进程
hadoop@ slave1: /home/hadoop/hadoop-2.4.1/sbin $jps
3612 NameNode
3723 Jps
3367 DataNode
5. 查看集群状态
http://master:8088/