欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

HBase物理結(jié)構(gòu)有哪些-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“HBase物理結(jié)構(gòu)有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、五龍口網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為五龍口等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

邏輯結(jié)構(gòu)

RowKey第一位
  ColumnFamily
    ColumnQuiauer
      value(TimeStamps)
      Cell

物理結(jié)構(gòu)

HMaster   ----->NameNode
管理節(jié)點(diǎn),用于管理HBase中的Table和Region的結(jié)構(gòu)操作,比如用戶增、刪、修改表的操作。
在HBase集群中,可以啟動(dòng)多個(gè)HMaster,但是只能有一個(gè)HMaster屬于Active的狀態(tài),通過(guò)ZooKeeper和其它standby狀態(tài)的HMaster進(jìn)程完成,一個(gè)狀態(tài)的切換,或者選舉。
我們可以使用HMaster的shutdown放關(guān)閉整個(gè)集群,在關(guān)閉整個(gè)集群的時(shí)候,需要向通知HRegionServer進(jìn)行關(guān)閉,并反饋給HMaster,HMaster才自行關(guān)閉。
HRegionServer----->DataNode
存放Region的服務(wù)器,需要在HMaster進(jìn)行注冊(cè),如此才能在HMaster中對(duì)其進(jìn)行管理,在HBase集群中,可以部署多個(gè)HRegionServer
Region
存儲(chǔ)的是一張表的一個(gè)特定的Region數(shù)據(jù),包含了一部分行的所有的列,region通過(guò)table和對(duì)應(yīng)行健rowkey來(lái)定義,在region級(jí)別
添加一個(gè)鎖的唯一的目的,就是擋在執(zhí)行其它操作的時(shí)候,阻止region被關(guān)閉,以及split。每一行的操作,都需要在執(zhí)行過(guò)程中獲得一個(gè)row所和region的讀鎖。
HRegion
存放hbase中數(shù)據(jù)的一個(gè)概念,可以簡(jiǎn)單的理解為表的一個(gè)分區(qū),存放一張表中的一部分?jǐn)?shù)據(jù),當(dāng)該region中的數(shù)據(jù)超過(guò)一定量的時(shí)候,會(huì)自動(dòng)進(jìn)行分裂,
分裂成兩個(gè)region(一分為二),從這個(gè)角度上而言,Region是對(duì)hbase中表的一個(gè)橫向的劃分。
每一個(gè)HRegion有多個(gè)HStore組成,每一個(gè)HRegion是一張表中所有的列做成部分?jǐn)?shù)據(jù)(也就是說(shuō)部分記錄),每一個(gè)region都有一個(gè)startKey和endKey

一些配置參數(shù)說(shuō)明:

<property>
    <name>hbase.hregion.max.filesize</name>
    <value>10737418240</value>
    <description>
        Maximum HStoreFile size. If any one of a column families' HStoreFiles has
        grown to exceed this value, the hosting HRegion is split in two.</description>
</property>

hregion大的大小,當(dāng)一個(gè)region中的storeFile增長(zhǎng)到10G的時(shí)候,split一分為二
手動(dòng)將一個(gè)表今次那個(gè)region的切分,使用命令split 'table'/'region', 'splitKey'
startKey和endKey
假設(shè),我一張表里面有100條記錄,我要把它分別存放到10個(gè)region里面,又因?yàn)榇娣旁趆base里面的數(shù)據(jù)都是有序的,是能夠進(jìn)行一個(gè)高速隨機(jī)讀寫(xiě)的,
也就是說(shuō)有序能夠保證我的快讀,就需要能夠通過(guò)rowkey,快速的定位到當(dāng)前記錄在哪一個(gè)region里面,然后當(dāng)定位到region之后,再去掃描當(dāng)前region,獲取數(shù)據(jù),
為了滿足于此,我們就對(duì)這些region進(jìn)行劃分,編號(hào),也是為了方便管理。這里每一個(gè)region的范圍:[startKey, endKey),需要注意一定最后一個(gè)region的endkey是需要被包含進(jìn)去的。

