HBase安装配置及测试
生活随笔
收集整理的這篇文章主要介紹了
HBase安装配置及测试
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、HBase簡介
(一)Hadoop
HDFS分布式存儲、MapReduce分布式計算、Yarn資源調(diào)度和管理
批量處理(MR)、順序訪問數(shù)據(jù)(HDFS)
查找數(shù)據(jù)是必須搜索整個數(shù)據(jù)集,效率很低
(二)HBase
(三)HBase的應(yīng)用場景
新聞、網(wǎng)頁、圖片、視頻等,例如阿里云oss
每個數(shù)據(jù)都帶有時間戳叫做時序數(shù)據(jù),比如記錄傳感器的數(shù)據(jù)
用戶畫像的數(shù)據(jù)其實就是一個比較大的稀疏矩陣,比如螞蟻金服的風(fēng)控系統(tǒng)
在線聯(lián)機分析系統(tǒng)
注:oltp(在線事務(wù)分析系統(tǒng),建立在關(guān)系數(shù)據(jù)庫之上的,支持回滾)
典型的應(yīng)用就是微信朋友圈類似的應(yīng)用,發(fā)布新內(nèi)容,對新內(nèi)容進行點贊評論
(四)HBase的特點
強一致性讀/寫
CAP原則
自動分塊
通過Region分布在集群上
自動故障轉(zhuǎn)移
Hadoop/HDFS集成
MapReduce
Java API
(五)HBase的發(fā)展過程
(六)RDBMS和HBase的比較
- RDBMS(關(guān)系數(shù)據(jù)庫管理系統(tǒng),mysql、sqlserver、Oracle)
- 數(shù)據(jù)庫以表的形式獨立存在
- 支持FAT(dos)、NTFS(windows)、NXT(linux)
- 主鍵(primary key)
- 分庫分表
- 行、列、單元格
- 支持向上擴展
- 使用sql(增刪改查)
- 面向行
- acid特性
- 結(jié)構(gòu)化的數(shù)據(jù)(二維表格)
- 支持事務(wù)(transaction)
- 支持join(連接,全連接、自然連接、左連接、右連接)
- 中心化
- 以表的形式存在
- 支持HDFS
- 使用行鍵(rowkey)
- 分布式存儲
- 支持向外擴展
- 使用api和mapreduce、spark、flink來訪問HBase表數(shù)據(jù)
- 面向列
- 不支持acid,但是遵循cap原則
- 結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)
- 不支持事務(wù)
- 不支持join
- 分布式
(七)HBase和HDFS的對比
- 分布式
- 存儲系統(tǒng),不是一個文件系統(tǒng),無法快速的查詢數(shù)據(jù)
- 建立在hdfs上,為大型表提供快速查找和更新
- HBase在hdfs上建立了storefiles的索引,進行快速查詢
(八)HBase和Hive的對比
- 數(shù)據(jù)倉庫工具:Hive的本質(zhì)就是相當(dāng)于將hdfs的文件在mysql中做了一個一一對應(yīng)的映射關(guān)系,以方便HQL(類sql)進行數(shù)據(jù)的管理
- 用于數(shù)據(jù)分析、清洗等;適用于離線數(shù)據(jù),延遲很高
- 基于HDFS和MapReduce:Hive數(shù)據(jù)存儲在hdfs的DataNode上,HQL轉(zhuǎn)換為MapReduce程序執(zhí)行
- NoSql:面向列的非關(guān)系型數(shù)據(jù)庫
- 用于存儲結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)
- 基于hdfs:HBase的存儲文件Hfile存放在DataNode上,被RegionServer以region(分區(qū))的形式進行管理
- 延遲較低,適合于olap(實時的在線業(yè)務(wù),如天貓雙十一實時成交額大屏展示)
- Hive和HBase是兩種基于Hadoop的不同技術(shù)
- Hive是一種類sql的引擎,并運用mapreduce執(zhí)行任務(wù)
- Hbase是一種nosql的key/value數(shù)據(jù)庫,可以使用spark或flink高速執(zhí)行任務(wù)
- 兩者可以同時使用,用hive進行統(tǒng)計查詢,hbase進行實時查詢,數(shù)據(jù)可以在兩者之間進行轉(zhuǎn)換
(九)NoSql非關(guān)系型數(shù)據(jù)庫
二、HBase集群搭建
(一)HBase下載并安裝
百度搜索hbase
點擊download,選擇自己需要的版本,本次安裝選擇版本2.4.10
說明配置成功
- hbase-env.sh
修改jdk的路徑
修改不適用hbase自己的zookeeper,使用外部的zookeeper
- hbase-site.xml
- regionservers
- 分發(fā)hbase安裝包
- 分發(fā)環(huán)境變量配置文件
(二)啟動
4. 查看進程
(三)HBase的web UI查看
(四)HBase shell的測試
問題:出現(xiàn)亂碼
解決:添加選項{FORMATTER => ‘toString’}
觀察hdfs上文件信息,hbase的數(shù)據(jù)都儲存在hdfs上
(五)各種角色服務(wù)器參考的硬件配置
推薦:
- Master服務(wù)器要運行NN、RM、HM,推薦內(nèi)存24GB以上
- Slave服務(wù)器要運行DN、NM、HR,推薦內(nèi)存24GB以上
- 根據(jù)cpu的核心數(shù)來選擇在某個節(jié)點上運行的進程數(shù),例如,兩個4核cpu=8核,每個java進程都可以獨立占用一個核
三、HBase原理和數(shù)據(jù)模型
(一)概述
在hbase中,數(shù)據(jù)儲存在行和列的表中,可以把表看作是多個維度的map(k-v)結(jié)構(gòu)
(二)術(shù)語
- hbase中數(shù)據(jù)都是以表的形式來組織的
- hbase中的表由多行(幾十億)組成
- hbase中的行由一個行鍵(rowkey)和一個或多個列組成
,列的值與rowkey和列關(guān)聯(lián) - hbase中存在儲存時按行鍵以字典順序排列
- 行鍵的排列非常重要
列(column)
hbase中列由列簇(column famliy)和列名組成,構(gòu)成列限定符
列簇(column family)
- 處于性能的考慮,列簇將一組列及其值組織在一起
- 每個列簇都有一組存儲屬性,比如是否儲存在內(nèi)存、數(shù)據(jù)是否被壓縮及使用的編碼等等
-
- 列簇中包含一個個的列限定符
- 不同的行可能會存儲不同的列限定符
- 單元格是行、列簇和列限定符的組合
- 包含一個值和時間戳(表示該值的版本)
- 單元格的內(nèi)容以二進制存儲即字節(jié)數(shù)組(byte[])
總結(jié)
以上是生活随笔為你收集整理的HBase安装配置及测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scene Flow场景流halcon算
- 下一篇: Texture Inspection 纹