翻譯: http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
版本: 2.9.0
目的
本文檔介紹如何搭建單節(jié)點Hadoop,以便您可以使用Hadoop MapReduce和Hadoop分布式文件系統(tǒng)(HDFS)快速執(zhí)行簡單的操作纲辽。
先決條件
支持的平臺
支持GNU / Linux作為開發(fā)和生產(chǎn)平臺蜗顽。Hadoop已經(jīng)在具有2000個節(jié)點的GNU / Linux集群上進行了演示愧口。
Windows也是一個支持的平臺诞外,但以下步驟僅適用于Linux情竹。要在Windows上設置Hadoop障陶,請參閱Wiki頁面滋恬。
所需軟件
所需的Linux軟件包括:
Java?必須安裝。推薦的Java版本在HadoopJavaVersions中描述抱究。
必須安裝ssh恢氯,并且必須運行sshd,才能使用Hadoop腳本管理遠程Hadoop守護程序。
安裝軟件
如果你的集群沒有必要的軟件勋拟,你需要安裝它勋磕。
例如在Ubuntu Linux上:
$ sudo apt-get install ssh
$ sudo apt-get install rsync
下載
要獲得Hadoop發(fā)行版,請從其中一個Apache下載鏡像下載最新的穩(wěn)定版本敢靡。
準備啟動Hadoop集群
解壓下載的Hadoop發(fā)行版挂滓。在發(fā)行版中,編輯文件 etc/hadoop/hadoop-env.sh 來定義一些參數(shù)啸胧,如下所示:
# set to the root of your Java installation
export JAVA_HOME=/usr/java/latest
嘗試以下命令:
$ bin/hadoop
這將顯示hadoop腳本的使用文檔赶站。
現(xiàn)在可以以三種支持模式之一啟動Hadoop集群:
獨立模式下的操作
默認情況下,Hadoop被配置為以非分布模式運行纺念,作為單個Java進程贝椿。這對調(diào)試很有用。
以下示例將解壓后的conf目錄復制為輸入陷谱,然后查找并顯示給定正則表達式的每個匹配項烙博。輸出寫入給定的輸出目錄。
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z.]+'
$ cat output/*
偽分布式操作
Hadoop也可以在單節(jié)點上以偽分布模式運行烟逊,其中每個Hadoop守護進程都在單獨的Java進程中運行渣窜。
配置
在etc/hadoop/core-site.xml 中配置以下內(nèi)容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
在etc/hadoop/hdfs-site.xml中配置 :
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
設置passphraseless ssh
現(xiàn)在檢查是否可以在沒有密碼的情況下ssh到本地主機:
$ ssh localhost
如果您不能在沒有密碼的情況下ssh到本地主機,請執(zhí)行以下命令:
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
執(zhí)行
以下說明是在本地運行MapReduce作業(yè)宪躯。如果要在YARN上執(zhí)行作業(yè)乔宿,請參閱單節(jié)點上的YARN 。
- 格式化文件系統(tǒng):
$ bin/hdfs namenode -format
- 啟動NameNode守護進程和DataNode守護進程:
$ sbin/start-dfs.sh
hadoop守護進程日志輸出被寫入 $HADOOP_LOG_DIR 目錄(默認為 $HADOOP_HOME/logs)眷唉。
-
瀏覽NameNode的Web界面; 默認情況下它可用于:
- NameNode - http://localhost:50070/
制作執(zhí)行MapReduce作業(yè)所需的HDFS目錄:
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/<username>
- 將輸入文件復制到分布式文件系統(tǒng)中:
$ bin/hdfs dfs -put etc/hadoop input
- 運行一些提供的例子:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z.]+'
- 檢查輸出文件:將輸出文件從分布式文件系統(tǒng)復制到本地文件系統(tǒng)并檢查它們:
$ bin/hdfs dfs -get output output
$ cat output/*
或者 查看分布式文件系統(tǒng)上的輸出文件:
$ bin/hdfs dfs -cat output/*
- 當你完成后予颤,停止守護進程:
$ sbin/stop-dfs.sh
YARN在單個節(jié)點上
在偽分布模式下,可以在YARN上運行MapReduce作業(yè) 冬阳,只需要配置幾個參數(shù)并運行ResourceManager守護進程和NodeManager守護進程蛤虐。
在已經(jīng)執(zhí)行了上述指令的情況下,執(zhí)行如下 1?4個步驟肝陪。
- 配置參數(shù)如下:etc/hadoop/mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
etc/hadoop/yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
- 啟動ResourceManager守護進程和NodeManager守護進程:
$ sbin/start-yarn.sh
-
瀏覽ResourceManager的Web界面; 默認情況下它可用于:
- ResourceManager - http://localhost:8088/
運行MapReduce作業(yè)驳庭。
當你完成后,停止守護進程:
$ sbin/stop-yarn.sh
全分布式操作
有關設置完全分布式集群的信息氯窍,請參閱集群設置饲常。