region 0    [null, 10)
region 1    [10, 20)
region 2    [20, 30)
region ...  ...
region 9    [90, null]
將HRegion數(shù)據(jù)從memstore中手動(dòng)刷新到磁盤(pán)中,使用命令flush 'table'/'region'
手動(dòng)將一個(gè)表今次那個(gè)region的切分,使用命令split 'table'/'region', 'splitKey'
HStore
每一個(gè)HRegion由多一個(gè)HStore來(lái)組成,一個(gè)HStore對(duì)應(yīng)HRegion中的一個(gè)列族,一個(gè)HStore有一個(gè)MemStore和一個(gè)系列StoreFiles組成。
HStore級(jí)別不會(huì)持有鎖,以及事務(wù),鎖和事務(wù)在更高一個(gè)級(jí)別或者說(shuō)HRegion持有的,
HStore最核心的一個(gè)service就是合并memstore刷新到到磁盤(pán)里面的storefiles,
把多個(gè)storefiles合并成為一個(gè)storefile,寫(xiě)到hdfs里面,寫(xiě)到hdfs里面的文件稱之為hfile。

在寫(xiě)的過(guò)程中,唯一設(shè)計(jì)到hlog的部分就是關(guān)于hlog日志的重建的過(guò)程,當(dāng)hstore將用戶提交的數(shù)據(jù)最終寫(xiě)到了hdfs之后,會(huì)反饋給hlog,
將hlog里面冗余的數(shù)據(jù)刪除掉。

hbase.hstore.compactionThreshold=3,當(dāng)hstore個(gè)數(shù)超過(guò)3個(gè)之后就要開(kāi)啟hstore合并的工作
Compaction:
  minor compaction(小合并):
    就是將多個(gè)HFile合并成為一個(gè)大的HFile,然后對(duì)之前的HFile做清除處理。
    常見(jiàn)的會(huì)在執(zhí)行刪除數(shù)據(jù)的動(dòng)作、以及達(dá)到hbase.hstore.compactionThreshold觸發(fā)條件的時(shí)候發(fā)生,
    刪除數(shù)據(jù):不會(huì)立即刪除,做一個(gè)標(biāo)記(標(biāo)記刪除),等到執(zhí)行合并操作的時(shí)候,才進(jìn)行數(shù)據(jù)的處理。
  major compaction(大合并):
    將一個(gè)列族中的所有的HFile合并成為一個(gè)HFile,然后對(duì)之前的HFile做清除處理。
    大合并非常消耗性能,非常耗時(shí),不建議操作,當(dāng)然是直接可以在shell執(zhí)行操作的。

一些配置屬性的說(shuō)明如下:

<property>
    <name>hbase.hstore.compactionThreshold</name>
    <value>3</value>
    <description>
    If more than this number of HStoreFiles in any one HStore
    (one HStoreFile is written per flush of memstore) then a compaction
    is run to rewrite all HStoreFiles files as one.  Larger numbers
    put off compaction but when it runs, it takes longer to complete.
    </description>
</property>       
<property>
    <name>hbase.server.compactchecker.interval.multiplier</name>
    <value>1000</value>
    <description>The number that determines how often we scan to see if compaction is necessary.
      Normally, compactions are done after some events (such as memstore flush), but if
      region didn't receive a lot of writes for some time, or due to different compaction
      policies, it may be necessary to check it periodically. The interval between checks is
      hbase.server.compactchecker.interval.multiplier multiplied by
      hbase.server.thread.wakefrequency.
    </description>
</property>       
<property>
  <name>hbase.hregion.majorcompaction</name>
  <value>604800000</value> 7天
  <description>The time (in miliseconds) between 'major' compactions of all
  HStoreFiles in a region.  Default: Set to 7 days.  Major compactions tend to
  happen exactly when you need them least so enable them such that they run at
  off-peak for your deploy; or, since this setting is on a periodicity that is
  unlikely to match your loading, run the compactions via an external
  invocation out of a cron job or some such.</description>
  </property>   
<property>
  <name>hbase.hstore.blockingStoreFiles</name>
  <value>10</value>
  <description>
  If more than this number of StoreFiles in any one Store
  (one StoreFile is written per flush of MemStore) then updates are
  blocked for this HRegion until a compaction is completed, or
  until hbase.hstore.blockingWaitTime has been exceeded.</description>
</property> 
<property>
    <name>hbase.hstore.compaction.max</name>
    <value>10</value>
    <description>Max number of HStoreFiles to compact per 'minor' compaction.       </description>
