環境準備:
Centos 5.5 x64 (3臺)
10.129.8.52 (master) ======>> NameNode, SecondaryNameNode,JobTracker
10.129.8.76 (slave01) ======>> DataNode, TaskTracker
10.129.8.33 (slave02) ======>> DataNode, TaskTracker
單臺機器的本地host 文件如下:
10.129.8.52 master
10.129.8.76 slave01
10.129.8.33 slave02
(一) 配置好master 到slave 的ssh 登陸信任關係,做好都相互之間到配置好
(二) 安裝好 java version "1.6.0_24" 源碼包爲jdk-6u24-linux-x64.bin
(三) 安裝hadoop 集羣
下載hadoop-1.2.0.tar.gz,然後解壓到/home/hadoop/hadoop目錄下
修改相應的配置文件:
1 hadoop-env.sh 指明 java 的環境變量 export JAVA_HOME=/usr/local/java/jdk1.6.0_24
2 core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9010</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/tmp</value>
</property>
</configuration>
3 mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9011</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/hadoop/hadoop/tmp</value>
</property>
</configuration>
4 hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<!--
NameNode 主要存放文件映射和文件更改日誌
SecondaryNameNode 一個守護進程 定時從NameNode同步文件更改日誌並合併成一條日誌,方便hadoop每次重啓時 找到上次宕機的還原點。在後續的版本中會被backupNameNode和nameNode集羣取代。
Jobtracker 任務調度守護進程
Tasktracker 任務執行進程
DataName 數據存儲節點,往往和Tasktracker部署在同一臺機器上。
-->
<configuration>
<property>
<name>dfs.name.dir</name> // 指定name 鏡像文件存放目錄,如不指定則
<value>/home/hadoop/filedata/name01,/home/hadoop/filedata/name02</value> //默認爲core-site中配置的tmp目錄
</property>
<property>
<name>dfs.data.dir</name> // 數據存放的目錄,如果不寫 默認爲
<value>/home/hadoop/filedata/data01</value> // core-site中配置的tmp目錄
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
5 masters
master
6 slaves (如果這裏包含有master的主機名,那麼master也會成爲datanode,如果沒有,那麼master就只會成爲namenode,不會成爲datanode)
slave01
slave02
(四) 創建相應的目錄:
/home/hadoop/hadoop/tmp hadoop.tmp.dir :Hadoop的默認臨時路徑,這個最好配置,如果在新增節點或者其他情況下莫名其妙的DataNode啓動不了,就刪除此文件中的tmp目錄即可。不過如果刪除了NameNode機器的此目錄,那麼就需要重新執行NameNode格式化的命令。
/home/hadoop/filedata NameNode持久存儲名字空間及事務日誌的本地文件系統路徑。 當這個值是一個逗號分割的目錄列表時,nametable數據將會被複制到所有目錄中做冗餘備份。(他下面有子目錄,程序自己創建)
/home/hadoop/filedta/data01 DataNode存放塊數據的本地文件系統路徑,逗號分割的列表。 當這個值是逗號分割的目錄列表時,數據將被存儲在所有目錄下,通常分佈在不同設備上。 (程序自己創建)
(五) 在namenode 上格式化
/home/hadoop/hadoop/bin/hadoop namenode -format
查看輸出保證分佈式文件系統格式化成功
執行完後可以到master機器上看到/home/hadoop//name1和/home/hadoop//name2兩個目錄。在主節點 master上面啓動hadoop,主節點會啓動所有從節點的hadoop。
(六) /home/hadoop/hadoop/bin/start-all.sh (啓動所有服務)
執行完畢後,可以用jps 查看所有啓動的服務 (啓動日誌在hadoop安裝的logs目錄下)
[hadoop@master ~]$ jps
16276 SecondaryNameNode
16374 JobTracker
16103 NameNode
19003 Jps
這時可以去看看dataname節點上有沒有創建數據目錄,當然也可以用jps查看,但是我的dataname有得這個命令可以用,有得不可以,原因待查
(七) 上傳文件測試
/home/hadoop/hadoop/bin/hadoop dfs -put X-ForWarded-For-survey.beisen.com-10.22.1.35_D2013070* /home/iis_log/survey.beisen.com/20130705
(八) 查看上傳的文件
/home/hadoop/hadoop/bin/hadoop dfs -ls /home/iis_log/survey.beisen.com/20130705
advanceiislog map/reduces 處理過程,下一節介紹!!