目的
這篇文檔的目的是幫助你快速完成單機上的Hadoop安裝與使用以便你對Hadoop分布式文件系統(HDFS)和Map-Reduce框架有所體會,比如在HDFS上運行示例程序或簡單作業等。
先決條件
支持平臺
- GNU/Linux是產品開發和運行的平臺。 Hadoop已在有2000個節點的GNU/Linux主機組成的集群系統上得到驗證。
- Win32平臺是作為開發平臺支持的。由于分布式操作尚未在Win32平臺上充分測試,所以還不作為一個生產平臺被支持。
所需軟件
Linux和Windows所需軟件包括:
- JavaTM1.5.x,必須安裝,建議選擇Sun公司發行的Java版本。
- ssh 必須安裝并且保證 sshd一直運行,以便用Hadoop 腳本管理遠端Hadoop守護進程。
Windows下的附加軟件需求
- Cygwin - 提供上述軟件之外的shell支持。
安裝軟件
如果你的集群尚未安裝所需軟件,你得首先安裝它們。
以Ubuntu Linux為例:
$ sudo apt-get install ssh
$ sudo apt-get install rsync
在Windows平臺上,如果安裝cygwin時未安裝全部所需軟件,則需啟動cyqwin安裝管理器安裝如下軟件包:
- openssh - Net 類
下載
為了獲取Hadoop的發行版,從Apache的某個鏡像服務器上下載最近的 穩定發行版。
運行Hadoop集群的準備工作
解壓所下載的Hadoop發行版。編輯 conf/hadoop-env.sh文件,至少需要將JAVA_HOME設置為Java安裝根路徑。
嘗試如下命令:
$ bin/hadoop
將會顯示hadoop 腳本的使用文檔。
現在你可以用以下三種支持的模式中的一種啟動Hadoop集群:
- 單機模式
- 偽分布式模式
- 完全分布式模式
單機模式的操作方法
默認情況下,Hadoop被配置成以非分布式模式運行的一個獨立Java進程。這對調試非常有幫助。
下面的實例將已解壓的 conf 目錄拷貝作為輸入,查找并顯示匹配給定正則表達式的條目。輸出寫入到指定的output目錄。
$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
$ cat output/*
偽分布式模式的操作方法
Hadoop可以在單節點上以所謂的偽分布式模式運行,此時每一個Hadoop守護進程都作為一個獨立的Java進程運行。
配置
使用如下的 conf/hadoop-site.xml:
<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> |
免密碼ssh設置
現在確認能否不輸入口令就用ssh登錄localhost:
$ ssh localhost
如果不輸入口令就無法用ssh登陸localhost,執行下面的命令:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
執行
格式化一個新的分布式文件系統:
$ bin/hadoop namenode -format
啟動Hadoop守護進程:
$ bin/start-all.sh
Hadoop守護進程的日志寫入到 ${HADOOP_LOG_DIR} 目錄 (默認是 ${HADOOP_HOME}/logs).
瀏覽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 -get output output
$ cat output/*
或者
在分布式文件系統上查看輸出文件:
$ bin/hadoop fs -cat output/*
完成全部操作后,停止守護進程:
$ bin/stop-all.sh
完全分布式模式的操作方法
關于搭建完全分布式模式的,有實際意義的集群的資料可以在這里找到。
詳情請查看官方文檔:Hadoop快速入門
文章列表