Hadoop的版本选择和单机模式

选择
Hadoop的发展中出现了2个分支,分别是1.x和2.x
Hadoop2.x相比较于Hadoop1.x来说,HDFS的架构与MapReduce的都有较大的变化,且速度上和可用性上都有了很大的提高,Hadoop2中有两个重要的变更:
1.HDFS的NameNodes可以以集群的方式布署,增强了NameNodes的水平扩展能力和可用性;
2.MapReduce将JobTracker中的资源管理及任务生命周期管理(包括定时触发及监控),拆分成两个独立的组件,并更名为YARN(Yet Another Resource Negotiator)。

8774c65b-0676-3d6c-8cc6-7c135b6a17da

鉴于2.x比起1.x存在的优势,准备使用2.x进行测试,至于选择哪个小版本,因为后期准备学习Hbase,考虑到Hadoop和Hbase的兼容性问题:

hadoop-hbase

“S” = supported “X” = not supported “NT” = Not tested
具体:http://hbase.apache.org/book.html#hadoop
所以最终选择了版本:hadoop-2.5.1

Hadoop有三种模式 单机模式、伪分布模式和完全分布模式,这里先来看最简单的单机模式
解压

tar -zxvf hadoop-2.5.1.tar.gz

修改配置文件
配置文件都在目录:hadoop-2.5.1/etc/hadoop中,由于是单机模式,所有并不需要配置修改;
当然java必须安装,并且配置java环境变量,这里使用的是:jdk1.7.0_79
/etc/profile末尾添加:

export JAVA_HOME=/root/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

为了方便使用Hadoop的命令,也可以为Hadoop配置环境变量

export HADOOP_HOME=/root/hadoop-2.5.1
export PATH=$PATH:$HADOOP_HOME/bin

查看版本信息

[root@localhost hadoop]# hadoop version
Hadoop 2.5.1

测试实例

mkdir input
cd input
echo "hello world" > t1.txt
echo "hello hadoop" > t2.txt

运行hadoop自带的wordcount实例可以统计一批文本文件中单词出现的次数

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jar wordcount input output

结果:

[root@localhost ~]# cat output/*
hadoop 1
hello 2
world 1

单机模式下已经成功统计了单纯的次数

注:单机模式下无需运行任何守护进程的,可以通过jps命令查看,所以这时候是不存在分布式文件系统的(HDFS),
所以当使用命令:

hadoop fs -ls 显示的本地系统目录