一、使用環境
操作系統:Ubuntu12.04
Hadoop版本:1.0.4
二、Hadoop官網安裝手冊
單機安裝分為“standalone”和“pseudo-distributed”兩種模式,我使用的是偽分布式模式。
手冊的安裝步驟很詳細,沒有必要當翻譯工了。但是手冊為了通用性,犧牲了一些關鍵問題的討論。第三節中提及一下。
三、手冊缺陷
手冊主要有兩個問題沒有說清楚:
1.Hadoop安裝在哪個目錄下好?
選擇一般有兩種:/usr/local和家目錄下。我選擇安裝在家目錄下,因為開始玩hadoop的時候,這樣避免了權限的麻煩;如果要部署應用的話,應該安裝在/usr/local。
2.配置文件的問題
這是安裝hadoop最重要的步驟。所有配置文件均在${HADOOP_HOME}/conf目錄下。
如果完全按照手冊配置,你的hadoop可能經常遇到NameNode或DataNode啟動不起來的情況。配置文件的不同主要在core-site.xml.
手冊配置如下:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>我的配置如下:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/zhengeek/hadoop-tmp</value>
<description>A base for other temporary directories.</description>
</property>
</configuration>
有兩處不同:
1.9000和8020這兩個端口都可以,只要沒有被占用。
2.最容易出問題的地方就在這裡。比如這個哥們遇到的問題。
hadoop運行起來,hdfs和mapreduce有許多數據需要保存。這可以通過dfs.name.dir 和 dfs.data.dir設置。如果沒有設置,那麼數據就會默認存放在/tmp目錄下,如果機器重啟,tmp目錄下的數據就會丟失,namenode自然啟動不起來了。
如果設置了hadoop.tmp.dir,那麼這些數據就會默認存放在改目錄下。
有關hadoop.tmp.dir設置的討論。
四、啟動hadoop
1.格式化hdfs
$bin/hadoop namenode -format
2.啟動hdfs
$bin/start-all.sh
3.檢查是否成功
$jps
若成功,會看到namenode,secondarynamenode,datanode,jobtracker和tasktracker五個進程。