1. 程式人生 > 其它 >HBase - Phoenix的安裝使用教程3(SCHEMA的啟用、操作、關閉)

HBase - Phoenix的安裝使用教程3(SCHEMA的啟用、操作、關閉)

三、SCHEMA 的啟用、操作、關閉

1,啟用 SCHEMA

注意:Phoenix中將HBase的namespace叫做SCHEMA,相當於mysql中的庫的概念。

(1)預設Phoenix的自定義SCHEMA並沒有開啟,需要在HBase的hbase-site.xml中增加以下配置項,然後重啟Hbase:

<property>
    <name>phoenix.schema.isNamespaceMappingEnabled</name>
    <value>true</value>
</property>
<property
> <name>phoenix.schema.mapSystemTablesToNamespace</name> <value>true</value> </property>

2)接著將hbase/conf目錄下hbase-site.xml檔案放到phoenix的bin目錄下:

cp /home/hbase-2.2.4/conf/hbase-site.xml /home/apache-phoenix-5.0.0-HBase-2.0-bin/bin

2,操作 SCHEMA

(1)下面在Phoenix Shell中執行如下命令建立一個名為“s1”的schema:

注意:在phoenix中,預設情況下,庫名,表名,欄位名等會自動轉換為大寫,若要小寫,使用雙引號,如"us_population"。

    
CREATE SCHEMA IF NOT EXISTS "s1";

(2)執行如下命令使用這個新建的schema:

use "s1";

(3)執行如下命令則使用預設的schema:

USE DEFAULT;

(4)執行如下命令可以刪除s1這個schema:

注意:確保該schema下的表都已刪除,否則該schema會刪除失敗。

DROP SCHEMA "s1";

3,關閉 SCHEMA

(1)如果phoenix開啟了SCHEMA,可能會造成許多客戶端無法正常工作,需要將其關閉。首先刪除在hbase和phoenix的hbase-site.xml下設定的關於名稱空間啟用的設定。
<
property> <name>phoenix.schema.isNamespaceMappingEnabled</name> <value>true</value> </property> <property> <name>phoenix.schema.mapSystemTablesToNamespace</name> <value>true</value> </property>

(2)然後重啟hbase:

./bin/start-hbase.sh
./bin/stop-hbase.sh

(3)接著進入hbase shell:

./bin/hbase shell

(4)最後依次執行如下命令,修改hbase中表SYSTEM:CATALOG名為SYSTEM.CATALOG即可:

disable 'SYSTEM:CATALOG'
snapshot 'SYSTEM:CATALOG', 'cata_tableSnapshot'
clone_snapshot 'cata_tableSnapshot', 'SYSTEM.CATALOG'
drop 'SYSTEM:CATALOG'
早年同窗始相知,三載瞬逝情卻萌。年少不知愁滋味,猶讀紅豆生南國。別離方知相思苦,心田紅豆根以生。