1. 程式人生 > 其它 >hadoop2.7.1單機和偽叢集的搭建-0

hadoop2.7.1單機和偽叢集的搭建-0

1.下載 http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz 最新版

解壓: tar -zxvf hadoop-2.7.1.tar.gz

2.配置環境變數

[email protected]:/Users/user> vim ~/.bash_profile

export HADOOP_HOME=/usr/local/flume_kafka_stom/hadoop_2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

3.單機版測試

  Hadoop 預設模式為非分散式模式,無需進行其他配置即可執行。非分散式即單 Java 程序,方便進行除錯。

現在我們可以執行例子來感受下 Hadoop 的執行。Hadoop 附帶了豐富的例子(執行bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar可以看到所有例子),包括 wordcount、terasort、join、grep 等。

在此我們選擇執行 grep 例子,即將 input 資料夾中的所有檔案作為輸入,篩選當中符合正則表示式dfs[a-z.]+的單詞並統計出現的次數,最後輸出結果到 output 資料夾中。

[email protected]:/Users/user> cd /usr/local/flume_kafka_stom/hadoop_2.7.1

mkdir input

  • cp./etc/hadoop/*.xml input# 將配置檔案作為輸入檔案
  • .[email protected]:/usr/local/flume_kafka_stom/hadoop_2.7.1> ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
  • cat./output/*

檢視執行結果:

表示單機版的安裝成功。

4.偽分散式安裝與配置

  Hadoop 可以在單節點上以偽分散式的方式執行,Hadoop 程序以分離的 Java 程序來執行,節點既作為 NameNode 也作為 DataNode。

Hadoop 的配置檔案位於/usr/local/flume_kafka_stom/hadoop_2.7.1/etc/hadoop 中,偽分散式需要修改2個配置檔案core-site.xmlhdfs-site.xml。Hadoop的配置檔案是 xml 格式,每個配置以宣告 property 的 name 和 value 的方式來實現。

修改配置檔案core-site.xml(vim /usr/local/flume_kafka_stom/hadoop_2.7.1/etc/hadoop/core-site.xml),將當中的

<configuration>

</configuration>

修改如下:

<configuration>
 <property>
        <name>hadoop_2.7.1.tmp.dir</name>
        <value>file:/usr/local/flume_kafka_stom/hadoop_2.7.1/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

同樣的,修改配置檔案hdfs-site.xml

<configuration>
 <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/flume_kafka_stom/hadoop_2.7.1/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/flume_kafka_stom/hadoop_2.7.1/tmp/dfs/data</value>
    </property>

</configuration>
關於Hadoop配置項的一點說明

雖 然只需要配置 fs.defaultFS 和 dfs.replication 就可以執行(官方教程如此),不過若沒有配置 hadoop.tmp.dir 引數,則預設使用的臨時目錄為 /tmp/hadoo-hadoop,而這個目錄在重啟時有可能被系統清理掉,導致必須重新執行 format 才行。所以我們進行了設定,同時也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否則在接下來的步驟中可能會出錯。

配置完成後,執行 namenode 的格式化:

    bin/hdfs namenode -format

結果如下:

成功的話,會看到successfully formatted的提示,且倒數第5行的提示如下,Exitting with status 0表示成功,若為Exitting with status 1則是出錯。若出錯(不該如此,請仔細檢查之前步驟),可試著加上 sudo, 既sudo bin/hdfs namenode -format再試試看。

接著開啟NaneNodeDataNode守護程序。

sbin/start-dfs.sh


啟動碰到以下問題:連線localhost port 22 Connection 由於本機是mac

解決辦法:http://blog.csdn.net/jymn_chen/article/details/39931469

重啟正常:

若你使用的是 Hadoop 2.7.1 64位,則此時可能會出現一連串的warn提示,如WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable這個提示,這些warn提示可以忽略,不會影響正常使用。

啟動完成後,可以通過命令jps來判斷是否成功啟動,若成功啟動則會列出如下程序:NameNodeDataNodeSecondaryNameNode。(如果SecondaryNameNode沒有啟動,請執行 sbin/stop-dfs.sh 關閉程序,然後再次嘗試啟動嘗試;如果 NameNode 或 DataNode 沒有啟動,請仔細檢查之前步驟)。

檢視程序

jps
通過檢視啟動日誌分析啟動失敗原因

有時 Hadoop 無法正確啟動,如 NameNode 程序沒有順利啟動,這時可以檢視啟動日誌來排查原因,注意幾點:

  • 啟動時會提示形如 “DBLab-XMU: starting namenode, logging to /usr/local/flume_kafka_stom/hadoop_2.7.1/logs”,其中 DBLab-XMU 對應你的機器名,但其實啟動日誌資訊是記錄在/usr/local/flume_kafka_stom/hadoop_2.7.1/logs 中,所以應該檢視這個字尾為.log的檔案;
  • 每一次的啟動日誌都是追加在日誌檔案之後,所以得拉到最後面看,看下記錄的時間就知道了。
  • 一般出錯的提示在最後面,也就是寫著 Fatal、Error 或者 Java Exception 的地方。
  • 可以在網上搜索一下出錯資訊,看能否找到一些相關的解決方法。

成功啟動後,可以訪問 Web 介面http://localhost:50070來檢視 Hadoop 的資訊。

說明安裝成功。

參考文章:http://www.powerxing.com/install-hadoop/ 單機和偽分散式hadoop環境搭建

參考文章:http://www.powerxing.com/install-hadoop-cluster/ 叢集搭建