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