這篇文檔的目的是幫助你快速完成單機上的Hadoop安裝與使用以便你對Hadoop分布式文件系統(tǒng)(HDFS)和Map-Reduce框架有所體會,比如在HDFS上運行示例程序或簡單作業(yè)等。
Linux和Windows所需軟件包括:
Windows下的附加軟件需求
如果你的集群尚未安裝所需軟件,你得首先安裝它們。
以Ubuntu Linux為例:
$ sudo apt-get install ssh
$ sudo apt-get install rsync
在Windows平臺上,如果安裝cygwin時未安裝全部所需軟件,則需啟動cyqwin安裝管理器安裝如下軟件包:
為了獲取Hadoop的發(fā)行版,從Apache的某個鏡像服務(wù)器上下載最近的穩(wěn)定發(fā)行版。
解壓所下載的Hadoop發(fā)行版。編輯conf/hadoop-env.sh文件,至少需要將JAVA_HOME設(shè)置為Java安裝根路徑。
嘗試如下命令:
$ bin/hadoop
將會顯示hadoop 腳本的使用文檔。
現(xiàn)在你可以用以下三種支持的模式中的一種啟動Hadoop集群:
默認(rèn)情況下,Hadoop被配置成以非分布式模式運行的一個獨立Java進程。這對調(diào)試非常有幫助。
下面的實例將已解壓的 conf 目錄拷貝作為輸入,查找并顯示匹配給定正則表達式的條目。輸出寫入到指定的output目錄。
$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
$ cat output/*
Hadoop可以在單節(jié)點上以所謂的偽分布式模式運行,此時每一個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> |
現(xiàn)在確認(rèn)能否不輸入口令就用ssh登錄localhost:
$ ssh localhost
如果不輸入口令就無法用ssh登陸localhost,執(zhí)行下面的命令:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
格式化一個新的分布式文件系統(tǒng):
$ bin/hadoop namenode -format
啟動Hadoop守護進程:
$ bin/start-all.sh
Hadoop守護進程的日志寫入到${HADOOP_LOG_DIR} 目錄 (默認(rèn)是${HADOOP_HOME}/logs).
瀏覽NameNode和JobTracker的網(wǎng)絡(luò)接口,它們的地址默認(rèn)為:
將輸入文件拷貝到分布式文件系統(tǒng):
$ bin/hadoop fs -put conf input
運行發(fā)行版提供的示例程序:
$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
查看輸出文件:
將輸出文件從分布式文件系統(tǒng)拷貝到本地文件系統(tǒng)查看:
$ bin/hadoop fs -get output output
$ cat output/*
或者
在分布式文件系統(tǒng)上查看輸出文件:
$ bin/hadoop fs -cat output/*
完成全部操作后,停止守護進程:
$ bin/stop-all.sh
關(guān)于搭建完全分布式模式的,有實際意義的集群的資料可以在這里找到。
Java與JNI是Sun Microsystems, Inc.在美國以及其他國家地區(qū)的商標(biāo)或注冊商標(biāo)。
聯(lián)系客服