天天看點

Hbase的安裝及配置、eclipse 操作示例1.3 測試,hbase shell

下面說明Hbase ubuntu12.04上的安裝,假設在安裝Hbase前你已經正确安裝了Hadoop(可以參見以前的博文).

1.1下載下傳解壓最新版本

選擇一個 Apache 下載下傳鏡像:http://www.apache.org/dyn/closer.cgi/hbase/,下載下傳 HBase Releases. 點選 stable目錄,然後下載下傳字尾為 .tar.gz 的檔案; 例如 hbase-0.94.8.tar.gz.

tar -zxvf  hbase-0.94.8.tar.gz
  cd  hbase-0.94.8
           

現在你已經可以啟動Hbase了。但是你可能需要先編輯 conf/hbase-site.xml 去配置hbase.rootdir,來選擇Hbase将資料寫到哪個目錄 .

<?xml version="1.0"?>  
    <?xml-stylesheet type="text/xsl" href="configuration.xsl" target="_blank" rel="external nofollow" ?>  
    <configuration>  
      <property>  
        <name>hbase.rootdir</name>  
        <value>file:///DIRECTORY/hbase</value>  
      </property>  
    </configuration>  
           

将 DIRECTORY 替換成你期望寫檔案的目錄. 預設 hbase.rootdir 是指向 /tmp/hbase-${user.name} ,也就說你會在重新開機後丢失資料(重新開機的時

候作業系統會清理/tmp目錄)

1.2. 啟動 HBase

現在啟動Hbase:

$ ./bin/start-hbase.sh      
starting Master, logging to logs/hbase-user-master-example.org.out      

現在你運作的是單機模式的Hbaes。是以的服務都運作在一個JVM上,包括Hbase和Zookeeper。Hbase的日志放在

logs

目錄,當你啟動出問題的時候,

可以檢查這個日志。

安裝過程出現的錯誤:

 1,ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times

很明顯,日志中說RPC協定不一緻所造成的,恍然見明白因為我在hbase的配置檔案中将rootdir設定為hdfs,如果這兩者的RPC協定不一緻就會導緻這個問題。

解決方法:

将hbase/lib目錄下的hadoop-core的jar檔案删除,将hadoop目錄下的hadoop-****-core.jar拷貝到hbase/lib下面,然後重新啟動hbase即可。

2,ERROR: org.apache.hadoop.hbase.PleaseHoldException: org.apache.hadoop.hbase.

 解決方法:

如果系統是Ubuntu的話,要注意

/etc/hosts裡面的127.0.0.1是否是127.0.1.1,如果是的話,把他改過來就可以了。

1.3 測試,hbase shell

 用shell 連接配接Hbase

hbase(main):003:0> create 'test', 'c1'

0 row(s) in 1.2200 seconds

hbase(main):003:0> list 'table'

test

1 row(s) in 0.0550 seconds

hbase(main):004:0> put 'test', 'row1', 'c1:a', 'value1'

0 row(s) in 0.0560 seconds

hbase(main):005:0> put 'test', 'row2', 'c1:b', 'value2'

0 row(s) in 0.0370 seconds

hbase(main):006:0> put 'test', 'row3', 'c1:c', 'value3'

0 row(s) in 0.0450 seconds

           

以上我們分别插入了3行。第一個行key為

row1

, 列為 

c1:a

, 值是 

value1

。Hbase中的列是由 column family字首和列的名字組成的,以冒号間隔。

例如這一行的列名就是

a

.

檢查插入情況:Scan這個表,操作如下:

hbase(main):007:0> scan 'test'

zookeeper安裝

(1): 從http://mirror.bjtu.edu.cn/apache/zookeeper/stable/下載下傳。

我下載下傳的是zookeeper-3.4.4

(2):解壓到: /home/zack/hadoop/zookeeper-3.4.4

(3):把conf下的zoo_sample.cfg copy一份後重命名為: zoo.cfg.

檔案中内容如下:

syncLimit=5

initLimit=10

tickTime=2000

clientPort=2181

dataDir=/home/zack/hadoop/zookeeper/data

dataLogDir=/home/zack/hadoop/zookeeper/log

(4): 建立zookeeper下的data,log目錄,将chmod 777 -R zookeeper一把

(5): 增加環境變量:

vim ~/.bashrc

export ZOOKEEPER_INSTALL=/home/zack/hadoop/zookeeper-3.4.4

export PATH=$PATH:$ZOOKEEPER_INSTALL/bin

source ~/.bashrc 使之生效.

(6): zkServer.sh start 啟動

eclipse 示例見:

http://blog.csdn.net/challenchenzhipeng/article/details/7887109

注意: 要是以前用過eclipse 配置過操作Hadoop,那麼你需要重新找個沒有配置過的eclipse來進行Hbase上的程式設計。

繼續閱讀