Hadoop的安装有三种运行模式:
支持Linux和Windows,但是个人觉得既然大部分生产环境都是Linux集群,索性就只关注Linux的部署即可,需要时再查就行,有兴趣可以看在Windows上安装Hadoop。
当前Hadoop有三个分支:
上面是当前官网提供的信息,我使用的版本是2.4.1,略低于当前的2.5.1。
环境变量JAVA_HOME是必需的,通常在安装JDK的时候就已经配置了。如果没有配置JAVA_HOME,则需要在$HADOOP_HOME/etc/hadoop/目录中的hadoop-env.sh
、mapred-env.sh
、yarn-env.sh
中增加JAVA_HOME目录地址。
环境变量HADOOP_HOME或HADOOP_PREFIX指向Hadoop的安装目录,我在这里使用的是HADOOP_HOME。
另外,为了方便运行一些Hadoop提供的命令,可以将$JAVA_HOME/bin、$HADOOP_HOME/bin和$HADOOP_HOME/sbin加入到PATH变量中。
具体为:
export JAVA_HOME=~/jdk1.8.0_05 export JRE_HOME=$JAVA_HOME/jre export HADOOP_HOME=~/hadoop/hadoop-2.4.1 export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
直接将下载到的压缩包解压即可,并在环境变量中添加HADOOP_HOME或HADOOP_PREFIX。
Apache官网提供的Hadoop是32位的,如果系统是64位的,会报错:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
需要重新编译,并替换掉$HADOOP_HOME/lib/native下的库文件,可以从这里下载。
然后验证是否成功:
$ hadoop version
如果出现下面的信息,说明Hadoop安装成功。
Hadoop 2.4.1 Subversion http://svn.apache.org/repos/asf/hadoop/common -r 1604318 Compiled by jenkins on 2014-06-21T05:43Z Compiled with protoc 2.5.0 From source with checksum bb7ac0a3c73dc131f4844b873c74b630 This command was run using /home/lxh/hadoop/hadoop-2.4.1/share/hadoop/common/hadoop-common-2.4.1.jar
在所有准备工作完成后,单机模式部署已经完成,下面就实验一下。
$ mkdir ~/input $ echo "This is test." >> ~/input/test $ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar wordcount ~/input ~/output $ cat ~/output/*
上面就是Hadoop版的Hello World,如果成功打印下面信息:
This 1 is 1 test. 1
说明所有环境已经准备好,可以调试程序或者进行Hadoop伪分布式模式部署了。