下载
在 http://hadoop.apache.org/releases.html 中获取相关的版本。
安装参考:
- http://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-common/SingleCluster.html
- http://hadoop.apache.org/docs/r3.1.0/hadoop-project-dist/hadoop-common/SingleCluster.html
java环境和hadoop环境准备
Java安装在/home/wei/jdk1.8.0_172。同时将2和3版本的hadoop分别解压在/home/wei/hadoop/hadoop-2.9.0和/home/wei/hadoop/hadoop-3.1.0目录下。
环境变量文件的位置:
- 如果是全局变量,我们在/etc/profile下面进行配置。当然这种情况,java的路径就应该是/usr/java/jdk1.8.0_172,或者/usr/lib/jvm/jdk1.8.0_172。用户重新登录有效
- 如果是用户wei的配置,则设置在~/.profile中。用户重新登录有效。
- 在我的实验环境中,同时存在两个版本的hadoop,所以我们编写两个不同的环境文件,然后用source <环境文件>来手动生效。
在相应的环境文件中加入:
export JAVA_HOME="/home/wei/jdk1.8.0_172"
export CLASSPATH=".:$JAVA_HOME/lib"
HADOOP_HOME=/home/wei/hadoop/hadoop-2.9.0
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
export PATH
有没有引号,都没有关系,上面同时给出两种情况。当然,我们在同一个文件中,应该使用统一的书写格式。
可以用下面的命令来试一下:
$ java -version
$ hadoop
Standalone 模式
本地模式就是一个java程序,只用于测试MapReduce,没有NDFS。本地模式不需要做任何的设置,只要设置好环境即可。
这里唯一需要配置的是指定JAVA的运行环境,如果我们不使用缺省的JAVA_HOME,而进行特定的指定,可以在etc/hadoop/hadoop-evn.sh中,对下面这样进行修改,设置指定的路径。
# export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/wei/jdk1.8.0_172
我们进行一下测试
【创建MapReduce输入目录】
$ mkdir input
【将一些文件放入MapReduce的输入目录,作为计算的一些输入信息】
$ cp etc/hadoop/*.xml input
【hadoop提供了一些测试例子,具体为share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar,下面是个例子】
【hadoop jar有点类似java中的java jar】
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z.]+'
【output/为输入,里面有两个文件,输出的内容具体在part-r-00000中。】
$ cat output/*
【我们给出另一个测试例子,xxx.jar后面有点想jar中的执行的class,wordcount为统计文字的数量。】
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar wordcount
Usage: wordcount <in> [<in>...] <out>
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar wordcount input/hadoop-policy.xml output/wc
【 结果放置在output/wc/part-r-00000 中】