Hadoop、Hbase、ZooKeeper的搭建

文章轉載自博客 http://edu.dataguru.cn/thread-241488-1-1.html。(寫的很詳細,留待之後實踐。)html

 

這裏有幾個主要關係:java

1.通過Map、Reduce運算後產生的結果看上去是被寫入到HBase了,可是其實HBase中HLog和StoreFile中的文件在進行flush to disk操做時,這兩個文件存儲到了HDFS的DataNode中,HDFS纔是永久存儲。node

2.ZooKeeper跟Hadoop Core、HBase有什麼關係呢?ZooKeeper都提供了哪些服務呢?主要有:管理Hadoop集羣中的NameNode,HBase中HBaseMaster的選舉,Servers之間狀態同步等。具體一點,細一點說,單隻HBase中ZooKeeper實例負責的工做就有:存儲HBase的Schema,實時監控HRegionServer,存儲全部Region的尋址入口,固然還有最多見的功能就是保證HBase集羣中只有一個Master。shell

 





 

二、搭建徹底分佈式集羣vim

 

在作hadoop,hbase這方面的工做有一段時間了,常常有剛接觸這些東西的身邊朋友,向我詢問基本環境的搭建問題,因而就想以回憶錄的形式把基本配置的步驟整理出來,以便剛接觸的朋友作個參考.

      HBase集羣創建在hadoop集羣基礎之上,因此在搭建HBase集羣以前須要把Hadoop集羣搭建起來,而且要考慮兩者的兼容性.如今就以四臺機器爲例,搭建一個簡單的集羣.

   使用的軟件版本:hadoop-1.0.3,hbase-0.94.2,zookeeper-3.4.4.

   四臺機器IP:10.2.11.1,10.2.11.2,10.2.11.3,10.2.11.4.
ssh


一.搭建Hadoop集羣
分佈式


   1. 安裝JDK.在每臺機器下創建相同的目錄/usr/Java.把下載的jdk(1.6及以上版本)複製到/usr/java目錄下面,使用命令
oop

 
 
  • tar –zxvf  jdk-7u9-Linux-i586.tar.gz  
  • sudo chmod 777 jdk-1.7.0_09  



把jdk的路徑加到環境變量中:                  spa

 
 
  • vim.tiny  /etc/profile  



  在該文件最後一行添加:orm

 
 
  • JAVA_HOME=/usr/java/jdk1.7.0_09  
  •             PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:PATH  
  •                CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib  



使修改的操做生效:                          

 
 
  • source   /etc/profile             



能夠使用                                                

 
 
  • java  -version  



進行驗證是否已配置成功.

2.在每臺機器上創建相同的用戶名                             

 
 
  • sudo adduser  cloud  
  • password   cloud  



輸入你要設置的密碼.而後在每臺機器做配置:                          

 
 
  • sudo gedit  /etc/hosts  



   打開文件後加入以下內容:                    

 
 
  • 10.2.11.1 namenode  
  • 10.2.11.2 datanode1  
  • 10.2.11.3 datanode2  
  • 10.2.11.4 datanode3  



3.在/home/cloud/目錄下創建一個文件夾project,命令以下:                  

 
 
  • mkdir  project    



        把hadoop-1.0.3.tar.gz,zookeeper-3.4.4.tar.gz,hbase-0.94.2.tar.gz,這些下載的軟件包放在此目錄下面,以待下一步操做。
4.使用命令

 
 
  • tar  –zxvf   hadoop-1.0.3.tar.gz  



進行解壓文件.進入配置目錄,開始配置.   

 
 
  • cd  hadoop-1.0.3/conf  



5. 使用命令 : vim.tiny   hadoop-env.sh 把java的安裝路徑加進去:

 
 
  • JAVA_HOME=/usr/java/jdk1.7.0_09/  



6. vim.tiny   core-site.xml ,加入以下配置:

 
 
  • <property>  
  •                <name>hadoop.tmp.dir</name>  
  •                           <value>/home/cloud/project/tmp</value>  
  • </property >  
  • < property >  
  •                  <name> fs.default.name</name>  
  •                        <value>hdfs://namenode:9000</value>  
  • </property >  



7.  vim.tiny   hdfs-site.xml,加入以下配置:

 
 
  • <property >  
  • <name>dfs.repplication</name>  
  • <value>3</value>  
  • </property >  
  • <property>  
  • <name>dfs.data.dir</name>  
  • <value>/home/cloud/project/tmp/data</value>  
  • </ property >  



8. gedit   mapred-site.xml,添加以下內容:

 
 
  • <property>  
  • <name>mapred.job.tracker</name>  
  • <value>namenode:9001</value>  
  • </property >  



9. gedit   master,加入以下配置內容:

 
 
  • namenode  



  10. gedit   slaves,加入以下配置內容:

 
 
  • datanode1  
  • datanode2  
  • datanode3   



11. 配置機器之間無密碼登錄.在每臺機器下創建相同目錄 .ssh ,如

 
 
  • mkdir     /home/cloud/.ssh  



