NameNode 主要存放文件映射和文件更改日志
SecondaryNameNode 一個守護(hù)進(jìn)程 定時(shí)從NameNode同步文件更改日志并合并成一條日志,方便hadoop每次重啟時(shí) 找到上次宕機(jī)的還原點(diǎn)。在后續(xù)的版本中會被backupNameNode和nameNode集群取代。
Jobtracker 任務(wù)調(diào)度守護(hù)進(jìn)程
Tasktracker 任務(wù)執(zhí)行進(jìn)程
DataName 數(shù)據(jù)存儲節(jié)點(diǎn),往往和Tasktracker部署在同一臺機(jī)器上。
GNU/Linux ,hadoop不建議在win32平臺上使用,顧這里只介紹在linux系統(tǒng)上的 安裝和配置
JavaTM1.5.x及以上的版本,必須安裝,建議選擇Sun公司發(fā)行的Java版本。
ssh 必須安裝并且保證 sshd一直運(yùn)行,以便用Hadoop 腳本管理遠(yuǎn)端Hadoop守護(hù)進(jìn)程。
本文使用的是 hadoop-0.20.203.0,筆者當(dāng)前的穩(wěn)定版本。
下載地址 http://hadoop.apache.org/common/releases.html#Download
本文 使用的是 4臺 linux機(jī)器,hadoop.master 作為namenode節(jié)點(diǎn),hadoop.second作為secondaryNameNode節(jié)點(diǎn),hadoop.slave1 作為第一datanode節(jié)點(diǎn),hadoop.slave2作為第二個datanode節(jié)點(diǎn)。
Ø 編輯環(huán)境變量
建議直接編輯 /etc/profile文件 增加 JAVA_HOME和HADOOP_HOME環(huán)境變量,具體事例如下所示:
[root@hadoop ~]# vi /etc/profile
增加如下幾行代碼
export JAVA_OPTS='-Xms256m -Xmx512m'
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=/usr/local/java/jre
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
筆者為了以后方便起停hadoop 把hadoop的bin也目錄加到path中。
: wq
讓環(huán)境變量即時(shí)生效
[root@hadoop ~]# source /etc/profile
Ø 修改 hosts文件
[root@hadoop ~]# vi /etc/hosts
在打開的文件中添加如下配置
192.168.2.17 hadoop.master
192.168.2.19 hadoop.slave1
192.168.2.14 hadoop.slave2
192.168.1.197 hadoop.second
增加如上幾個域名,具體ip地址由各自的實(shí)際情況定,這里只列出筆者實(shí)驗(yàn)環(huán)境所需的。 Hadoop集群環(huán)境中 使用域名訪問的,所以需要把slave,master等域名加到每臺服務(wù)器上。
Ø 建立hadoop專屬用戶
Groupadd hadoop
Useradd hadoop –g hadoop
Passwd hadoop
Changing password for user hadoop.
New UNIX password:
123456
Retype new UNIX password:
123456
Ø 安裝軟件
安裝JDK到/usr/local下命名為java
將下載好的hadoop-0.20.3.tar.gz文件上傳到master的/usr/local/hadoop
tar zxvf hadoop-0.20.3.tar.gz #解壓文件
設(shè)置hadoop目錄的訪問權(quán)限
chown –R hadoop:hadoop /usr/local/hadoop
Ø 改機(jī)器名
把每臺機(jī)器的 機(jī)器名改成localhost。
Vi /etc/sysconfig/network
修改HOSTNAME = localhost
此處是沒搞清楚為什么的地方,實(shí)驗(yàn)結(jié)果表明 必須改成localhost hadoop才能正常啟動。具體原理 目前還沒有搞清楚,只知其然,其所以然有待于以后研究。
7.2 每個節(jié)點(diǎn)不同的配置
7.2.1 配置hadoop
Hadoop的配置文件 在早期版本中都放在同一個文件里 hadoop-site.xml,在新版本中hadoop把配置文件做了區(qū)分,分成了:
Core-site.xml 配置Common組件的屬性
Hadoop-site.xml 配置HDFS組件的屬性
Mapred-site.xml 配置map-reduce組件的屬性
除了這3個配置文件以外 還有 hadoop-env.xml 用來設(shè)置 hadoop用到的環(huán)境變量;masters文件用來配置 SNN 節(jié)點(diǎn)地址 注意必須配置域名;slaves文件 配置所有DN節(jié)點(diǎn)的地址,必須是域名
7.2.2 Core-site.xml 配置實(shí)例
DN節(jié)點(diǎn) 以及 NN節(jié)點(diǎn),snn節(jié)點(diǎn)配置一至:
<property>
<name>fs.default.name</name> // 配置NN節(jié)點(diǎn)地址和端口號
<value>hdfs://hadoop.master:9000</value> //注意格式必須是 host:port的形式
</property>
<property>
<name>hadoop.tmp.dir</name> //hadoop臨時(shí)目錄用來存放nn臨時(shí)文件
<value>/usr/local/hadoop/tmp</value> //該目錄必須預(yù)先手工創(chuàng)建不能刪除
</property>
<property>
<name>fs.checkpoint.period</name> //snn檢查nn日志的時(shí)間周期
<value>60</value> //單位是秒,正式環(huán)境上建議配置成12小時(shí)
</property>
<property>
<name>fs.checkpoint.size</name> //snn每次從nn上讀取的數(shù)據(jù)大小
<value>67108864</value> //通常情況下默認(rèn)值就可以
</property>
7.2.3 Hdfs-site.xml
Ø NN 節(jié)點(diǎn)
<property>
<name>dfs.name.dir</name> // 指定name 鏡像文件存放目錄,如不指定則
<value>/usr/local/hadoop/hdfs/name</value> //默認(rèn)為core-site中配置的tmp目錄
</property>
<property>
<name>dfs.replication</name> //數(shù)據(jù)節(jié)點(diǎn)冗余備份的數(shù)量,由于實(shí)驗(yàn)只有2個
<value>1</value> // NN 顧設(shè)置唯一,實(shí)際配置是可由實(shí)際情況
</property> //配置,建議盡量大于3
<property>
<name>dfs.permissions</name> //是否需要角色權(quán)限驗(yàn)證,上傳文件時(shí)會用到,
<value>false</value> //如果為true ,需要綁定hadoop用戶角色
</property>
<property>
<name>dfs.secondary.http.address</name> //SNN 的web訪問地址。
<value>hadoop.second:50090</value>
</property>
Ø DN節(jié)點(diǎn)配置
<property>
<name>dfs.data.dir</name> // 數(shù)據(jù)存放的目錄,如果不寫 默認(rèn)為
<value>/usr/local/hadoop/hdfs/data</value> // core-site中配置的tmp目錄
</property>
<property>
<name>dfs.replication</name> //數(shù)據(jù)節(jié)點(diǎn)冗余備份的數(shù)量,由于實(shí)驗(yàn)只有2個
<value>1</value> // NN 顧設(shè)置唯一,實(shí)際配置是可由實(shí)際情況
</property> //配置,建議盡量大于3
<property>
<name>dfs.permissions</name> //是否需要角色權(quán)限驗(yàn)證,上傳文件時(shí)會用到
<value>false</value> //如果為true ,需要綁定hadoop用戶角色
</property>
<property>
<name>dfs.secondary.http.address</name> //SNN 的web訪問地址
<value>hadoop.second:50090</value>
</property>
Ø SN節(jié)點(diǎn)的配置
<property>
<name>dfs.name.dir</name> // 指定name 鏡像文件存放目錄,如不指定則
<value>/usr/local/hadoop/hdfs/name</value> //默認(rèn)為core-site中配置的tmp目錄
</property>
<property>
<name>dfs.replication</name> //數(shù)據(jù)節(jié)點(diǎn)冗余備份的數(shù)量,由于實(shí)驗(yàn)只有2個
<value>1</value> // NN 顧設(shè)置唯一,實(shí)際配置是可由實(shí)際情況
</property> //配置,建議盡量大于3
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.http.address</name> NN 的web訪問地址,注意此處和其他節(jié)點(diǎn)不同
<value>hadoop.master:50070</value>
</property>
Ø Mapred-site.xml配置
所有節(jié)點(diǎn)都一致
<property>
<name>mapred.job.tracker</name>
<value>hadoop.master:9001</value> //必須為host:port的形式,不能直接寫ip
</property>
Jobtracker的分布式的配置方法目前沒設(shè)置成功,有待于繼續(xù)研究
Ø Masters文件配置和slaves文件配置 所有節(jié)點(diǎn)全部一致
所有節(jié)點(diǎn)的masters 里面均配置 SNN的域名
所有節(jié)點(diǎn)的slaves 里面均配置所有DN的域名,一行一個DN
Ø Hadoop-env.sh 文件配置
里面是hadoop運(yùn)行時(shí)定義的環(huán)境變量
其他的都可以用默認(rèn)值,但是有一項(xiàng)必須修改 就是javahome環(huán)境變量,指定到實(shí)際的javahome目錄。實(shí)例:
export JAVA_HOME=/usr/local/java
1. hadoop無用戶登錄配置
用 hadoop用戶進(jìn)入每臺機(jī)器:
進(jìn)入 /home/hadoop 目錄
ssh-keygen -t rsa #建立ssh目錄,敲回車到底
1) 登錄NN服務(wù)器
2) 進(jìn)入/home/hadoop/.ssh目錄
3) scp -r id_rsa.pub hadoop@hadoop.slave1:/home/hadoop/.ssh/authorized_keys
#將master上的密鑰傳到slave1的hadoop用戶下,重命名為authorized_keys
4) scp -r id_rsa.pub hadoop@hdoop.slave2:/home/hadoop/.ssh/authorized_keys
#將master上的密鑰傳到slave2的hadoop用戶下,重命名為authorized_keys
5) scp -r id_rsa.pub hadoop@hadoop.second:/home/hadoop/.ssh/authorized_keys
#將master上的密鑰傳到snn的hadoop用戶下,重命名為authorized_keys
6) 用hadoop用戶進(jìn)入hadoop.slave1 /home/hadoop/.ssh目錄
7) cat id_rsa.pub >> authorized_keys
#把自己的id_rsa.pub內(nèi)容也放到authorized_keys中
8) scp -r id_rsa.pub hadoop@hadoop.master:/home/hadoop/.ssh/authorized_keys_s1
#將slave1上的密鑰傳到master的hadoop用戶下
9) 用hadoop用戶進(jìn)入hadoop.slave2 /home/hadoop/.ssh目錄
10) cat id_rsa.pub >> authorized_keys
#把自己的id_rsa.pub內(nèi)容也放到authorized_keys中
11) scp -r id_rsa.pub hadoop@hadoop.master:/home/hadoop/.ssh/authorized_keys_s2
#將slave2上的密鑰傳到master的hadoop用戶下
12) 用hadoop用戶進(jìn)入hadoop.second /home/hadoop/.ssh目錄
13) cat id_rsa.pub >> authorized_keys
#把自己的id_rsa.pub內(nèi)容也放到authorized_keys中
14) scp -r id_rsa.pub hadoop@hadoop.master:/home/hadoop/.ssh/authorized_keys_second
#將snn上的密鑰傳到master的hadoop用戶下
15) 在master,上執(zhí)行以下操作
16) cat id_rsa.pub >> authorized_keys
#將本地密鑰添加authorized_keys
17) cat authorized_keys_s1 >> authorized_keys
18) cat authorized_keys_s2 >> authorized_keys
19) cat authorized_keys_second >> authorized_keys
20) rm authorized_keys_second
21) rm authorized_keys_s1
22) rm authorized_keys_s2
這樣主節(jié)點(diǎn)和從節(jié)點(diǎn)之間就可以不用密碼直接ssh訪問
特別注意 authorized_keys 文件的訪問權(quán)限 必須設(shè)置成600
登錄每臺機(jī)器 執(zhí)行 chmod 600 authorized_keys
2. 啟動hadoop
用hadoop用戶進(jìn)入nn服務(wù)器的 /usr/local/hadoop/hadoop-0.20.203.0/bin目錄
Ø 格式化hadoop
Hadoop namenode –format
Ø 啟動hadoop
./start-all.ssh ,不建議這樣啟動 建議單獨(dú)啟動守護(hù)進(jìn)程。
Ø Hadoop日志目錄
/usr/local/hadoop/hadoop-0.20.203.0/logs
啟動完檢查下啟動日志,啟動后 到nn上查看
hadoop-hadoop-namenode-master.log
hadoop-hadoop-jobtracker-master.log
因?yàn)?/span> 我們的 nn和 jobtracker 部署在同一臺機(jī)器上,所有master上會有2個日志
登錄snn節(jié)點(diǎn)服務(wù)器 查看
hadoop-hadoop-secondarynamenode-master.log
這幾個沒錯誤就OK了
這時(shí)候就可以進(jìn)入管理頁面看看了
posted on 2011-12-08 13:14
鄧兵野 閱讀(3507)
評論(2) 編輯 收藏