接觸過hadoop的人都知道hadoop的搭建過程非常麻煩,尤其是對于初學者,幸運的是有cloudera這樣的公司為我們做了一些發行版,我們可以直接使用apt-get,yum等包管理工具進行安裝。
下面我要說得是,在centos6.5 64位下,通過yum安裝cdh5.1.0,需要注意的是5.1.0預設是mapred2(也就是yarn模式),我這裡安裝的是mapred1。也就是傳統的hadoop模式。
這裡我重點說下<code>/etc/hosts</code>的配置,在namenode與jobtracker所在的機器上,一定不要有
這條記錄,并且要把所有子結點的ip與hostname配進去。
否則你會遇到各種錯誤,下面是一個錯誤:
這個錯誤,是在啟動namenode後,啟動datanode時的錯誤,從錯誤資訊來看,這時在datanode向namenode注冊時的錯。
在<code>/etc/yum.repo.d</code>中建立一個repo檔案,内容為
配置源後,執行下
hadoop2.0把各個子產品都給分出來了。hdfs、mapred、yarn、client都是作為獨立的子產品的,可以單獨安裝。
大家可以根據機器的角色,安裝不同的元件。
在用戶端執行hadoop任務時,需要安裝
通過yum安裝,配置檔案預設在<code>/etc/hadoop/conf</code>檔案夾中。需要修改下面三個配置檔案:
core-site.xml
hdfs-site.xml
mapred-site.xml
通過yum安裝,conf檔案夾中預設沒有<code>hadoop-env.sh</code>這個檔案,我們可以從其他地方拷過來,在<code>/usr/lib/hadoop-0.20-mapreduce/example-confs/conf.secure/hadoop-env.sh</code>有個參考配置,我們可以把它拷貝過來,并且開頭添加下下面的配置:
<code>/usr/java/default</code>是我機器上java的安裝目錄,你們可根據實際情況進行修改。
在上面的配置中,<code>hdfs-site.xml</code>中制定了namenode與datanode的存放資料的目錄,下面進行建立
<code>mapred-site.xml</code>中指定了執行任務時臨時資料的存放目錄,下面進行建立
這裡需要說明的是,在hadoop2.0中,不再推薦用一個hadoop賬戶來啟動所有程序,推薦使用hdfs使用者操作hdfs相關程序,mapred使用者操作mapred相關程序,yarn使用者操作yarn相關程序,在我們用yum安裝各個元件時,相應的使用者會替我們自動建立。
首先時在主結點啟動namenode
之後,在子結點啟動datanode
這樣,hdfs就能工作了。下面建立mapred在hdfs上所需的目錄
這時,就可以在主結點上啟動jobtracker了
啟動jobtracker後,會在hdfs的tmp下生成如下結構的目錄:
最後,在子結點上啟動tasktracker就可以了。