</property>
MemStore
注意:在memstore寫(xiě)的過(guò)程中,必須不能是多線程的(并行)調(diào)用的,hstore在調(diào)用的過(guò)程中必須持有一個(gè)讀鎖和寫(xiě)鎖
在寫(xiě)的過(guò)程中,預(yù)先數(shù)據(jù)在memstore中進(jìn)行排序,因?yàn)閿?shù)據(jù)最終是有序存放,當(dāng)memstore中的數(shù)據(jù)量超過(guò)閾值之后就會(huì)刷新到磁盤(pán)文件storefile中。

配置參數(shù)如下:

<property>
    <name>hbase.hregion.memstore.flush.size</name>
    <value>134217728</value>
    <description>
        Memstore will be flushed to disk if size of the memstore
        exceeds this number of bytes.  Value is checked by a thread that runs
        every hbase.server.thread.wakefrequency.</description>
</property>
StoreFile
最終保存HStore數(shù)據(jù)的文件,數(shù)據(jù)是由MemStore不斷向磁盤(pán)刷新過(guò)程中產(chǎn)生的,當(dāng)storefile達(dá)到一定量的時(shí)候,會(huì)將這些storefile組成一個(gè)storefiles。
這個(gè)storefiles有可能持有其他store里面的storefile。
HFile
在hdfs上存放數(shù)據(jù)之前的一個(gè)物理結(jié)構(gòu),用于接收從客戶端提交過(guò)來(lái)的數(shù)據(jù)。
HFile中的數(shù)據(jù)都Key-Value鍵值對(duì)兒的方式存儲(chǔ),并且key和value都是字節(jié)數(shù)組。并且因?yàn)閿?shù)據(jù)已經(jīng)在memstore中排序過(guò)了,在hfile中也是有序的。
hfile同時(shí)是由一個(gè)個(gè)的block來(lái)組成的,最終k-v實(shí)際上是在這一個(gè)個(gè)的block中的,block的推薦的大小在8k~1M之間,默認(rèn)大小65536byte-->16kb。
每一個(gè)block都有索引,沒(méi)有hfile有由索引

官方建議:
blocksize在8k~1M之間,默認(rèn)是64k
如果執(zhí)行順序讀的操作,建議將blocksize調(diào)大一點(diǎn)點(diǎn),這個(gè)會(huì)影響隨機(jī)訪問(wèn)的效率
如果執(zhí)行隨機(jī)讀的操作,建議將blocksize調(diào)小一點(diǎn)點(diǎn),用默認(rèn)就可以了

在掃描全表數(shù)據(jù)的時(shí)候,一定要指定start key和end key,不然容易操作OOM異常
總結(jié)
  HRegionServer
  |---一個(gè)HLog
  |---多個(gè)HRegion(一張表對(duì)應(yīng)多個(gè)HRegion,是對(duì)hbase表的一個(gè)橫向的劃分)
    |---多個(gè)HStore(一個(gè)HStore對(duì)應(yīng)一個(gè)列族,反之一個(gè)列族對(duì)應(yīng)多個(gè)HStore,列族是對(duì)HBase表的縱向的劃分)
      |--一個(gè)MemStore
      |--多個(gè)StoreFile
        HFile
          |---多個(gè)data block

HBase如何做到高速隨機(jī)讀?
    rowkey---->region
          先到memstore中去找,如果有,則直接取出<rowkey, <cf, <col, <ts, value>>>>
          如果沒(méi)有,則就去在hfile中找,通過(guò)索引定位到具體的block,然后遍歷該block塊,找到相應(yīng)的數(shù)據(jù)
--------------------------------------------------------------------------
把在想memstore寫(xiě)數(shù)據(jù)的過(guò)程中,同時(shí)向hlog中寫(xiě)數(shù)據(jù)的這種解決問(wèn)題的方式稱之為SLM-Tree(Structure Log merge tree)
這種數(shù)據(jù)結(jié)構(gòu)和B-Tree有些類似,也是引自于Google BigTable

行健的設(shè)計(jì)問(wèn)題

行健的熱點(diǎn)問(wèn)題
是由于行健相似、連續(xù)且數(shù)據(jù)量過(guò)大操作成單region的數(shù)據(jù)量過(guò)大,進(jìn)而影響讀寫(xiě)效率

行健應(yīng)該盡量的隨機(jī)、不要出現(xiàn)連續(xù)行健。
常見(jiàn)的行健設(shè)計(jì)就是,比如手機(jī)號(hào)碼倒置+時(shí)間戳,比如隨機(jī)前綴+關(guān)系型數(shù)據(jù)庫(kù)中的主鍵(以存放在mr中電信日志案例為例)

因?yàn)閔base提供的查詢內(nèi)容非常非常low,但是所有關(guān)于hbase的查詢只能通過(guò)rowkey,所以
在設(shè)計(jì)行健的時(shí)候,應(yīng)該考慮將盡量多的查詢條件放到rowkey中去,形成的行健就成為復(fù)合鍵
列族的設(shè)計(jì)
cf1----->"maxRowLength"
cf2----->"mrl"
建議hbase表是高表,不建議寬表,因?yàn)閷挶頁(yè)碛械牧凶搴芏?,操作并跨越的文?HFile)就很多,效率會(huì)有相應(yīng)影響,
反之建議使用高表,列族不宜過(guò)多。
在設(shè)計(jì)表的時(shí)候,各個(gè)列/列族名稱不宜過(guò)長(zhǎng),因?yàn)閔base需要對(duì)這些數(shù)據(jù)在內(nèi)存中做緩存,做索引,進(jìn)而影響內(nèi)存容量,
所以建議不易過(guò)長(zhǎng),以便能夠在內(nèi)存中容納更多的數(shù)據(jù)。至于閱讀性,有項(xiàng)目文檔搞定。

Hive整合HBase

啟動(dòng)hive,進(jìn)入hive的終端:
/home/uplooking/app/hive/bin/hive --auxpath /home/uplooking/app/hive/lib/hive-hbase-handler-2.1.0.jar,/home/uplooking/app/hive/lib/zookeeper-3.4.6.jar --hiveconf hbase.master=uplooking01:16010 --hiveconf hbase.zookeeper.quorum=uplooking01,uplooking02,uplooking03
在Hive里面操作HBase

創(chuàng)建一張表:

hbase不存在該表的情況

如果hbase中不存在該表我們只能在hive中使用創(chuàng)建內(nèi)部表的方式,來(lái)創(chuàng)建一張表,同會(huì)在hbase中也會(huì)創(chuàng)建相關(guān)的表。

eg.
    create table h3hb_1(
     id int,
     name string,
     age int
    )row format delimited
     fields terminated by ','
     stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties (
     "hbase.columns.mapping" = ":key,cf:name,cf:age",
     "hbase.table.name" = "t"
    );

在hive中創(chuàng)建了一張表h3hb_1,有三列內(nèi)容id, name,age,同時(shí)映射到hbase中的表t,其中id對(duì)應(yīng)行健
name對(duì)應(yīng)hbase中列族cf中的name,age同理

嘗試向表中導(dǎo)入數(shù)據(jù),會(huì)報(bào)下面的錯(cuò)誤:

hive (mydb1)> load data local inpath 'stu.txt' into table h3hb_1;
FAILED: SemanticException [Error 10101]: A non-native table cannot be used as target for LOAD

所以創(chuàng)建了一張臨時(shí)表并導(dǎo)入數(shù)據(jù):

hive (mydb1)> create temporary table tmp(
            > id int,
            > name string,
            > age int)row format delimited
            > fields terminated by ',';
OK
Time taken: 0.104 seconds
hive (mydb1)> load data local inpath 'stu.txt' into table tmp;
Loading data to table mydb1.tmp
OK
Time taken: 0.408 seconds

最后通過(guò)查詢的方式向其插入數(shù)據(jù):

hive (mydb1)> insert into h3hb_1 select * from tmp;
...
2018-03-24 01:09:47,267 Stage-0 map = 0%,  reduce = 0%
2018-03-24 01:09:59,883 Stage-0 map = 100%,  reduce = 0%, Cumulative CPU ...
Time taken: 32.315 seconds

可以看到會(huì)啟動(dòng)一個(gè)MR的任務(wù)。

hbase存在該表的情況

