本教程讲述在单机环境下搭建Hadoop伪分布式集群环境,帮助初学者方便学习Hadoop相关知识。

首先安装Hadoop之前需要准备安装环境。

  • 安装Centos6.5(64位)。(操作系统再次不做过多描述,自行百度)
  • 安装JDK1.7(64位)。
  • 安装Hadoop2.2(稳定版本64位)

注意:以上三者版本需要统一,必须同为64位/32位

1.安装JDK1.7

下载JDK1.7,然后拷贝到指定目录

cd /usr/local/

解压缩:

配置环境变量:

vim /etc/profile.d/java.sh<br/>
添加如下内容:
CLASSPATH=$JAVA_HOME/lib:$CLASSPATH
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

执行:

source /etc/profile.d/java.sh

java -version显示出JDK相关信息

2.配置hosts文件,使访问更加方便

vim /etc/hosts

在文件末尾加入:

192.168.1.1(本机ip) taurus(本机域名)

3.关闭防火墙:

查看防火墙状态:service iptables status
关闭防火墙:chkconfig iptables off(永久性生效)
service iptables stop(即时生效,重启后复原)

4.SSH无密码验证配置

创建hadoop用户组

groupadd hadoop

创建hadoop用户

useradd group group

为hadoop用户设置密码

passwd hadoop

创建.ssh文件

mkdir .ssh

使用命令生成密钥:

ssh-keygen -t rsa

用公钥生成认证文件

cp id_rsa.pub authorized_keys

赋予文件权限

.ssh

 .ssh/*

然后使用ssh连接当前节点,ssh taurus(本机域名) 如果提示ssh未安装执行命令:

yum -y install openssh-clients

如果还是提示下列错误:

: Connection refused

说明ssh-server没有安装

sudo apt-get install openssh-server   进行安装

然后在使用ssh localhost应该会连接成功。

5.开始搭建伪分布式环境

下载hadoop2.2.0安装包

wget http://hadoop.f.dajiangtai.com/hadoop2.2/hadoop-2.2.0-x64.tar.gz

解压安装包:

-x64.tar.gz

重命名hadoop-2.2.0-x64.tar.gz

-x64.tag.gz  hadoop

将haddop文件夹的权限赋予hadoop用户

chown -R hadoop:hadoop hadoop

创建hadoop数据目录–3个

root@taurus:/usr/local# mkdir -p /data/dfs/name
root@taurus:/usr/local# mkdir -p /data/dfs/data
root@taurus:/usr/local# mkdir -p /data/tmp

将创建的文件夹权限赋予hadoop用户

root@taurus:/usr/local# chown -R hadoop:hadoop hadoop /data

然后切换到hadoop用户,进入hadoop文件夹下etc/hadoop目录:

su hadoop
cd etc/hadoop
vim core-site.xml

添加如下内容到core-site.xml文件

默认HDFS路径

存放数据的公共目录

设置hadoop安全机制的代理用户和用户组

Hadoop伪分布式集群环境搭建

修改hdfs-site.xml文件,添加如下内容:

Namenode文件目录

Datanode文件目录

数据快副本

HDFS权限

Hadoop伪分布式集群环境搭建

接下来配置mapred-site.xml文件:

由于没有mspred-dite.xml文件,因此需要复制mapred-site.xml.template

cp mapred-site.xml.template mapred-site.xml

vim mapred-site.xml添加如下内容:

制定mapreduce环境为yarn;

Hadoop伪分布式集群环境搭建

配置yarn-site.xml文件,添加如下内容:

为了使mapreduce程序运行起来,需要nodemanager启动加载shuffle

Hadoop伪分布式集群环境搭建

修改slaves文件:(指定namenode路径)由于当前配置伪分布时集群,所以namenode和datanode在同一个节点上。

Hadoop伪分布式集群环境搭建

配置hadoop环境变量:

su root

vim /etc/profile

添加如下内容:

Hadoop伪分布式集群环境搭建

使配置文件生效使用source命令:

source /etc/profile

以上我们就配置完成了,接下来测试运行

su hadoop

进入安装目录

cd /usr/local/hadoop

然后格式化namenode

bin/hadoop namenode -format

没有报错,接下来我们就可以启动hadoop了:

cd /usr/lcoal/hadoop
sbin/satrt-all.sh

如果启动时报Error: JAVA_HOME is not set and could not be found

解决办法:修改/etc/hadoop/hadoop-env.sh中设的JAVA_HOME。

应当使用绝对路径:

 export JAVA_HOME=${JAVA_HOME}          //文档原来的(错误)
 export JAVA_HOME=/usr/local/jdk1.       //正确,应该这么改

然后再次启动sbin/start-all.sh

成功后,jps显示如下:

Hadoop伪分布式集群环境搭建

打开浏览器:

访问http://taurus(对应你本机域名):50070 –查看namenode文件和集群的状态

接下来使用hadoop自带wordcount程序运行测试

在hadoop文件目录下,执行如下操作:

vim wordcount.txt
添加如下内容:
alan hadoop
alan hadoop
alan hadoop
保存退出

查看hadoop根目录下文件:

hadoop fs -ls /

创建一个测试目录:

hadoop fs -mkdir /taurus

将刚才创建的文件上传到测试目录:

hadoop fs -put /usr/local/hadoop/wordcount.txt /sample

执行wordcount程序:

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-example-.jar wordcount /sample/wordcount.txt  /sample/wordcount-out

在浏览器访问http://taurus(自己的域名):8088/cluster/apps

查看程序的运行状态。

Hadoop伪分布式集群环境搭建

在浏览器访问http://taurus(自己的域名):50070

查看程序的运行结果。

Hadoop伪分布式集群环境搭建