Hadoop是使用java編寫的,所以在進行Hadoop開發之前,需要安裝配置java環境:
JAVA安裝和配置jdk下載地址(我下載的是jdk1.8.0_92):http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
使用一下命令解壓:sudo -xvf jdk1.8.0_92.tar.gz
我將解壓之後的文件(jdk1.8.0_92)拷貝到 /opt/java目錄下面,將 /opt/java/jdk1.8.0_92作為JAVA_HOME:
export JAVA_HOME=/opt/java/jdk1.8.0_92
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
設置java環境變量也可以如下:
sudo gedit /etc/profile
在打開的文件中將下面的拷貝進去,並保存:
#java Home
export JAVA_HOME=/opt/java/jdk1.8.0_92
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/jre:${CLASSPATH}
export PATH=${JAVA_HOME}/bin:${PATH}
輸入以下命令使得配置生效:sudo source /etc/profile
經過以上的配置java的環境變量就配置好了,可以使用以下的命令檢測:HADOOP的安裝配置首先,需要下載hadoop2.6.0(華中科技大學的鏡像下載地址):http://mirrors.hust.edu.cn/apache/hadoop/common/
解壓下載好的hadoop-2.6.0.tar.gz文件:
sudo tar -xvf hadoop-2.6.0.tar.gz
解壓之後,將文件夾改名為hadoop(個人喜好),之後移動到/usr/local目錄下:
sudo mv hadoop /usr/local
之後就是配置hadoop的開發環境了:因為我們的ubuntu中可能安裝了不止一個版本的jdk,所以首先需要設置首選的jdk,就像windows中設置默認打開的軟件一樣:
update-alternatives --config java
[注意]
執行上面的命令為了查看電腦中的jdk路徑,有可能報下面的錯誤:
update-alternatives: 錯誤: 無 java 的候選項
解決方法:(使用/opt/java/jdk1.8.0_92/bin/java來提供/usr/bin/java,需要注意的是,/opt/java/jdk1.8.0_92處是之前保存jdk的路徑)
update-alternatives --install /usr/bin/java java /opt/java/jdk1.8.0_92/bin/java
這樣再次運行 update-alternatives --config java就不會報錯了。
編輯/.bashrc文件:sudo gedit ~/.bashrc
打開/.bashrc文件之後,粘貼下面的代碼:
#HADOOP VARIABLES START
export JAVA_HOME=/opt/java/jdk1.8.0_92
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP VARIABLES END
[注意]
JAVA_HOME和HADOOP_INSTALL需要根據自己java_home以及hadoop的安裝路徑進行配置。
執行下面的命令,更新/.bashrc的信息:
sudo source ~/.bashrc
還需要配置一項很重要的地方:編輯/usr/local/hadoop/etc/hadoop/hadoop-env.sh
sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh
找到JAVA_HOME,並改寫為自己配置的JAVA_HOME:為了方便開發,我們可以講/usr/local/hadoop的讀寫權限修改一下:
sudo chmod 774 /usr/local/hadoop
WordCount測試:如上圖,在/usr/local/hadoop下新建兩個文件夾,input用於存放目標文件,output用於輸出結果:
sudo mkdir input
sudo mkdir output
並在input目錄下放置一個num.txt文件,程序開始之後,去統計num.txt文件中各個單詞出現的數量:
使用下面的命令開始WordCount程序:// 在/usr/local/hadoop路徑下執行
bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.6.0-sources.jar org.apache.hadoop.examples.WordCount input output/result
[注意]因為我使用的是hadoop-2.6.0,故而上面是hadoop-mapreduce-examples-2.6.0-sources.jar,此處需要注意一定要和你的hadoop版本號一致!!!如果有下面的輸出,說明Hadoop已經安裝配置好了,並已經統計出了結果:
.................輸出太長,只截取頭部和尾部的輸出內容.............
此時,在/usr/local/hadoop/output目錄下可以看到下面的文件:
會生成result文件夾,其中part-r-00000就是統計的結果: