大資料時代之hadoop(一):hadoop安裝

chaofanwei發表於2014-10-13

 

 

1、hadoop版本介紹

 

0.20.2版本以前(不含該版本)的配置檔案都在default.xml中。

0.20.x以後的版本不含有eclipse外掛的jar包,由於eclipse的版本不一,所以就需要自己編譯原始碼生成對應的外掛。

0.20.2——0.22.x版本的配置檔案集中在conf/core-site.xml、 conf/hdfs-site.xml  和 conf/mapred-site.xml. 中

0.23.x 版本有新增了yarn技術,配置檔案集中在  conf/core-site.xml, conf/hdfs-site.xml, conf/yarn-site.xml and conf/mapred-site.xml.這4個檔案上。

 

由於0.23.x版本的變化比較大,新增了新的技術,讓很多基於hadoop的一些外掛難以相容,如hive、hbase、pig等都基於0.23.x以前的版本。

所以apache就開始統一版本號,這樣從版本號就可以區分hadoop的功能。

0.22.x 直接升級到1.0.0 

0.23.x 直接升級到2.0.0

這樣就把hadoop分為兩個版本 1和2 

1版本:主要基於原來的技術的升級和發展,同時支援其它技術的支援。如果想用hbase、hive等技術就只有選擇 版本1

2版本:主要基於新技術的推廣和發展,如果只是基於hadoop開發,這個是一個很好的選擇。

 

目前官網上下載hadoop處描述:

Download

  • 1.2.X - current stable version, 1.2 release
  • 2.4.X - current stable 2.x version
  • 0.23.X - similar to 2.X.X but missing NN HA.

 

2、hadoop安裝及模式

 

目前,我在實驗環境中使用的是hadoop-0.20.2,所以以後我都是基於這個版本進行描述。

Hadoop各個元件的配置在資料夾conf下。早期的hadoop採用一個配置檔案hadoop-site.xml來配置Common,HDFS和MapReduce元件,從0.20.0版本開始,分為三個檔案。

                 core-site.xml:配置Common元件的屬性。
          hdfs-site.xml:配置HDFS屬性。
          mapred-sit.xml:配置MapReduce屬性。

 

2.1、Hadoop執行模式

Hadoop的執行模式有以下三種:

             獨立模式(standalone或local mode):無需任何守護程式(daemon),所有程式都在單個JVM上執行。主要用在開發階段。預設屬性就是為本模式所設,所以不需要額外的配置。
             偽分散式模式(pseudo-distributed model):Hadoop守護程式執行在本地機器上,模擬一個小規模的叢集。
             全分佈模式(full distributed model):Hadoop守護程式執行在一個叢集上。

 

不同模式關鍵配置屬性

元件名稱

屬性名稱

獨立模式

偽分佈模式

全分佈模式

Common

fs.default.name

file:/// (預設)

hdfs://localhost:9000

hdfs://namenode:9000

HDFS

dfs.replication

N/A

1

3 (預設)

MapReduce

mapred.job.tracker

local (預設)

localhost:9001

jobtracker:9001

 

2.2、本機模式安裝


 由於預設屬性專為本模式所設定,且無需執行任何守護程式,因此本模式除了把dfs.replication值設為1外,無需任何別的操作。

 

 測試:

進入$HADOOP_HOME目錄下執行以下命令來測試安裝是否成功 
  

   $ mkdir input 
   $ cp conf/*.xml input 
   $ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 
   $ cat output/*


 

   輸出:  
         1    dfsadmin

 

 經過上面的步驟,如果沒有出現錯誤就算安裝成功了。

 


2.3、偽分散式模式安裝步驟

安裝步驟:

          1、設定環境變數(JAVA_HOME,path,HADOOP_HOME,CLASSPATH)
           2、修改hadoop配置檔案(core-site.xml,hdfs-site.xml,mapred-site.xml)
           3、設定ssh無密碼登陸
           4、格式化檔案系統  hadoop namenode -format
           5、啟動守護程式   start-all.sh
           6、停止守護程式

 

其中第二步例項:

<configuration> 
  <property> 
    <name>fs.default.name</name> 
    <value>localhost:9000</value> 
  </property> 
  <property> 
    <name>mapred.job.tracker</name> 
    <value>localhost:9001</value> 
  </property> 
  <property> 
    <name>dfs.replication</name> 
    <value>1</value> 
  </property> 
</configuration> 


 

 啟動後可以通過網頁方式檢視NameNode和JobTracker狀態
 NameNode -
http://localhost:50070/
 JobTracker -
http://localhost:50030/


 測試:


  複製檔案到分散式檔案系統上 
   

$ bin/hadoop fs -put conf input 


  執行測試 
   

$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 


獲取測試程式的執行結果

$ bin/hadoop fs -cat output/*

 

  輸出:
   

   3 dfs.class
   2 dfs.period
   1 dfs.file
   1 dfs.replication
   1 dfs.servers
   1 dfsadmin
   1 dfsmetrics.log


  
  經過上面的步驟,如果沒有出現錯誤就算安裝成功了。

 

2.4、全分佈模式安裝步驟

安裝步驟:

            1、設定環境變數(JAVA_HOME,path,HADOOP_HOME,CLASSPATH)
            2、修改hadoop配置檔案(core-site.xml,hdfs-site.xml,mapred-site.xml,masters,slaves)
            3、設定ssh無密碼登陸
            4、格式化檔案系統  hadoop namenode -format
            5、啟動守護程式   start-all.sh
            6、停止守護程式

 

 啟動後可以通過網頁方式檢視NameNode和JobTracker狀態
 NameNode -
http://namenode:50070/
 JobTracker -
http://jobtracker:50030/


 注意:
        在每個機器上的相同位置分別安裝hadoop,且使用者名稱相同。


3、eclipse外掛安裝


 eclipse hadoop外掛,是為了快速開發mapreduce程式,提供了

         mapreduce location檢視,用於設定mapreduce變數;

         windows->preferences 增加了設定hadoop安裝位置設定欄;

         在Project Explore檢視裡面增加了DFS Locations專案,能夠檢視hdfs檔案系統的內容,並能夠上傳下載檔案;

         new project 裡面增加了mapreduce project;

        增加了run on hadoop平臺功能。

 


需要注意的是hadoop自帶的contrib\eclipse-plugin\hadoop-0.20.2-eclipse-plugin.jar過時了,需要從網上下載一個新的,否則在執行mapreduce程式時沒有反應。

 

 

 

相關文章