Hadoop+Hbase+ZooKeeper 安裝配置及需要注意的事項

本文重點講解Hbase的安裝、配置、問題解決

關於hadoop和zookeeper的安裝配置及相關問題,可以參考:

hadoop:http://blog.csdn.net/FranklySun/archive/2011/05/13/6417984.aspx

zookeeper:http://blog.csdn.net/FranklySun/archive/2011/05/16/6424582.aspx

 

測試環境

三系統均爲  Ubuntu11.04,分別是:

 

frank-1(主機名:即hostname):192.168.0.100   masters-----namenode
frank-2
(主機名:即hostname):192.168.0.102   slaves-------datanode

frank-3(主機名:即hostname):192.168.0.103   slaves-------datanode

 

 

 

要求

 

以下是安裝使用hbase所要遵守的要求,如果不這樣做的話,會產生不可預知的異常、錯誤、數據丟少等問題(當然,有可能會成功)。

 

1、JDK

     這個不用說了,必須的(jdk6以上)

2、hadoop

     必須正確的安裝和配置,可參考http://blog.csdn.net/FranklySun/archive/2011/05/13/6417984.aspx(要注意:版本問題)

 

     版本問題,這是一個非常重要的問題,一定要重視它,否則會很杯具。我就是因爲這個整了好幾個小時(當然還包括其他的問題)。

     This version of HBase will only run on Hadoop 0.20.x. It will not run on hadoop 0.21.x (nor 0.22.x). HBase will lose data unless it is running on an HDFS that has a durable sync. Currently only the branch-0.20-append branch has this attribute[]. No official releases have been made from this branch up to now so you will have to build your own Hadoop from the tip of this branch. Michael Noll has written a detailed blog, Building an Hadoop 0.20.x version for HBase 0.90.2, on how to build an Hadoop from branch-0.20-append. Recommended.

     以上是官方文檔http://hbase.apache.org/book/notsoquick.html中的敘述,只看到了Hadoop 0.20.x.,所以剛開始用了hadoop-0.20.0,經測試是不可以的,hadoop-0.20.2測試成功(當然這裏的hbase版本是0.90.2,其他的版本的情況就不清楚了)。

3、SSH

    也是必須的,上面hadoop的安裝過程中提到。

4、DNS

     即:各節點的主機名與IP設置,在hadoop配置中也提到。

     如果,不是hosts中配置的服務器,還可以通過hbase.regionserver.dns.nameserver來另外指定。(這是在hbase-site.xml中配置)

5、NTP

    所有節點的時間校準。(網上有很多資料,這裏省略)

6、ulimit and nproc(所有節點均要設置)

    默認的大小是1024,以Ubuntu爲例:

    在/etc/security/limits.conf文件中增加以下配置:

    hadoop      -            nofile      32768

    hadoop      hard      nproc      32000

    hadoop      soft       nproc      32000

    在/etc/pam.d/common-session文件中增加下面配置,否則上面的配置不啓作用:

    session      required       pam_limits.so

7、在/home/frank/HadoopInstall/hadoop-config/hdfs-site.xml文件中增加配置:

     <property>

<name>dfs.datanode.max.xcievers</name>

<value>4096</value>

</property>

8、ZooKeeper(使用單獨的zookeeper,並非hbase自帶的zookeeper)

zookeeper的安裝配置可參考http://blog.csdn.net/FranklySun/archive/2011/05/16/6424582.aspx

     其中,zoo.cfg的配置如下:

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial 

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between 

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

dataDir=/home/frank/ZooKeeperInstall/data

# the port at which the clients will connect

clientPort=2222

 

server.1=192.168.0.100:2888:3888

server.2=192.168.0.102:2888:3888

server.3=192.168.0.103:2888:3888

 

 

安裝

 

    很簡單,下載hbase-0.20.2.tar.gz, 解壓到預設目錄即可。我的目錄:/home/frank/HBaseInstall/

    解壓完成後建立鏈接(好處就不多說了):$ ln -s hbase-0.20.2 hbase

 

配置(以下是按照集羣的方式配置的,單機的配置可參考網上資料)

 

1、修改conf/hbase-env.sh

export JAVA_HOME=/home/frank/JavaInstall/jdk

export HBASE_CLASSPATH=/home/frank/HadoopInstall/hadoop/conf

export HBASE_MANAGES_ZK=false

 

2、修改hbase-site.xml,增加以下內容

<property>

    <name>hbase.rootdir</name>

    <value>hdfs://frank-1:9000/hbase</value>

</property>

<property>

    <name>hbase.cluster.distributed</name>

    <value>true</value>

</property>

    <property>

      <name>hbase.zookeeper.property.clientPort</name>

      <value>2222</value>

      <description>Property from ZooKeeper's config zoo.cfg.

      The port at which the clients will connect.

      </description>

    </property>

其中:

 

hbase.rootdir:“hdfs://frank-1:9000”這部分必須和hadoop-config/core-site.xml中的fs.default.name保持一致;

hbase.zookeeper.property.clientPort,是由於我在zoo.cfg中修改了默認的clientPort,所以在這裏要設置,缺省是2181

 


3、把/home/frank/HadoopInstall/hadoop-config/hdfs-site.xml文件拷貝至hbase的conf文件夾下

 

4、把${ZOOKEEPER_HOME}/conf/zoo.cfg拷貝至hbase的conf文件夾下

 

5、在conf/regionservers中添加hadoop-config/conf/slaves中所有的datanode節點。

 

6、刪除/hbase-0.90.2/lib/hadoop-core-0.20-append-r1056497.jar

     拷貝/hadoop-0.20.2/hadoop-0.20.0-core.jar到/hbase-0.90.2/lib/

 

7、最後,把配置好的hbase-0.20.2,拷貝到其它節點 scp

 

運行

 

Hadoop、ZooKeeper和HBase之間應該按照順序啓動和關閉:啓動Hadoop—>啓動ZooKeeper集羣—>啓動HBase—>停止HBase—>停止ZooKeeper集羣—>停止Hadoop。

執行bin/start-hbase.sh和bin/stop-hbase.sh 腳本啓動和停止HBase服務。

 

測試

 

可進入hbase shell,測試:


list  列出所有表

create 建表,如 create 'test','data'

put 插入數據

...(關於hbase的操作可參考網上資料)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章