乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      HBase使用教程 - 推酷

       bzol 2015-09-11

      1     基本介紹

      1.1 前言

      HBase – Hadoop Database,是一個分布式的、面向列的開源數(shù)據(jù)庫,該技術(shù)來源于 Fay Chang 所撰寫的Google論文“Bigtable:一個結(jié)構(gòu)化數(shù)據(jù)的 分布式存儲系統(tǒng) ”。就像Bigtable利用了Google文件系統(tǒng)(File System)所提供的分布式數(shù)據(jù)存儲一樣,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase是Apache的Hadoop項目的子項目。

      HBase不同于一般的關(guān)系數(shù)據(jù)庫,它是一個適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。另一個不同的是HBase基于列的而不是基于行的模式。

      HBase是一個高 可靠 性、高性能、面向列、可伸縮的 分布式存儲系統(tǒng) ,利用HBase技術(shù)可在廉價PC Server上搭建起大規(guī)模 結(jié)構(gòu)存儲 集群。

      2     安裝和使用

      2.1 下載

      HBase的官方網(wǎng)站http://www./dyn/closer.cgi/hbase/上面可以下載到各種版本。目前用最新版本是0.98.2,建議下載stable目錄下的穩(wěn)定版本。

      2.2 安裝

      安裝依賴基礎(chǔ)要求

      1.   Linux操作系統(tǒng)

      根據(jù)HBase的官方介紹,HBase沒有在windows下測試過,因而,我們都是將HBase安裝在Linux操作系統(tǒng)上。我本機安裝的Ubuntu 12.04的虛擬機。

      2.   Jdk

      HBase需要jdk支持其運行,jdk版本要求是1.6及其以上。

      這里暫且把Linux虛擬機的安裝和虛擬機上jdk的安裝過程跳過,可以參照網(wǎng)上其他相關(guān)資料執(zhí)行。

      HBase的安裝方法比較簡單,將我們下載的HBase的安裝包hbase-0.94.20.tar.gz拷貝到Linux的根目錄下。

      接著執(zhí)行以下命令和配置,之后啟動HBase:

      1.   解壓縮安裝包

      root@ubuntu:/# tar xfz hbase-0.94.20.tar.gz

      root@ubuntu:/# cd hbase-0.94.20

      2.   配置數(shù)據(jù)存儲目錄

      正如官方文檔描述的那樣,這時我們可以直接啟動HBase,這樣的話,使用的數(shù)據(jù)存儲目錄為 /tmp/hbase-${user.name},也就意味著,我們一旦重啟Linux,我們先前存儲的數(shù)據(jù)就將丟失。

      Linux下執(zhí)行以下命令:

      root@ubuntu:/# cd /hbase-0.94.20/conf/

      root@ubuntu:/hbase-0.94.20/conf# vi hbase-site.xml

      之后,修改配置文件內(nèi)容為:

      <?xml version='1.0'?>

      <?xml-stylesheet type='text/xsl'href='configuration.xsl'?>

      <configuration>

        <property>

         <name>hbase.rootdir</name>

          <value>file:///hbase_data/hbase</value>

        </property>

      </configuration>

      3.   啟動HBase

      root@ubuntu:/hbase-0.94.20/conf# ../bin/start-hbase.sh

      starting master, logging to/hbase-0.94.20/bin/../logs/hbase-root-master-ubuntu.out

      至此,單機模式啟動HBase已經(jīng)完成了。HBase的停止腳本是相同目錄下的stop-hbase.sh。

      2.3 HBase安裝模式

      在上一節(jié)中我們提到,我們安裝的是單機模式。單機模式表示,我們所有的服務(wù)都運行在一個JVM上,包括HBase和Zookeeper。

      另外,HBase還有兩種安裝模式:偽分布式模式和分布式模式。

      偽分布式模式是把進(jìn)程運行在一臺機器上,但不是一個JVM。

      完全分布式模式就是把整個服務(wù)被分布在各個節(jié)點上了 。

      偽分布式模式和分布式模式依賴安裝較多其他組件和服務(wù),安裝過程較為復(fù)雜,將會在另一篇文章中專門介紹。

      3     開始一個例子

      大多數(shù)技術(shù)人員happy的時候開始了。我們開始一個簡單的Helloworld。

      3.1 使用HBase shell連接HBase

      使用HBase自帶的客戶端連接工具,連接到HBase:

      3.2 創(chuàng)建User表

      輸入以下命令并執(zhí)行:

      3.3 對User表簡單地增刪改查

      往User表中插入一條信息:

       

      查詢剛才插入的信息:

       

      3.4 檢查數(shù)據(jù)存儲目錄

      我們看一下之前我們配置的數(shù)據(jù)存儲目錄的變化:

      我們可以看到,在之前配置的數(shù)據(jù)存儲目錄下,已經(jīng)新添加了一些用于存儲我們剛才存入的數(shù)據(jù)的文件了。

      4     HBase基礎(chǔ)定義和概念

      4.1 表

      HBase是一個數(shù)據(jù)庫,數(shù)據(jù)以表的形式存儲在Hbase中。

      正如我們在hello world中定義中的User表類似,HBase的表的結(jié)構(gòu)如下所示:

      Row Key

      Time Stamp

      ColumnFamily contents

      ColumnFamily anchor

      'com.cnn.www'

      t9

      anchor:cnnsi.com = 'CNN'

      'com.cnn.www'

      t8

      anchor:my.look.ca = 'CNN.com'

      'com.cnn.www'

      t6

      contents:html = '<html>...'

      'com.cnn.www'

      t5

      contents:html = '<html>...'

      'com.cnn.www'

      t3

      contents:html = '<html>...'

      4.2 行、列族、列

      行以rowkey作為唯一標(biāo)示。Rowkey是一段字節(jié)數(shù)組,這意味著,任何東西都可以保存進(jìn)去,例如字符串、或者數(shù)字。行是按字典的排序由低到高存儲在表中。

      列族是列的集合。要準(zhǔn)確表示一個列,需要“列族:列名”的方式。例如Hello world中的name列,應(yīng)該被表示為“personalinfo:name”。

      值得注意的是,列族被要求在創(chuàng)建表時指定,但列不需要,可以隨時使用的時候創(chuàng)建。另外,一個列族的成員在文件系統(tǒng)上都存儲在一起,因而列族中的所有列的存取方式都是一致的。HBase的存儲優(yōu)化就都針對列族級別,例如,我們可以考慮將經(jīng)常需要一起取出來分析的信息,都存儲在一個列族上。

      5     HBase常用的操作

      為了方便大家開發(fā)過程中快速查詢,這里分類介紹最常見的HBase命令。HBase shell中支持的所有命令,可以通過help命令來列舉出來。如下所示:

      這里只是截取了前部分命令,尚有部分命令不能再上圖中顯示。

      5.1 一般命令

      5.1.1 status

      功能:查詢服務(wù)器狀態(tài)

      使用:

       

      5.1.2 version

      功能:查詢HBase版本信息

      使用:

      5.1.3 whoami

      功能:查看連接的用戶

      使用:

       

      5.2 DDL命令

      5.2.1 Create創(chuàng)建表

      功能:創(chuàng)建一個表。正如之前提到的,創(chuàng)建一個表時,不指定具體的列名,但要指定列族名。

      使用:create ‘表名’,’列族名1’,’列族名2’

      5.2.2 disable失效表

      功能:失效一個表。當(dāng)需要修改表結(jié)構(gòu)、刪除表時,需要先執(zhí)行此命令。

      使用:

      5.2.3 enable使失效表有效

      功能:使表有效。在失效表以后,需要執(zhí)行此命令,以使得表可用。

      使用:

      5.2.4 alter修改表結(jié)構(gòu)

      功能:修改表結(jié)構(gòu),包括新增列族、刪除列族等

      使用:

      新增列族(記得在執(zhí)行alter之前,要先disable表)

      刪除列族

       

      重命名列族

      列族不能被重命名。重命名一個列族的通常途徑是使用API創(chuàng)建一個有著期望名稱的新的列族,然后將數(shù)據(jù)復(fù)制過去,最后再刪除舊的列族。

      5.2.5 describe查看表結(jié)構(gòu)

      功能:查看表結(jié)構(gòu)

      使用:

       

      5.2.6 list列舉數(shù)據(jù)庫中的所有表

      功能:查看數(shù)據(jù)庫中所有的表

      使用:

       

      5.2.7 drop刪除表

      功能:刪除指定的表

      使用:

      5.3 DML命令

      5.3.1 put插入數(shù)據(jù)

      功能:插入一條數(shù)據(jù)到指定的表中。對于同一個rowkey,如果執(zhí)行兩次put,則第二次被認(rèn)為是更新操作。

      使用:put ‘表名’,’列族名1:列名1’,’值’

      5.3.2 get獲取數(shù)據(jù)

      功能:獲取數(shù)據(jù)

      使用:

      獲取指定rowkey的指定列族指定列的數(shù)據(jù)

      獲取指定rowkey的指定列族所有的數(shù)據(jù)

      獲取指定rowkey的所有數(shù)據(jù)

       

      獲取指定時間戳的數(shù)據(jù)

      5.3.3 Count計算表的行數(shù)

      功能:計算表的行數(shù)

      使用:

      5.3.4 put更新數(shù)據(jù)

      詳見5.3.1

      5.3.5 scan全表掃描數(shù)據(jù)

      功能:掃描全表所有數(shù)據(jù)

      使用:

      5.3.6 delete刪除數(shù)據(jù)

      功能:刪除表中的數(shù)據(jù)

      使用:

      刪除指定rowkey的指定列族的列名的數(shù)據(jù)

      刪除指定rowkey的指定列族的數(shù)據(jù)

      5.3.7 deleteall刪除整行數(shù)據(jù)

      功能:刪除整行數(shù)據(jù)

      使用:

      5.3.8 truncate刪除全表數(shù)據(jù)

      功能:刪除表中所有的數(shù)據(jù)。正如你看到的,在HBase的help命令里并沒有

      使用:

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多