RedHat安裝Hadoop0.20.2小集羣

在安裝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/bin
4.配好環境變量以後能夠選擇重啓機器讓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下的那些配置文件是否有錯了 好了,安裝吧,啓動吧,開心吧,查看吧,失望吧,排錯吧,絕望吧,總之堅持住你就能搞定 嘻嘻~~~ 申明有參考網上其餘文章

相關文章
相關標籤/搜索