如果使用上述建表語(yǔ)句創(chuàng)建的時(shí)候,則會(huì)報(bào)錯(cuò),因?yàn)樵趆base中已經(jīng)存在了一張表為t,所以這時(shí)只能創(chuàng)建外部表去映射hbase中的一張表。

create external table h3hb_2
(id int,
 name string,
 age int
)row format delimited
 fields terminated by ','
 stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties (
 "hbase.columns.mapping" = ":key,cf:name,cf:age",
 "hbase.table.name" = "t"
);

Phoenix整合HBase

安裝Phoenix
約定安裝到/home/uplooking/app目錄下面
解壓:
    [uplooking@uplooking01 ~]$ tar -zxvf soft/phoenix-4.7.0-HBase-1.1-bin.tar.gz -C app/
重命名 [uplooking@uplooking01 ~]$ mv app/phoenix-4.7.0-HBase-1.1-bin/ app/phoenix
拷貝lib目錄下面jar包到regionserver機(jī)器的lib($HBASE_HOME/lib)目錄
     [uplooking@uplooking01 phoenix]$ scp *.jar uplooking@uplooking02:/home/uplooking/app/hbase/lib/
     [uplooking@uplooking01 phoenix]$ scp *.jar uplooking@uplooking03:/home/uplooking/app/hbase/lib/
重啟regionserver
    hbase-daemon.sh stop regionserver
    hbase-daemon.sh start regionserver
將phoenix中的client拷貝到hbase的client中,重啟master
    p[uplooking@uplooking01 phoenix]$ cp phoenix-4.7.0-HBase-1.1-client.jar /home/uplooking/app/hbase/lib/
    hbase-daemon.sh stop master
    hbase-daemon.sh start master
官網(wǎng)測(cè)試案例:
http://phoenix.apache.org/Phoenix-in-15-minutes-or-less.html
    ./psql.py uplooking01:2181 us_population.sql us_population.csv us_population_queries.sql
在cli中使用Phoenix
./sqlline.py uplooking01:2181:/hbase

查詢操作:

0: jdbc:phoenix:uplooking01:2181:/hbase> !tables
+------------+--------------+----------------+---------------+----------+------------+---------------------------+
| TABLE_CAT  | TABLE_SCHEM  |   TABLE_NAME   |  TABLE_TYPE   | REMARKS  | TYPE_NAME  | SELF_REFERENCING_COL_NAME |
+------------+--------------+----------------+---------------+----------+------------+---------------------------+
|            | SYSTEM       | CATALOG        | SYSTEM TABLE  |          |            |                           |
|            | SYSTEM       | FUNCTION       | SYSTEM TABLE  |          |            |                           |
|            | SYSTEM       | SEQUENCE       | SYSTEM TABLE  |          |            |                           |
|            | SYSTEM       | STATS          | SYSTEM TABLE  |          |            |                           |
|            |              | US_POPULATION  | TABLE         |          |            |                           |
+------------+--------------+----------------+---------------+----------+------------+---------------------------+
0: jdbc:phoenix:uplooking01:2181:/hbase> select * from US_POPULATION;
+--------+---------------+-------------+
| STATE  |     CITY      | POPULATION  |
+--------+---------------+-------------+
| AZ     | Phoenix       | 1461575     |
| CA     | Los Angeles   | 3844829     |
| CA     | San Diego     | 1255540     |
| CA     | San Jose      | 912332      |
| IL     | Chicago       | 2842518     |
| NY     | New York      | 8143197     |
| PA     | Philadelphia  | 1463281     |
| TX     | Dallas        | 1213825     |
| TX     | Houston       | 2016582     |
| TX     | San Antonio   | 1256509     |
+--------+---------------+-------------+
10 rows selected (0.138 seconds)

創(chuàng)建表與插入數(shù)據(jù):

