JDK版本:jdk-6u45-linux-x64.binhtml
(下載網址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,請到Previous Releases裏面找)java
Hadoop版本:hadoop-0.20.203.0rc1.tar.gznode
(網上大多數教程都是這個版本的,其實新版的已經出了好久了,可是新版的教程不多,學習阻力太大,因此暫時仍是用這個版本吧)linux
用到的全部文件都存放在/home/kevin 目錄下(個人用戶組的名字是kevin,也就是存放在Documents文件夾所在的目錄),要否則後面會遇到不少權限的問題,並且,最好不要用root用戶登陸,雖然網上不少教程都說轉到root用戶下,這樣作很差。算法
一、安裝Hadoop的運行環境——JDK瀏覽器
其實安裝JDK很簡單。下載好JDK,修改權限:oracle
sudo chmod u+x jdk-6u45-linux-x64.bin
而後執行以下解壓語句:ssh
sudo ./jdk-6u45-linux-x64.bin
一長串解壓過程飛速閃過以後,JDK就解壓完了。jvm
可是也有像我同樣沒怎麼學過linux的新手,執行這條命令時不成功。觀察他們的命令,發現他們沒有進到jdk所在的文件夾,而直接在「/」後面輸入了jdk所在的絕對路徑。只是不能成功的,應該進入到jdk所在的文件夾,或者將jdk拷貝到當前路徑。oop
如今,配置環境變量。打開profile文件:
sudo gedit /etc/profile
將下面幾行添加到文件末尾:
export JAVA_HOME=/home/kevin/jdk export HADOOP_HOME=/home/kevin/hadoop export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
最後,文件以下:
其中,hadoop的地址也一次性加到了其中。最後,保存退出。
執行以下命令,更新環境變量(這一步也能夠放在Hadoop安裝完成後執行):
source /etc/profile
如今輸入以下命令能夠驗證Java是否安裝成功:
java -version
若是顯示以下,則表示安裝成功:
如今,Java安裝完成~~~~~
二、配置SSH無密碼登陸:
首先,更新一下系統(其實沒必要要,主要是由於有可能安裝openssh-server不成功,因此,仍是先更新一下吧)
sudo apt-get update
一長串更新進程結束後,開始安裝SSH。
執行以下命令安裝openssh-server:
sudo apt-get install openssh-server
跑完後就安裝成功。
接下來,配置無密碼登陸:
ssh-keygen -t rsa -P ""
出現以下提示:
這是讓你輸入公鑰和私鑰的存放路徑,括號裏的表示默認路徑,這裏直接回車,選用默認路徑。
而後顯示以下:
這將生成一個隱藏文件 .ssh,進入這個文件夾,而後將公鑰追加到authorized_keys文件中,此文件最初並不存在,但執行追加命令後將自動生成:
cd .ssh cat id_rsa.pub >> authorized_keys
如圖:
最後,驗證是否安裝成功。用可否登陸本機來驗證,命令以下:
ssh localhost
顯示以下:
輸入yes(不用在乎其中的「can't be established」提示),回車,顯示以下:
而後執行退出命令:
exit
如圖:
如今,無密碼登陸配置成功~~~~
三、終於開始安裝Hadoop了
下載好Hadoop,而後修改權限:
sudo chmod 777 hadoop-0.20.203.0rc1.tar.gz
而後解壓:
sudo tar zxvf hadoop-0.20.203.0rc1.tar.gz
修改解壓出來的文件夾的權限(能夠看到,解壓出來的文件夾上有個灰顏色的鎖,至少我這兒是這樣)
sudo chmod 777 -R hadoop-0.20.203
也能夠將文件夾的名字改得短一點,後文中筆者就用改後的名字:
mv hadoop-0.20.203 hadoop
解壓工做完成,如今開始配置:
進入hadoop/conf文件夾中
cd hadoop/conf
打開hadoop-env.sh文件,找到exportJAVA_HOME這句話,去掉註釋標記,等號後面改爲你的JDK路徑,保存退出
如圖:
紅框位置,圖爲去掉#號後的截圖
接下來將配置三個文件core-site.xml,hdfs-site.xml,mapred-site.xml,其中,加入的內容都在<configuration>與</configuration>之間添加,後面不在一一贅述
配置hdfs-site.xml文件:
加入以下內容:
<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> <property> //用於存放主節點的信息,好比fsimage文件(這個文件至關重要,沒有他沒法讀取HDFS的內容),通常設置多個地址, //只需在<value>與</value>之間以逗號分隔每一個地址 <name>dfs.name.dir</name> <value>/home/kevin/hadoop/namedata</value> </property> <property> //設置從節點數據的存放位置,也能夠設置多個 <name>dfs.data.dir</name> <value>/home/kevin/hadoop/data</value> </property>
保存退出。
配置core-site.xml文件:
加入以下內容(此文件千萬別複製哦~~~~~):
<property> <name>fs.default.name</name> <value>hdfs://kevin:9000</value> //將kevin改爲各位@後面的名字 </property> <property> <name>hadoop.tmp.dir</name> <value>/home/kevin/hadoop/tmp</value> </property>
保存退出
配置mapred-site.xml文件:
以下(別複製哦~~~):
<property> <name>mapred.job.tracker</name> <value>kevin:9001</value>//將「kevin」改爲各位的用戶組(@後面那個)的名字 </property> //一下的內容能夠暫時不用設置,但從經驗來看,仍是設置一下爲好 <property> //一個節點上最大能運行的Map數量(默認是兩個,但從經驗來看,數據量大而機器又舊,兩個是帶不起來的) <name>mapred.tasktracker.map.tasks.maximum</name> <value>1</value> </property> <property> //每一個節點最大能運行的reduce數量,默認是1個,這裏寫出來是爲了讓你們知道在哪裏改這個數據 <name>mapred.tasktracker.reduce.tasks.maximum</name> <value>1</value> </property> <property> //我相信你們必定會遇到「java heap space」的問題,除非各位是算法高手,而且機器內存很大 //這個用於設置程序運行時(jvm虛擬機)的內存容量 <name>mapred.child.java.opts</name> <value>-Xmx4096m</value> </property>
全部配置都已完成,如今格式化:
執行以下命令:
hadoop namenode -format
出現以下畫面:
各位不用去一行一行對照看是否是同樣,接下來的操做同樣能夠驗證。
有的人在執行這句命令時可能出現hadoop : command not found。這是由於環境變量中沒有該命令,而這就很可能是沒有刷新/etc/profile文件,再執行一次jdk安裝時的source命令便可。或者,也能夠執行以下命令,不過前提是進入到hadoop文件夾:
sudo bin/hadoop namenode -format
但仍是建議你們source一下profile文件,要否則之後都只有進入到bin文件夾中才能hadoop上的操做
啓動hadoop:
start-all.sh
出現以下過程:
表示啓動成功~~
輸入jps看有幾個java進程(成功的話應該有以下五個,不算Jps進程):
安裝成功~~~~~
此處有可能沒法啓動DataNode,筆者遇到的主要緣由是屢次格式化,而之前的tmp和logs文件夾沒有刪除所致。刪除這兩個文件夾,而後新建便可(別忘了該權限哦)
能夠打開瀏覽器看看。在瀏覽器地址欄中輸入kevin:50070和kevin:50030
上面的是50070的,下面的是50030的。
配置成功了~~~~~~~
如今,來跑一個入門的程序wordcount吧:
在Hadoop的HDFS文件系統上創建一個input文件夾,做爲輸入源,命令以下:
hadoop fs -mkdir input
將一個測試文件上傳到input文件夾中,測試文件的內容就是「hello world,hello hadoop"。執行以下命令:
hadoop fs -put /home/kevin/Desktop/hello.txt input
而後執行Hadoop自帶的測試程序wordcount,命令以下:
hadoop jar hadoop-examples-0.20.203.0.jar wordcount input output
而後等待它跑完吧:
看看結果是否正確。顯示結果的內容,命令以下:
hadoop fs -cat output/part-r-00000
OK~~~Hadoop安裝成功,也能跑了~~~~~
推薦兩個網站供你們學習,找了這麼多網站,發現這兩個講得最好:
http://www.cnblogs.com/xia520pi/archive/2012/04/08/2437875.html