Hadoop集群搭建

集群简介:
本集群中共有三台机器,分别是:
master 192.168.10.1
slave1 192.168.10.2
slave2 192.168.10.3,其中在启动hadoop后,master有namenode和datanode两个node进程,slave1和slave2只有一个node进程,就是datanode进程。

版本介绍:
linux CentOS-5.8-x86_64-bin-DVD-1of2
jdk jdk-6u45-linux-x64.bin
hadoop hadoop-2.6.0-64

搭建集群是在一台机器上完成hadoop的安装,然后进行复制,对副本进行些许修改后即成为hadoop集群。

一、部署过程
1、准备工作

1)配置IP,修改虚拟机网络选项

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

修改内容

BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.10.1(192.168.10.2或者192.168.10.3)
NETMASK=255.255.255.0
GATEWAY=192.168.10.253

立即生效

service network restart

2)修改当前机器名称

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master(slave1,slave2)

重启生效

3)配置hosts文件

vi /etc/hosts

192.168.10.1 master
192.168.10.2 slave1
192.168.10.3 slave2

检查: ping master

4)修改虚拟机网络选项
仅主机host-only 适配器

5)安装jdk
使用filezilla.exe软件,用root用户上传,上传至/usr/local

# cd /usr/local/

修改权限(因为本人上传文件为jdk-6u45-linux-x64.bin,若为.tar.gz可直接解压)

 #chmod 700 jdk-6u45-linux-x64.bin		

安装jdk

#./jdk-6u45-linux-x64.bin

创建软连接

ln -s /usr/local/jdk1.6.0_45  /usr/local/jdk

修环境变量

# touch /etc/profile.d/java.sh
# vi /etc/profile.d/java.sh

修改内容:

export JAVA_HOME=/usr/local/jdk
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin

使环境变量立即生效

source /etc/profile

2、安装hadoop
1)创建使用hadoop的用户帐户

# /usr/sbin/groupadd hadoop         
# /usr/sbin/useradd hadoop -g hadoop

2)设置密码

# passwd hadoop
hadoop

3)创建hadoop工作目录/数据目录

 mkdir -p /application/hadoop
 mkdir -p /data/hadoop
 mkdir -p /data/hadoop/hdfs/name
 mkdir -p /data/hadoop/hdfs/data
 mkdir -p /data/hadoop/hdfs/namesecondary
 mkdir -p /data/hadoop/hdfs/tmp 
 mkdir -p /data/hadoop/mapred/mrlocal
 mkdir -p /data/hadoop/mapred/mrsystem
 mkdir -p /data/hadoop/hdfs/journal/
 mkdir -p /data/hadoop/zoo
 mkdir -p /data/hadoop/mapred/mrlocal
 mkdir -p /data/hadoop/mapred/logs

 chown -R hadoop:hadoop /data/hadoop
 chown -R hadoop:hadoop /application/hadoop

4)使用filezilla软件,hadoop用户,上传hadoop-2.6.0-64.tar.gz,路径为/application/hadoop
解压文件

# tar -zxvf hadoop-2.6.0-64.tar.gz

创建软连接

# ln -s  /application/hadoop/hadoop-2.6.0  /application/hadoop/hadoop

5)修改配置文件
配置文件路径为/application/hadoop/hadoop/etc/hadoop

共需要配置7个文件:
hadoop-env.sh 修改JAVA_HOME
yarn-env.sh 修改JAVA_HOME
Slaves 增加slave节点,设为master,slave1,slave2
core-site.xml 增加hadoop核心配置,设置hdfs文件端口(9000)和路径
hdfs-site.xml 增加hdfs配置信息,设置namenode、datanode端口和目录位置
mapred-site.xml 增加mapreduce配置,使用yarn框架、jobhistory使用地址以及web地址
yarn-site.xml 增加yarn功能

6)配置环境变量

vi /etc/profile.d/java.sh

修改内容:

export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/application/hadoop/hadoop
export HADOOP_PREFIX=/application/hadoop/hadoop
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:HADOOP_HOME/bin:$PATH

立即生效

source /etc/profile

检查:

echo $JAVA_HOME
echo $HADOOP_HOME

3、其他配置
1)关闭防火墙

# service iptables stop
# chkconfig iptables stop
# iptables -F
# /etc/init.d/iptables save
# vi /etc/selinux/config
SELINUX=disabled

2)设置ssh登录
注意:使用hadoop用户登录,关闭putty,重新登录。

$ cd /home/hadoop
$ mkdir .ssh
$ chmod 755 .ssh
$ cd .ssh
$ ssh-keygen -t rsa -P ''

//询问保存路径时直接[按回车]采用默认路径

$ cat id_rsa.pub  >> authorized_keys
$ chmod 600 authorized_keys

测试:远程登录创建目录

ssh master
exit

若能成功登录,则设置成功。

4、复制工作
1)关闭虚拟机,复制两份
2)打开副本虚拟机,设置IP和hostname
修改Linux主机名

vi /etc/sysconfig/network
HOSTNAME=slave1(slave2)

修改IP

vi /etc/sysconfig/network-scritps/ifcfg-eth0
IPADDR=192.168.10.2(192.168.10.3)	
#HWADDR	注释此行

删除一个文件,若没有则可忽略。

rm -rf /etc/udev/rules.d/70-persistent-net.rules

随后进行重启。

5、启动hadoop集群
1)在启动集群前,首先要将namenode 初始化,现在master上执行此语句,在通过远程登录到slave1和slave2,进程初始化。

$ /application/hadoop/hadoop/bin/hdfs namenode -format

2)随后就可启动hadoop集群,按顺序执行下列语句:

/application/hadoop/hadoop/sbin/start-dfs.sh
/application/hadoop/hadoop/sbin/start-yarn.sh

3)可通过jps来检验进程是否全都启动,也可通过http://192.168.10.1:50070或者http://192.168.10.1:8080检验。
master中的进程:
这里写图片描述

slave1中的进程:
这里写图片描述

Slave2中的进程:
这里写图片描述

http://192.168.10.1:8088验查结果:
这里写图片描述

这里写图片描述

http://192.168.10.1:50070验查结果:
这里写图片描述

这里写图片描述

6、停止hadoop hdfs集群
按顺序执行下列语句可停止集群。

/application/hadoop/hadoop/sbin/stop-yarn.sh
/application/hadoop/hadoop/sbin/stop-dfs.sh 

二、部署之后运行测试程序
在hdfs创建目录

$  /application/hadoop/hadoop/bin/hadoop fs -mkdir /input 

将dada文件上传到input目录下(下列语句为一行)

$ /application/hadoop/hadoop/bin/hadoop fs 
-put  /application/hadoop/hadoop/test_data/data  /input 

可查看data内容

$  /application/hadoop/hadoop/bin/hadoop fs -cat /input/data 

执行测试程序(下列语句为一行)

/application/hadoop/hadoop/bin/hadoop	jar 	/application/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount	/input	/output

三、部署过程中遇到的问题
1)在启动hadoop时,出现了错误,截图如下:
这里写图片描述

由日志中得到原因是因为datanode和namenode的clusterID不匹配,在hdfs-site.xml中配置了datanode和namenode对应的目录,在对应目录下打开current文件夹里的VERSION文件,可以看到各自对应的clusterID的确不一致。出现此现象的原因是因为在三台机器完成配置后,各自格式化了namenode一次,然后启动hadoop集群之后又再次格式化了namenode。解决办法就是将全部datanode对应的目录删除掉,重新启动dfs即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值