標籤:
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目錄下執行以下命令來測試安裝是否成功
[plain] view plaincopyprint?
- $ 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、停止守護進程
其中第二步執行個體:
[html] view plaincopyprint?
- <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/
測試:
複製檔案到Distributed File System上
[plain] view plaincopyprint?
- $ bin/hadoop fs -put conf input
運行測試
[plain] view plaincopyprint?
- $ bin/hadoop jar hadoop-examples-*.jar grep input output ‘dfs[a-z.]+‘
擷取測試程式的執行結果
[plain] view plaincopyprint?
- $ bin/hadoop fs -cat output/*
輸出:
[plain] view plaincopyprint?
- 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程式時沒有反應。
大資料時代之hadoop(一):hadoop安裝