下載
在 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 中】