慕課網_《HBase入門》學習總結

慕課網《HBase入門》學習總結

  • 時間:2018年06月11日星期一
  • 說明:本文部份內容均來自慕課網。@慕課網:https://www.imooc.com
  • 教學源碼:無
  • 學習源碼:無

第一章:課程介紹

1-1 課程介紹

課程目標html

  • HBase的應用場景及特色
  • HBase的概念與定位
  • HBase架構體系與設計模型
  • HBase的安裝部署
  • HBase shell使用

第二章:概念介紹

2-1 應用場景

HBase能作什麼java

  • 海量數據存儲
  • 準實時查詢

HBase在實際業務場景中的應用node

  • 交通:交通工具的GPS信息、城市路口攝像頭的拍照信息
  • 金融:交易信息(取款信息、消費信息、貸款信息、還款信息、信用卡信息等)
  • 電商:商家交易信息、物流信息、瀏覽日誌信息等
  • 移動:電話信息(短信信息、通話記錄等)

2-2 概念特色

HBase是什麼shell

HBase是一個分佈式,版本化,面向列的數據庫,構建在 Apache Hadoop和 Apache ZooKeeper之上。

HBase的特色數據庫

  • 容量大apache

    HBase單表能夠有百億行、百萬列,數據矩陣橫向和縱向兩個維度所支持的數據量級都很是具備彈性
  • 面向列vim

    HBase是面向列的存儲和權限控制,並支持獨立檢索。列式存儲,其數據在表中是按照某列存儲的,這樣在查詢只須要少數幾個字段的時候,能大大減小讀取的數據量
  • 多版本windows

    HBase每個列的數據存儲有多個Version
  • 稀疏性緩存

    爲空的列並不佔用存儲空間,表能夠設計的很是稀疏
  • 擴展性安全

    底層依賴於HDFS
  • 高可靠性

    WAL機制保證了數據寫入時不會因集羣異常而致使寫入數據丟失;Replication機制保證了在集羣出現嚴重的問題時,數據不會發生丟失或損壞。並且HBase底層使用HDFS,HDFS自己也有備份
  • 高性能

    底層的LSM數據結構和Rowkey有序排列等架構上的獨特設計,使用HBase具備很是高的寫入性能。region切分、主鍵索引和緩存機制使用HBase在海量數據下具有必定的隨機讀取性能,該性能針對Rowkey的查詢可以達到毫秒級別

如何選擇合適HBase版本

HBase在Hadoop2.x生態系統中的定位

image

2-3 架構體系

HBase架構體系

image

2-4 設計模型

HBase表結構模型

image

HBase表結構模型舉例說明

image

Hbase數據模型

image

Hbase數據模型舉例說明

image

HBase列簇

  • 一張表列簇不會超過5個
  • 每一個列簇中的列數沒有限制
  • 列只有插入數據後存在
  • 列在列簇中是有序的

HBase Region

image

HBase表與關係型數據庫表結構對比

對比 HBase 關係型數據庫
表列 列動態增長 列不會動態增長
數據 數據自動切分 數據不會自動切分
併發 高併發讀取 高併發讀寫較差
查詢 不支持條件查詢 支持複雜查詢

第三章:安裝部署

3-1 Hadoop安裝

1.下載地址

Hadoop2.x分佈式安裝配置

  • 解壓Hadoop-2.5.0並安裝
  • 配置hadoop-env.sh

2.解壓安裝

解壓安裝包

tar -zxf hadoop-2.5.0-cdh5.3.0.tar.gz

進入/share目錄

cd hadoop-2.5.0-cdh5.3.0/share

(可選)刪除doc文檔

rm -rf doc/

進入/etc/hadoop目錄

cd hadoop-2.5.0-cdh5.3.0/etc/hadoop

(可選)刪除windows下執行腳本

rm -rf *.cmd

3.修改hadoop-env.sh文件

export JAVA_HOME=${JAVA_HOME}

其中${JAVA_HOME}echo ${JAVA_HOME}的值

4.修改core-site.xml文件

參考地址

http://hadoop.apache.org/docs...
http://hadoop.apache.org/docs...
https://www.jb51.net/article/...

進入hadoop根目錄

cd hadoop-2.5.0-cdh5.3.0

建立臨時數據目錄

mkdir -p data/tmp

進入臨時數據目錄

mkdir -p data/tmp

使用pwd查看路徑

/home/zc/studio/hadoop-2.5.0-cdh5.3.0/data/tmp

在configuration節點中添加如下代碼

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://zccoder.com:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/zc/studio/hadoop-2.5.0-cdh5.3.0/data/tmp</value>
    </property>

5.修改hdfs-site.xml文件

參考地址

http://hadoop.apache.org/docs...

在configuration節點中添加如下代碼

<property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
</property>

6.修改slaves文件

hostname配置進去便可

zccoder.com

7.服務啓動

回到hadoop根目錄

cd hadoop-2.5.0-cdh5.3.0

系統進行format

bin/hdfs namenode -format

啓動namenode

sbin/hadoop-daemon.sh start namenode