在namenode節點下,使用命令ssh-keygen –t rsa,而後一直回車(中間不用輸入任何其餘信息),直到結束,而後使用命令cd .ssh,

 
 
  • cp id_rsa.pub authorized.keys      



使用遠程傳輸,把authorized.keys分別複製到其餘機器的.ssh目錄下面,命令以下:

 
 
  • scp authorized_keys  datanode1:/home/cloud/.ssh  
  • scp authorized_keys  datanode2:/home/cloud/.ssh  
  •        scp authorized_keys  datanode3:/home/cloud/.ssh         



  進入每臺機器的.ssh目錄下修改authorized_keys的權限,命令以下:

 
 
  • chmod 644 authorized_keys     



12.把配置好的hadoop分別拷貝到集羣中其餘機器上,命令以下:

 
 
  • scp –r hadoop-1.0.3  datanode1:/home/cloud/project  
  • scp –r hadoop-1.0.3  datanode2:/home/cloud/project  
  •      scp –r hadoop-1.0.3  datanode3:/home/cloud/project       



13.在namenode機器下,進入hadoop的安裝目錄,對文件系統進行格式化:

 
 
  • bin/hadoop namenode   –format    



14. 啓動集羣: bin/start-all.sh.      能夠使用

 
 
  • bin/hadoop  dfsadmin  –report                  



查看文件系統的使用狀況。      使用命令

 
 
  • jps  



查看節點服務啓動狀況,正常狀況有:jobtracker、namenode、jps、secondnamenode.不然啓動異常,從新檢查安裝步驟。

  二.安裝zookeeper      

1.在namenode機器下,配置zookeeper,先解壓安裝包,使用命令:

 
 
  • tar -zxvf zookeeper-3.4.4.tar.gz       



2.進入zookeeper的配置目錄,首先把zoo_sample.cfg重命名一下,能夠從新複製一遍,使用命令:

 
 
  • cp zoo_sample.cfg zoo.cfg      



3.gedit    zoo.cfg ,添加以下內容:

 
 
  •                dataDir=/home/cloud/project/tmp/zookeeper/data  
  • server.1 = datanode1:7000:7001  
  • server.2 =datanode2:7000:7001  
  • server.3 =datanode3:7000:7001  



4.把zookeeper分別遠程拷貝datanode1,datanode2,datenode3,使用以下命令:

 
 
  • scp –r zookeeper-3.4.4  datanode1:/home/cloud/project  
  • scp –r zookeeper-3.4.4  datanode2:/home/cloud/project  
  • scp –r zookeeper-3.4.4  datanode3:/home/cloud/project  



5.分別在剛纔的datanode節點/home/cloud/project/tmp/zookeeper/data目錄下,新建文件myid,而後使用命令

 
 
  • vim.tiny  myid  



   分別在datanode1,datanode2,datanode3的myid中寫入對應的server.n中的n,即分別是1,2,3.

6.開啓zookeeper服務,在三臺datanode機器的zookeeper安裝目錄下使用命令:

 
 
  • bin/zkServer.sh start  



三.部署hbase

1.解壓縮hbase的軟件包,使用命令:

 
 
  • tar -zxvf hbase-0.94.2.tar.gz  



2.進入hbase的配置目錄,在hbase-env.sh文件裏面加入java環境變量.即:

 
 
  • JAVA_HOME=/usr/java/jdk1.7.0_09/    



加入變量:

 
 
  • export  HBASE_MANAGES_ZK=false  



3. 編輯hbase-site.xml ,添加配置文件:

 
 
  • <property>  
  • <name>hbase.rootdir</name>  
  • <value>hdfs://namenode:9000/hbase</value>  
  • </property>  
  • <property>  
  • <name>hbase.cluster.distributed</name>  
  • <value>true</value>  
  • </property>  
  • <property>  
  • <name>hbase.zookeeper.quorum</name>  
  • <value>datanode1,datanode2,datanode3</value>  
  • </property>  
  • <property>  
  • <name>hbase.zookeeper.property.dataDir</name>  
  • <value>/home/cloud/project/tmp/zookeeper/data</value>  
  • </property>  



4. 編輯配置目錄下面的文件regionservers. 命令:

 
 
  • vim.tiny    regionservers    



加入以下內容:

 
 
  • datanode1  
  • datanode2  
  • datandoe3  



5. 把Hbase複製到其餘機器,命令以下:

 
 
  • scp -r hbase-0.94.2   datanode1:/home/cloud/project  
  • scp -r hbase-0.94.2   datanode2:/home/cloud/project  
  • scp -r hbase-0.94.2   datanode3:/home/cloud/project  



6. 開啓hbase服務。命令以下:

 
 
  • bin/start-hbase.sh     



能夠使用bin/hbaseshell 進入hbase自帶的shell環境,而後使用命令version等,進行查看hbase信息及創建表等操做。

相關文章
相關標籤/搜索