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.xml和hdfs-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
再試試看。
接著開啟NaneNode
和DataNode
守護程序。
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
來判斷是否成功啟動,若成功啟動則會列出如下程序:NameNode
、DataNode
和SecondaryNameNode
。(如果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/ 叢集搭建