0: jdbc:phoenix:uplooking01:2181:/hbase> create table p1(id integer not null primary key, name varchar(20), age integer);
No rows affected (2.351 seconds)
0: jdbc:phoenix:uplooking01:2181:/hbase> !tables
+------------+--------------+----------------+---------------+----------+------------+---------------------------+
| TABLE_CAT  | TABLE_SCHEM  |   TABLE_NAME   |  TABLE_TYPE   | REMARKS  | TYPE_NAME  | SELF_REFERENCING_COL_NAME |
+------------+--------------+----------------+---------------+----------+------------+---------------------------+
|            | SYSTEM       | CATALOG        | SYSTEM TABLE  |          |            |                           |
|            | SYSTEM       | FUNCTION       | SYSTEM TABLE  |          |            |                           |
|            | SYSTEM       | SEQUENCE       | SYSTEM TABLE  |          |            |                           |
|            | SYSTEM       | STATS          | SYSTEM TABLE  |          |            |                           |
|            |              | P1             | TABLE         |          |            |                           |
|            |              | US_POPULATION  | TABLE         |          |            |                           |
+------------+--------------+----------------+---------------+----------+------------+---------------------------+
0: jdbc:phoenix:uplooking01:2181:/hbase> !describe p1;
+------------+--------------+-------------+--------------+------------+------------+--------------+--------------+
| TABLE_CAT  | TABLE_SCHEM  | TABLE_NAME  | COLUMN_NAME  | DATA_TYPE  | TYPE_NAME  | COLUMN_SIZE  | BUFFER_LENGT |
+------------+--------------+-------------+--------------+------------+------------+--------------+--------------+
|            |              | P1          | ID           | 4          | INTEGER    | null         | null         |
|            |              | P1          | NAME         | 12         | VARCHAR    | 20           | null         |
|            |              | P1          | AGE          | 4          | INTEGER    | null         | null         |
+------------+--------------+-------------+--------------+------------+------------+--------------+--------------+
0: jdbc:phoenix:uplooking01:2181:/hbase> upsert into p1 values(1, 'zhangsan',13);
1 row affected (0.13 seconds)
0: jdbc:phoenix:uplooking01:2181:/hbase> upsert into p1 values(2, 'lisi',14);
1 row affected (0.019 seconds)
0: jdbc:phoenix:uplooking01:2181:/hbase> select * from p1;
+-----+-----------+------+
| ID  |   NAME    | AGE  |
+-----+-----------+------+
| 1   | zhangsan  | 13   |
| 2   | lisi      | 14   |
+-----+-----------+------+
2 rows selected (0.066 seconds)

可以看到,我們創(chuàng)建的表p1,在實(shí)際創(chuàng)建時(shí),會(huì)變成大寫(xiě)的P1,在hbase中查看:

hbase(main):004:0> scan 'P1'
ROW                           COLUMN+CELL                                                                         
 \x80\x00\x00\x01             column=0:AGE, timestamp=1521827542938, value=\x80\x00\x00\x0D                       
 \x80\x00\x00\x01             column=0:NAME, timestamp=1521827542938, value=zhangsan                              
 \x80\x00\x00\x01             column=0:_0, timestamp=1521827542938, value=x                                       
 \x80\x00\x00\x02             column=0:AGE, timestamp=1521827553065, value=\x80\x00\x00\x0E                       
 \x80\x00\x00\x02             column=0:NAME, timestamp=1521827553065, value=lisi                                  
 \x80\x00\x00\x02             column=0:_0, timestamp=1521827553065, value=x                                       
2 row(s) in 0.0410 seconds

可以看到列族也默認(rèn)為0,可以嘗試下面的方式來(lái)創(chuàng)建表:

0: jdbc:phoenix:uplooking01:2181:/hbase> create table "p2"(id varchar(100000) primary key, "cf"."name" varchar(20), "cf"."age" varchar(100));
No rows affected (1.288 seconds)
0: jdbc:phoenix:uplooking01:2181:/hbase> !tables
+------------+--------------+----------------+---------------+----------+------------+---------------------------+
| TABLE_CAT  | TABLE_SCHEM  |   TABLE_NAME   |  TABLE_TYPE   | REMARKS  | TYPE_NAME  | SELF_REFERENCING_COL_NAME |
+------------+--------------+----------------+---------------+----------+------------+---------------------------+
|            | SYSTEM       | CATALOG        | SYSTEM TABLE  |          |            |                           |
|            | SYSTEM       | FUNCTION       | SYSTEM TABLE  |          |            |                           |
|            | SYSTEM       | SEQUENCE       | SYSTEM TABLE  |          |            |                           |
|            | SYSTEM       | STATS          | SYSTEM TABLE  |          |            |                           |
|            |              | P1             | TABLE         |          |            |                           |
|            |              | US_POPULATION  | TABLE         |          |            |                           |
|            |              | p2             | TABLE         |          |            |                           |
+------------+--------------+----------------+---------------+----------+------------+---------------------------+
0: jdbc:phoenix:uplooking01:2181:/hbase> upsert into "p2" values('1','zhangsan','13');
1 row affected (0.061 seconds)
0: jdbc:phoenix:uplooking01:2181:/hbase> upsert into "p2" values('2','lisi','14');
1 row affected (0.015 seconds)
0: jdbc:phoenix:uplooking01:2181:/hbase> select * from "p2";
+-----+-----------+------+
| ID  |   name    | age  |
+-----+-----------+------+
| 1   | zhangsan  | 13   |
| 2   | lisi      | 14   |
+-----+-----------+------+
2 rows selected (0.055 seconds)

