單機安裝主要用於程序邏輯調試。安裝步驟基本通分布式安裝,包括環境變量,主要Hadoop配置文件,SSH配置等。主要的區別在於配置文件:slaves配置需要修改,另外如果分布式安裝中dfs.replication大於1,需要修改為1,因為只有1個datanode.
分布式安裝請參考:
http://acooly.iteye.com/blog/1179828
單機安裝中,使用一台機器,即做namenode和JobTracker也是datanode和TaskTracker,當然也是SecondaryNameNode。
主要配置文件core-site.xml,hdfs-site.xml,mapred-site.xml,masters完全同分布樹安裝配置,如果分布式安裝配置方案中hdfs-site.xml的副本數量定義大於1,則修改為1.
代碼如下:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
主要不同在於slaves的配置,分布式安裝中是多個其他機器作為datanode,單機模式本機是datanode,所以修改slaves配置文件為本機的域名。如:本機機器名為hadoop11,則:
[hadoop@hadoop11 ~]$ cat hadoop/conf/slaves
hadoop11
完成配置後,啟動:
代碼如下:
$ start-all.sh
$ jps
15556 Jps
15111 JobTracker
15258 TaskTracker
15014 SecondaryNameNode
14861 DataNode
14712 NameNode
運行DEMO
$ echo word1 word2 word2 word3 word3 word3 > words
$ cat words
word1 word2 word2 word3 word3 word3
$ hadoop dfsadmin -safemode leave
$ hadoop fs -copyFromLocal words /single/input/words
$ hadoop fs -cat /single/input/words
12/02/17 19:47:44 INFO security.Groups: Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping; cacheTimeout=300000
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 -ls /single/output
......
-rw-r--r-- 1 hadoop supergroup 0 2012-02-17 19:50 /single/output/_SUCCESS
-rw-r--r-- 1 hadoop supergroup 24 2012-02-17 19:50 /single/output/part-r-00000
$ hadoop fs -cat /single/output/part-r-00000
......
word1 1
word2 2
word3 3