在安裝Hadoop以前先確保每臺機器都裝有jdk,版本什麼路徑什麼的最好同樣,而後配置好master對其餘slavers的SSH無密碼訪問<能夠參考:http://blog.csdn.net/hqshaozhu/article/details/11788025>html
確保上述條件知足以後就能夠開始安裝Hadoop了java
首先個人版本信息:node
LinuxOS:RedHat Enterprise 6.0 兩臺(VMWare虛擬機),一臺master,兩臺slave,master也是slavees6
Hadoop:0.20.2<下載地址:http://archive.apache.org/dist/hadoop/core/>apache
系統配置:master 主機名:rh01 ip:192.168.1.8瀏覽器
slave 主機名:rh02 ip:192.168.1.9dom
得確保機器之間可以互相訪問oop
下面開始Hadoop安裝測試
1.將下載hadoop文件解壓,tar文件使用tar -zxvf file_name 能夠在後面加上-C指定解壓路徑,最好放到一個固定地方,全部機器路徑必須保證一直.net
2.解壓以後在hadoop-0.20.2(安裝根目錄)下會看到一個conf文件夾,全部的hadoop配置都在這個文件夾下,也是最主要的
3.配置Hadoop環境變量:
export JAVA_HOME=/develop/java/jdk1.7.0_25 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export HADOOP_HOME=/develop/hadoop/hadoop-0.20.2 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin4.配好環境變量以後能夠選擇重啓機器讓prfile文件生效,或者執行source /etc/profile也可
5.下面開始配置Hadoop配置文件,有hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,masters,slaves6個文件須要修改
(1)hadoop-env.sh:在hadoop-env.sh後面添加JAVA_HOME值,這個值被註釋掉了,能夠直接去掉註釋而後將值改爲你jdk安裝路徑便可
(2)core-site.xml:在configuration節點中添加,其中ip爲master ip,9000爲端口,注意必須是以hdfs開頭,不是http
<property> <name>fs.default.name</name> <value>hdfs://192.168.1.8:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/develop/hadoop/tmp</value> </property> (3)hdfs-site.xml:在configuration節點中添加,其中dfs.replication值須要注意,若是你的salves機器數<3,那就寫1或者2,大於2就寫3就能夠了, 我這裏是兩個slave,因此寫2<!-- dfs.replication,設置數據塊的複製次數,默認是3,若是slave節點數少於3,則寫成相應的1或者2 --> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <!-- DFS中存儲文件命名空間信息的目錄 --> <name>dfs.name.dir</name> <value>/develop/hadoop/dfs/name</value> </property> <property> <!-- DFS中存儲文件數據的目錄 --> <name>dfs.data.dir</name> <value>/develop/hadoop/dfs/data</value> </property> <property> <!-- 是否對DFS中的文件進行權限控制(測試中通常用false)--> <name>dfs.permissions</name> <value>false</value> </property>(4)mapred-site.xml:沒有這個文件就新建一個便可,其中mapred.job.tracker 是配置jobtracker,ip爲master ip,端口 9001,注意必須是以hdfs開頭,不是http<configuration> <property> <!-- JobTracker節點 --> <name>mapred.job.tracker</name> <value>hdfs://192.168.1.8:9001</value> </property> <property> <!-- map/reduce的系統目錄(使用的HDFS的路徑) --> <name>mapred.system.dir</name> <value>/develop/hadoop/mapred/system</value> </property> <property> <!-- map/reduce的臨時目錄(可以使用「,」隔開,設置多重路徑來分攤磁盤IO) --> <name>mapred.local.dir</name> <value>/develop/hadoop/mapred/local</value> </property> </configuration>
(5)master:這個文件中寫的是master ip(也有資料說是應該寫SecondaryNameNode,新手咱們就無論吧,反正只要寫master ip就能夠了)
(1)hosts第一行127.0.0.1後面不要寫主機名,也就是HOSTNAME值
(6)slaves:這個文件寫的是slave ip,有幾個寫幾個,分行寫,master也能夠做爲slave節點,同master最好都寫ip,不要寫hostname
6.將hadoop安裝目錄整個copy到全部salve主機上,使用scp -r命令便可,同時也能夠將/etc/profile文件也copy過去,反正profile和hadoop都得保證徹底一致,路徑也是
7.到這裏配置應該就完成了,再啓動hadoop前咱們須要先格式化namenode:#hadoop namenode -format,這裏若是若是提示沒有hadoop命令,則先到profile中確認$HADOOP_HOME/bin加入到path中,其次能夠進入到hadoop安裝目錄下使用:#bin/hadoop namenode -format試試,若是仍是不行就那檢查你的上面配置的文件是否
有錯.
8.格式化成功以後就能夠啓動hadoop了,能夠直接啓動start-all.sh(配置徹底正確狀況下這個命令不管在什麼目錄下均可以執行),以後就能夠看到hadoop啓動了,你會發現顯示將啓動日誌保存到一個路徑下,這些日誌在hadoop安裝目錄的logs文件夾下,是很重要的,可是當你出錯時能夠清空logs下全部文件,而後從新啓動機器讓他生成日誌,在查看日誌信息,由於日誌比較多,看起來就不方便,嘿嘿。若是日誌沒問題那就OK。
9.在每臺機器上使用:#jps 能夠查看hadoop進程狀況,啓動成功slave應該顯示:tasktracker jps datanode三個進程,master顯示:jobtracker namenode sencondarynamenode jps要是master也是slave的話會多tasktracker datanode兩個進程
10.一切OK以後可使用瀏覽器訪問http://192.168.1.8:50030/ ip是master ip,查看hadoop運行狀況,以後能夠試着作hadoop自帶的小測試,本身去網上找吧
我知道一次安裝成功能夠性很小,你是新手的話,因此會出現各類各樣的問題,在這裏說下可能會出現的問題吧,也是我遇到的問題
java.io.IOException: Call to /192.168.1.8:9000 failed on local exception: java.net.NoRouteToHostException: No route to host
(1)hadoop版本問題,勸新手不要一開始就是用2.0版本及以上的,首先2.0的資料較少,其餘不是很穩定貌似,配置也比較繁瑣,我反正弄了一週沒搞好,而後果斷換了0.20.2才搞定。
(2)若是啓動失敗,log中顯示沒法鏈接master什麼的,那問題就出在/etc/hosts文件中,這裏配置了主機信息,hosts文件配置有點怪,下面是個人master hosts和slave hosts
master:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
HOSTNAME=rh01
192.168.1.8 rh01
192.168.1.9 rh02
slave:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
HOSTNAME=rh02
192.168.1.9 rh02
192.168.1.8 rh01
注意之處在於
(1)hosts第一行127.0.0.1後面不要寫主機名,也就是HOSTNAME值
(2)在HOSTNAME後面寫ip與主機名映射的時候必定要先寫本機ip (3)防火牆,這個坑爹的貨在hadoop中始終是個麻煩,在啓動hadoop以前須要將全部機器防火牆關閉,使用:#service iptables stop,也能夠直接使用:#chkconfig iptables off命令設置防火牆不自啓動,這樣下次防火牆就不會自啓動了 我就總結出這三點可能會影響hadoop啓動的,錯誤都是沒法鏈接主機,要是其餘錯誤那就好好看看conf下的那些配置文件是否有錯了 好了,安裝吧,啓動吧,開心吧,查看吧,失望吧,排錯吧,絕望吧,總之堅持住你就能搞定 嘻嘻~~~ 申明有參考網上其餘文章