啓動datanode

sbin/hadoop-daemon.sh start datanode

(注意)手動退出Hadoop的安全模式

bin/hadoop dfsadmin -safemode leave

訪問http://zccoder.com:50070/進行驗證

3-2 Zookeeper安裝

0.解壓安裝包

解壓安裝包

tar -zxf zookeeper-3.4.5-cdh5.3.0.tar.gz

進入Zookeeper根目錄

cd zookeeper-3.4.5-cdh5.3.0/

進入conf目錄

cd conf/

複製示例配置文件zoo_sample.cfg爲zoo.cfg

cp zoo_sample.cfg zoo.cfg

1.修改zoo.cfg文件

在zk根目錄下建立數據存放目錄

mkdir zkData

進入zkData目錄,使用pwd命令得到全路徑

cd zkData
pwd
/home/zc/studio/zookeeper-3.4.5-cdh5.3.0/zkData

修改zoo.cfg文件的dataDir屬性

dataDir=/home/zc/studio/zookeeper-3.4.5-cdh5.3.0/zkData

2.集羣配置

server.1=zk1.zccoder.com:2888:3888
server.2=zk2.zccoder.com:2888:3888
server.3=zk3.zccoder.com:2888:3888

在zkData目錄下建立myid文件

touch myid

編輯myid文件,添加服務器編號,這裏寫入1

vim myid

而後,分別在另外兩臺zk上建立myid文件,並分別寫入2和3

3.服務啓動

分別啓動三臺zk服務

bin/zkServer.sh start

3-3 HBase安裝

0.解壓安裝

解壓安裝包

tar -zxf hbase-0.98.6-cdh5.3.0.tar.gz

進入HBase根目錄

cd hbase-0.98.6-cdh5.3.0

(可選)刪除docs目錄

rm -rf docs/

1.修改hbase-env.sh文件

進入conf目錄

cd conf/

取消註釋export JAVA_HOME=/usr/java/jdk1.6.0/並修改成JDK路徑

export JAVA_HOME=/studio/jdk1.8.0_11/

取消註釋export HBASE_MANAGES_ZK=true並修改成false使用部署好的zk

export HBASE_MANAGES_ZK=false

2.修改hbase-site.xml文件

在configuration節點下添加如下代碼

<property>
    <name>hbase.tmp.dir</name>
    <value>/home/zc/studio/hbase-0.98.6-cdh5.3.0/data/tmp</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://zccoder.com:9000/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>zccoder.com</value>
  </property>

3.修改regionservers文件

hostname配置進去便可

zccoder.com

4.服務啓動

HBase啓動命令

  • hbase-daemon.sh
  • hbase-daemons.sh
  • start-hbase.sh
  • stop-hbase.sh

啓動HBase

bin/start-hbase.sh

訪問http://zccoder.com:60010/進行驗證HMaster進程

訪問http://zccoder.com:60030/進行驗證RegionServer進程

第四章:操做命令

4-1 HBase表結構

HBase表操做命令介紹並演示

  • Create:建立表
  • Describe:查看錶結構說明
  • is_enabled:查看錶是否可用
  • Drop:刪除表
  • Enable:使表可用(激活表)
  • is_disabled:查看錶是否不可用
  • Disable:使表不可用(屏蔽表)
  • List:查看庫裏面全部表

進入HBase shell

bin/hbase shell

建立test表,包含info列簇

create 'test','info'

查看全部表

list

使用put增長一條數據

put 'test','0001','info:username','henry'

查看test表的數據

scan 'test'

查看test表的相關信息

describe 'test'

禁用test表

disable 'test'

查看test表是否可用

is_enabled 'test'

刪除test表

drop 'test'

4-2 HBase表數據

HBase表數據操做命令介紹並演示

  • Count:求和
  • Put:新增一行或新增一列
  • Delete:刪除某一列的數據
  • Scan:全表掃描,查全表數據
  • get:獲取某一行或某一列的數據
  • truncate:組合命令,至關於對錶進行初始化(先刪除表,而後從新建立表)

進入HBase shell

bin/hbase shell

新增年齡信息

put 'test','0001','info:age','30'

使用count對錶的行數求和

count 'test'

獲取表某一列的數據

get 'test','0001','info:username'

刪除某一行的數據

delete 'test','0001','info:age'

初始化表

truncate 'test'

第五章:課程總結

5-1 課程總結

HBase入門總結

  • 概念定義:是一個分佈式的數據庫
  • 主要做用:海量數據的存儲和海量數據的準實時查詢
  • 應用場景:交通、金融、電商、移動
  • 框架特色:容量大、列式存儲、多版本、易擴展、稀疏性、高性能、高可靠
  • 架構體系:

    • HBase主要進程(master和regionserver)
    • HBase依賴外部服務(zookeeper和hadoop)
  • 設計模型:表結構與表數據
  • 安裝部署:jdk、hadoop、zookeeper、hbase
  • 操做命令:HBase shell命令(DDL操做、DML操做)
相關文章
相關標籤/搜索