單機模式(Standalone / Pseudo-Distributed)主要用於開發調試、邏輯驗證,所有守護進程(NameNode、DataNode、JobTracker、TaskTracker、SecondaryNameNode)運行在同一 JVM 或同一台機器上,配置較分布式模式簡化。
與分布式安裝相比,僅需調整兩處:
hadoop11),指明本機為唯一 DataNode。hdfs-site.xml 中 dfs.replication > 1,必須改為 1,否則寫入失敗。<!-- hdfs-site.xml -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- slaves -->
hadoop11
$ start-all.sh
$ jps
15556 Jps
15111 JobTracker
15258 TaskTracker
15014 SecondaryNameNode
14861 DataNode
14712 NameNode
所有進程正常啟動即表示環境就緒。
$ echo "word1 word2 word2 word3 word3 word3" > words
$ hadoop dfsadmin -safemode leave
$ hadoop fs -copyFromLocal words /single/input/words
$ hadoop fs -cat /single/input/words
word1 word2 word2 word3 word3 word3
$ hadoop jar hadoop-0.21.0/hadoop-mapred-examples-0.21.0.jar wordcount /single/input /single/output
$ hadoop fs -cat /single/output/part-r-00000
word1 1
word2 2
word3 3
ssh localhost 無密碼登入;JAVA_HOME、HADOOP_HOME、PATH 需正確設置;單機配置與分布式核心文件(core-site.xml、hdfs-site.xml、mapred-site.xml、masters)完全一致,僅需修改 slaves 列出所有 DataNode 主機名,並將 dfs.replication 設為合理值(通常 3),即可平滑遷移至叢集模式。