深入剖析Hadoop HBase
本節(jié)向大家介紹一下Hadoop HBase方面的知識(shí),主要包括Hadoop HBase簡(jiǎn)要介紹和環(huán)境部署兩大部分的內(nèi)容,希望通過本節(jié)的介紹大家對(duì)Hadoop HBase有初步的了解。
Hadoop HBase
一.簡(jiǎn)要介紹
HadoopHBase是ApacheHadoop項(xiàng)目的一部分,基于HadoopDistributedFileSystem,是一個(gè)開源的,基于列存儲(chǔ)模型的分布式數(shù)據(jù)庫(kù)。HBase的目標(biāo)是(原文):thehostingofverylargetables--billionsofrowsXmillionsofcolumns--atopclustersofcommodityhardward.
二.環(huán)境部署
Hadoop HBase具體步驟如下:
首先,保證計(jì)算機(jī)中安裝了JDK和openSSH
JDK可以從Sun的官方網(wǎng)站上下載--------http://java.sun.com/javase/downloads/index.jsp,
openSSH在Linux系統(tǒng)安裝的時(shí)候一般都一起安裝的,如果沒有,可以在googlesearch一下,此處不再贅述。
接下來,保證兩臺(tái)計(jì)算機(jī)中都有一個(gè)統(tǒng)一名稱的用戶hadoop(自己定),本人設(shè)置的情況如下:
/home/hadoop
將Hadoop文件解壓到/home/hadoop/hadoopinstall文件夾下。
新建目錄/home/hadoop/hadoopinstall/hadoopconf,將/home/hadoop/hadoopinstall/hadoop-0.16.4/conf下的
masters
slaves
hadoop-env.sh
hadoop-site.xml
copythefourfilesto/home/hadoop/hadoopinstall/hadoopconfandthen
setHADOOP_CONF_DIRto/home/hadoop/hadoopinstall/hadoopconf
(/etc/profile)
設(shè)置/etc/hostsfile加上
192.168.1.12(本機(jī)IP)hadoop-1hadoop-1
192.168.1.13(另一臺(tái)機(jī)器IP)hadoop-2hadoop-2
將hadoop-1作為NamenodeandJobTracker
將hadoop-2作為DatanodeandTaskTracker
Hadoop HBase的SSH設(shè)置
在Hadoop啟動(dòng)以后,Namenode是通過SSH(SecureShell)來啟動(dòng)和停止各個(gè)節(jié)點(diǎn)上的各種守護(hù)進(jìn)程的,這就需要在節(jié)點(diǎn)之間執(zhí)行指令的時(shí)候是不需要輸入密碼的方式,故我們需要配置SSH使用無密碼公鑰認(rèn)證的方式。
首先要保證每臺(tái)機(jī)器上都裝了SSH服務(wù)器,且都正常啟動(dòng)。實(shí)際中我們用的都是OpenSSH,這是SSH協(xié)議的一個(gè)免費(fèi)開源實(shí)現(xiàn)。
首先,在hadoop-1上生成密鑰對(duì):
[hadoop@hadoop:~]#ssh-keygen-trsa
這個(gè)命令將為dbrg-1上的用戶dbrg生成其密鑰對(duì),詢問其保存路徑時(shí)直接回車采用默認(rèn)路徑,當(dāng)提示要為生成的密鑰輸入passphrase的時(shí)候,直接回車,也就是將其設(shè)定為空密碼。生成的密鑰對(duì)id_rsa,id_rsa.pub,默認(rèn)存儲(chǔ)在/home/hadoop/.ssh目錄下。然后將id_rsa.pub的內(nèi)容復(fù)制到每個(gè)機(jī)器(也包括本機(jī))的/home/hadoop/.ssh/authorized_keys文件中,如果機(jī)器上已經(jīng)有authorized_keys這個(gè)文件了,就在文件末尾加上id_rsa.pub中的內(nèi)容,如果沒有authorized_keys這個(gè)文件,直接cp或者scp就好了,下面的操作假設(shè)各個(gè)機(jī)器上都沒有authorized_keys文件。
對(duì)于hadoop-1
[hadoop@hadoop-1:~/.ssh]$cpid_rsa.pubauthorized_keys
對(duì)于hadoop-2
[hadoop@hadoop-2:~]$mkdir.ssh
[hadoop@hadoop-1:~/.ssh]$scpauthorized_keyshadoop-2:/home/hadoop/.ssh/
此處的scp就是通過ssh進(jìn)行遠(yuǎn)程copy,此處需要輸入遠(yuǎn)程主機(jī)的密碼,即hadoop-2機(jī)器上hadoop帳戶的密碼,當(dāng)然,你也可以用其他方法將authorized_keys文件拷貝到其他機(jī)器上
[hadoop@hadoop-2:.ssh]$chmod644authorized_keys
這一步非常關(guān)鍵,必須保證authorized_keys只對(duì)其所有者有讀寫權(quán)限,其他人不允許有寫的權(quán)限,否則SSH是不會(huì)工作的。
接著,在三臺(tái)機(jī)器上都需要對(duì)sshd服務(wù)進(jìn)行配置,在三臺(tái)機(jī)器上修改文件/etc/ssh/sshd_config
#去除密碼認(rèn)證
PasswordAuthenticationno
AuthorizedKeyFile.ssh/authorized_keys
至此各個(gè)機(jī)器上的SSH配置已經(jīng)完成。
Hadoop HBase的Hadoop環(huán)境變量
hadoop_env.sh中設(shè)置Hadoop需要的環(huán)境變量,其中JAVA_HOME是必須設(shè)定的變量。HADOOP_HOME變量可以設(shè)定也可以不設(shè)定,如果不設(shè)定,HADOOP_HOME默認(rèn)的是bin目錄的父目錄。
本人的設(shè)置如下:
exportHADOOP_HOME=/home/hadoop/hadoopinstall/hadoop-0.16.4
exportJAVA_HOME=/usr/java/jdk1.6.0
Hadoop HBase的Hadoop配置文件
如前所述,在/home/hadoop/hadoopconf目錄下,打開slaves文件,該文件用來指定所有的從節(jié)點(diǎn),一行指定一個(gè)主機(jī)名。即本文中的hadoop-2,因此slaves文件看起來應(yīng)該是這樣的
hadoop-2
在conf/目錄中的hadoop-default.xml中包含了Hadoop的所有配置項(xiàng),但是不允許直接修改!可以在hadoop-conf/目錄下的hadoop-site.xml里面定義我們需要的項(xiàng),其值會(huì)覆蓋hadoop-default.xml中的默認(rèn)值??梢愿鶕?jù)自己的實(shí)際需要來進(jìn)行定制。
啟動(dòng)hadoop
在bin/下面有很多啟動(dòng)腳本,可以根據(jù)自己的需要來啟動(dòng)。
*start-all.sh啟動(dòng)所有的Hadoop守護(hù)。包括namenode,datanode,jobtracker,tasktrack
*stop-all.sh停止所有的Hadoop
*start-mapred.sh啟動(dòng)Map/Reduce守護(hù)。包括Jobtracker和Tasktrack
*stop-mapred.sh停止Map/Reduce守護(hù)
*start-dfs.sh啟動(dòng)HadoopDFS守護(hù).Namenode和Datanode
*stop-dfs.sh停止DFS守護(hù)。本節(jié)有關(guān)Hadoop HBase的內(nèi)容就介紹到這里。
【編輯推薦】