最近研究hadoop,建議下載hadoop0.19版本,相對穩定些。故我們就使用hadoop0.19版本來
安裝學習。網上有幾篇文章講解如何安裝,但都有這樣那樣的問題,下面就以我們的安裝步驟來說明
1、硬件環境
我們採用了3臺機器來構建,都安裝的是Ubuntu8.04系統,並且都有一個名爲“quan“的帳號,如下:
主機名稱:360quan-1 ip:192.168.0.37 功能:NameNode,JobTracker
主機名稱:360quan-2 ip:192.168.0.43 功能:DataNode,TaskTracker
主機名稱:360quan-3 ip:192.168.0.53 功能:DataNode,TaskTracker
重點:修改3臺機器的/etc/hosts,讓彼此的主機名稱和ip都能順利解析
127.0.0.1 localhost
192.168.0.37 360quan-1
192.168.0.43 360quan-2
192.168.0.53 360quan-3
2、每臺機器都要安裝java環境,我們的路徑統一爲“/opt/jdk1.6.0_03“,並添加到系統環境變量 sudo gedit /etc/profile
- JAVA_HOME=/opt/jdk1.6.0_03
- CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:.
- PATH=$JAVA_HOME/bin:$PATH
- export JAVA_HOME
- export CLASSPATH
- export PATH
JAVA_HOME=/opt/jdk1.6.0_03 CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:. PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME export CLASSPATH export PATH
3、下載hadoop0.16.3,hbase0.12版本到"360quan-1",將hadoop解壓到/home/quan/opt /hadoop,hbase解壓到hadoop/contrib/hbase。建議最好也將hadoop的目錄添加到環境變量裏面去:
- HADOOP_HOME=/home/quan/opt/hadoop #這是hadoop的主目錄
- export HADOOP_HOME
- HADOOP_CONF_DIR=$HADOOP_HOME/conf #這是hadoop的配置文件目錄
- export HADOOP_CONF_DIR
- HADOOP_LOG_DIR=/home/quan/hadoop/log #存放運行日誌目錄
- export HADOOP_LOG_DIR
- HADOOP_SSH_OPTS="-p 22" #SSH的端口號,其實默認就是22
- export HADOOP_SSH_OPTS
HADOOP_HOME=/home/quan/opt/hadoop #這是hadoop的主目錄 export HADOOP_HOME HADOOP_CONF_DIR=$HADOOP_HOME/conf #這是hadoop的配置文件目錄 export HADOOP_CONF_DIR HADOOP_LOG_DIR=/home/quan/hadoop/log #存放運行日誌目錄 export HADOOP_LOG_DIR HADOOP_SSH_OPTS="-p 22" #SSH的端口號,其實默認就是22 export HADOOP_SSH_OPTS
4、安裝ssh,這裏注意ubuntu8.04下面是ssh2,如果是ssh1的話,請升級,安裝完後,建立ssh通道,使用空密碼(生產環境可不能使用空密碼啊),這裏使用“360quan-1”這臺機器爲例說明:
- sudo apt-get install ssh
- ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
- cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
sudo apt-get install ssh ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
以上配置完成後,執行一下ssh localhsot,確認你的每臺機器都可以使用ssh(不需要密碼)連接,連接成功後會輸出以下信息:
- Linux zhangqiaohui-desktop 2.6.24-19-generic #1 SMP Wed Jun 4 16:35:01 UTC 2008 i686
- The programs included with the Ubuntu system are free software;
- the exact distribution terms for each program are described in the
- individual files in /usr/share/doc/*/copyright.
- Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
- applicable law.
- To access official Ubuntu documentation, please visit:
- http://help.ubuntu.com/
- Last login: Thu Jun 12 10:40:50 2008 from localhost
Linux zhangqiaohui-desktop 2.6.24-19-generic #1 SMP Wed Jun 4 16:35:01 UTC 2008 i686 The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To access official Ubuntu documentation, please visit: http://help.ubuntu.com/ Last login: Thu Jun 12 10:40:50 2008 from localhost
ok後,我們將“360quan-1”機器上產生的這個空密鑰拷貝到另外2臺機器上,作爲公共密鑰,讓namenode也可以不需要密碼訪問2臺datanode:
- sudo scp authorized_keys 360quan-2:/home/quan/.ssh/
- sudo scp authorized_keys 360quan-3:/home/quan/.ssh/
- ssh 360quan-2
- ssh 360quan-3
sudo scp authorized_keys 360quan-2:/home/quan/.ssh/ sudo scp authorized_keys 360quan-3:/home/quan/.ssh/ ssh 360quan-2 ssh 360quan-3
5、接下來,我們要修改hadoop的相關設定了。修改"360quan-1"上面的hadoop的[conf/masters]、[conf/slaves]這2個文件:
Master設置(<HADOOP_HOME>/conf/masters) :360quan-1
Slave設置(<HADOOP_HOME>/conf/slaves) L:360quan-2 360quan-3
6、修改[conf/hadoop-env.sh]:
export JAVA_HOME=/opt/jdk1.6.0_03
7、修改[conf/hadoop-site.xml],這裏只是幾個常用的屬性配置,有關hadoop的性能優化調整,需要研究hadoop-default.xml:
- <configuration>
- <property>
- <name>fs.default.name</name>
- <value>360quan-1:9000</value>
- <description>指定NameNode的IP地址和端口號,缺省值是file:///, 表示使用本地文件系統, 用於單機非分佈式模式</description>
- </property>
- <property>
- <name>mapred.job.tracker</name>
- <value>360quan-1:9001</value>
- <description>指定 JobTracker的IP地址和端口號。缺省值是local, 表示在本地同一Java進程內執行JobTracker和TaskTracker, 用於單機非分佈式模式</description>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- <description>指定HDFS中每Block被複制的次數,起數據冗餘備份的作用。在典型的生產系統中,這個數常常設置爲3。</description>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/home/quan/opt/hadoop/tmp/</value>
- </property>
- </configuration>
<configuration> <property> <name>fs.default.name</name> <value>360quan-1:9000</value> <description>指定NameNode的IP地址和端口號,缺省值是file:///, 表示使用本地文件系統, 用於單機非分佈式模式</description> </property> <property> <name>mapred.job.tracker</name> <value>360quan-1:9001</value> <description>指定 JobTracker的IP地址和端口號。缺省值是local, 表示在本地同一Java進程內執行JobTracker和TaskTracker, 用於單機非分佈式模式</description> </property> <property> <name>dfs.replication</name> <value>1</value> <description>指定HDFS中每Block被複制的次數,起數據冗餘備份的作用。在典型的生產系統中,這個數常常設置爲3。</description> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/quan/opt/hadoop/tmp/</value> </property> </configuration>
8、修改hbase的[hbase-evn.sh]:
export JAVA_HOME=/opt/jdk1.6.0_03
9、修改hbase的[hbase-site.xml]:
- <configuration>
- <property>
- <name>hbase.master</name>
- <value>360quan-1:60000</value>
- </property>
- <property>
- <name>hbase.rootdir</name>
- <value>hdfs://360quan-1:9000/hbase</value>
- </property>
- </configuration>
<configuration> <property> <name>hbase.master</name> <value>360quan-1:60000</value> </property> <property> <name>hbase.rootdir</name> <value>hdfs://360quan-1:9000/hbase</value> </property> </configuration>
10、然後將hadoop的整體環境拷貝到360quan-2、360quan-3上面去
scp -r /home/quan/hadoop 360quan-2:/home/hdp/
scp -r /home/quan/hadoop 360quan-3:/home/hdp/
11、在360quan-1這個namenode上面格式化一個新的分佈式文件系統HDFS,就是hadoop-site.xml文件中指定的hadoop.tmp.dir路徑
<HADOOP_HOME>/bin/hadoop namenode -format
到此大致上就完成了屬於你自己的Cloud Computing環境了
啓動hadoop:<HADOOP_HOME>/bin/start-all.sh
啓動hbase:<HADOOP_HOME>/contrib/hbase/bin/start-hbase.sh
停止hbase:<HADOOP_HOME>/contrib/hbase/bin/stop-hbase.sh
停止hadoop:<HADOOP_HOME>/bin/stop-all.sh
說明:
(1) 執行 $
bin/start-all.sh啓動Hadoop進程後,會啓動5個java進程,同時會在/tmp目錄下創建五個pid文件記錄這些進程ID號。通過
這五個文件,可以得知namenode,datanode,secondary namenode,jobtracker,tasktracker
分別對應於哪一個Java進程。當你覺得 Hadoop 工作不正常時,可以首先查看這5個java進程是否在正常運行,運行jps命令也可以查看。
(2) 訪問 http://360quan-1:50030 可以查看JobTracker的運行狀態。訪問
http://360quan-1:50060可以查看 TaskTracker的運行狀態。訪問
http://360quan-1:50070可以查看NameNode以及整個分佈式文件系統的狀態,瀏覽分佈式文件系統中的文件以及log等。
(3) 查看 ${HADOOP_HOME}/logs目錄下的log文件,namenode,datanode,secondary
namenode,jobtracker,
tasktracker各有一個對應的log文件,每一次運行的計算任務也有對應用log文件。分析這些log文件有助於找到故障原因。