這樣創(chuàng)建的表就為小寫(xiě)的了,同時(shí)在hbase中查看也可以看到列族:

hbase(main):006:0> scan 'p2'
ROW                           COLUMN+CELL                                                                         
 1                            column=cf:_0, timestamp=1521827723448, value=x                                      
 1                            column=cf:age, timestamp=1521827723448, value=13                                    
 1                            column=cf:name, timestamp=1521827723448, value=zhangsan                             
 2                            column=cf:_0, timestamp=1521827735556, value=x                                      
 2                            column=cf:age, timestamp=1521827735556, value=14                                    
 2                            column=cf:name, timestamp=1521827735556, value=lisi                                 
2 row(s) in 0.0390 seconds
Phoenix客戶端工具操作
安裝squirrel-sql-3.7-standard.jar
java -jar squirrel-sql-3.7-standard.jar

然后就可以進(jìn)行安裝。

添加HBase驅(qū)動(dòng)

使用squirrel-sql添加一個(gè)驅(qū)動(dòng),其屬性值可為如下:

Name:hbase
Example URL:jdbc:phoenix:uplooking01,uplooking02,uplooking03:2181
Class Name:org.apache.phoenix.jdbc.PhoenixDriver

驅(qū)動(dòng)可以到phoenix目錄下找到:phoenix-4.7.0-HBase-1.1-client.jar,然后添加即可
創(chuàng)建連接

選擇驅(qū)動(dòng)為前面創(chuàng)建的驅(qū)動(dòng),然后用戶名和密碼都為uplooking
這樣之后就可以像使用navicat管理MySQL數(shù)據(jù)庫(kù)一樣,比較方便。

“HBase物理結(jié)構(gòu)有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章題目:HBase物理結(jié)構(gòu)有哪些-創(chuàng)新互聯(lián)
文章起源:http://aaarwkj.com/article0/cccsoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站導(dǎo)航面包屑導(dǎo)航、服務(wù)器托管網(wǎng)站維護(hù)、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
欧美精品久久久久九九九| 99热这里只有精品网址| av永久免费观看网站| 97日韩在线免费视频网站| 亚洲国产精品一区二区成人| 高清日韩精品视频在线观看| 人成午夜视频在线播放| 九九蜜桃视频香蕉视频| 大香蕉欧美视频伊在线| 国产男女视频免费观看| 亚洲伊人av第一页在线观看| 久久精品中文字幕有码日本道 | 熟妇高潮一区二区在线观看| 国产无套内射三级视频| 欧美日本国产高清不卡| 青青草视频在线针对华人| 最新欧美精品一区二区| 亚洲激情一区在线观看| av黄色成人在线观看| 日韩中文字幕亚洲精品一| 黄色一级日本黄色一级| 国产成人短视频在线播放| 亚洲精品一区av在线观看| 亚洲欧美日韩专区一区| 日韩亚洲在线中文字幕| 国产三级视频网站在线观看| 久久精品国产成人综合| 午夜视频在线播放一区二区三区| 日韩不卡在线免费观看视频| 亚洲精品偷拍在线观看| 中午字幕人妻少妇久久| 中文字幕精品免费日韩在线| 最新天堂av资源在线观看| 欧美日韩国产特级性生活| 亚洲一区二区三区无人区| 欧美国产日韩亚洲综合| 国产三级无遮挡在线观看| 亚洲欧美综合区丁香六月| 日本精品不卡一二三区| 开心激情欧美一区二区| 18末年禁止观看免费软件|