1. 程式人生 > >【Hadoop】Hbase : 面向列的Nosql 、分散式資料庫

【Hadoop】Hbase : 面向列的Nosql 、分散式資料庫

      Hbase是基於hadoop的開源資料庫,它的設計具有高效能、高可靠性、列儲存、可伸縮、實時讀寫的資料庫系統,用於儲存粗粒度結構化的資料。

     Hbase是面向列儲存的、非結構型、分散式資料庫。

架構圖

 

Region:伺服器:


     Region是hbase中分散式儲存和負載均衡的最小單位,一個表擁有多個region,分配在不同的region伺服器上,一個region內的資料儲存在一個region伺服器上。物理上所有的資料儲存到hdfs上。

     一臺計算機上只執行一個region伺服器,管理維護其他region例項。

     Hbase在行的方向上將儲存表分成了多個region。每個表最初只有一個region,隨著記錄數的增加,region會被分割成兩個新的region,以此類往。通常一段時間後,一個表中會有n 個 region。


     Region由一到多個store組成,每個store儲存一個列族的所有資料。每個store由一個memstore和零個或多個storefile組成。

   Storefile則Hfile的格式儲存在HDFS中。

主伺服器:

        Hbase是主從結構。每個時刻只有一個HMaster執行,HMaster將Region分配給Region伺服器,協調region伺服器的負載並維護叢集狀態。

       HMaster只向Region伺服器提供資料服務,Region伺服器負責對所有region的讀寫請求操作。HMaster通過ZooKeeper判斷是否出現故障,如出現則會參考log檔案,重新分配Regions。

元資料表:

        使用者表的regions元資料被儲存在.meta表中,隨著region的增加,.meta表中資料也會增大,並分裂成多個regions。.meta將表中的多個regions的元資料儲存在ROOT表中,由ZooKeeper記錄ROOT表的位置資訊以便查詢。


    中ROOT表不會被分割,只有一個region,用以保障最多需要三次跳轉就可以定位到任意一個region.

執行原理

資料庫發展

1.nosql

       NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,NoSQL資料庫是非關係的、水平可擴充套件、分散式並且是開源的。在當時是一項全新的資料庫革命性運動,NoSQL資料庫主要分為四大類:健值儲存資料庫、列儲存資料庫、文件型資料庫、圖形資料庫。

       NoSQL 資料庫分類

型別

部分代表

特點

列儲存

Hbase

Cassandra

Hypertable

顧名思義,是按列儲存資料的。最大的特點是方便儲存結構化和半結構化資料,方便做資料壓縮,對針對某一列或者某幾列的查詢有非常大的IO優勢。

文件儲存

MongoDB

CouchDB

文件儲存一般用類似json的格式儲存,儲存的內容是文件型的。這樣也就有有機會對某些欄位建立索引,實現關係資料庫的某些功能。

key-value儲存

Tokyo Cabinet / Tyrant

Berkeley DB

MemcacheDB

Redis

可以通過key快速查詢到其value。一般來說,儲存不管value的格式,照單全收。(Redis包含了其他功能)

圖儲存

Neo4J

FlockDB

圖形關係的最佳儲存。使用傳統關係資料庫來解決的話效能低下,而且設計使用不方便。

物件儲存

db4o

Versant

通過類似面嚮物件語言的語法操作資料庫,通過物件的方式存取資料。

xml資料庫

Berkeley DB XML

BaseX

高效的儲存XML資料,並支援XML的內部查詢語法,比如XQuery,Xpath。

2.Newsql

         NewSQL是對所有新型可擴充套件、高效能資料庫的簡稱,它們不僅有NoSQL對海量資料庫的儲存管理能力,還保持了傳統資料庫支援ACID和SQL等特性。這類新式的關係型資料庫針對OLTP(讀-寫)工作負載,追求提供和NoSQL系統相同的擴充套件效能。

        “NewSQL”是我們對各種新的可擴充套件/高效能的SQL資料庫廠商的簡稱。NewSQL廠商的共同之處在於研發新的關係資料庫產品和服務,通過這些產品和服務,把關係模型的優勢發揮到分散式體系結構中,或者提高關係資料庫的效能到一個不必進行橫向擴充套件的程度。

幾種資料庫型別的發展趨勢:

    *sql資料庫:關係型,擴充套件性差;

 ·NoSQL資料庫,旨在滿足分散式體系結構的可擴充套件性需求和/或無模式資料管理需求;

 ·NewSQL資料庫,相容sql和nosql的優點。

   ·資料網格/快取產品,旨在儲存資料在記憶體中,以提高應用程式和資料庫效能。

列儲存和行儲存的對比

基於行儲存:

基於列儲存:

相關推薦

HadoopHbase : 面向Nosql 分散式資料庫

      Hbase是基於hadoop的開源資料庫,它的設計具有高效能、高可靠性、列儲存、可伸縮、實時讀寫的資料庫系統,用於儲存粗粒度結構化的資料。      Hbase是面向列儲存的、非結構型

HadoopHBaseHDFS和MapReduce架構異同簡解

HBase、HDFS和MapReduce架構異同 .. HBase(公司架構模型) HDFS2.0(公司架構模型) MR2.0(公司架構模型) MR1.0(公司架構模型)

HadoopHBase框架學習之路

1 背景知識 1.1 解決問題 解決HDFS不支援單條記錄的快速查詢和更新的問題。 1.2 適用情況 存在億萬條記錄的資料庫,只有千萬或者百萬條記錄使用RDBMS更加合適 確保你的應用不需要使用RDBMS的高階特性(第二索引,事務機制,

HadoopHBase上安裝使用Phoenix來用sql語句更新操作資料,安裝的過程各種坑和經驗

畢竟可以使用類似sql的標準語句來操作HBase想來還是滿爽的事情。不過只能是shell。 首先,下載安裝phoenix。 我們先到apache來安裝 在apache找到目前對應的phoenix。由於我們的HBase版本是1.2.4,所以選擇了4.9.

Python讀取命令引數在PyDev中設定Python執行時的引數

有時候,我們寫的命令列程式需要批次執行,這裡可以讓Python程式讀取命令列引數,再編寫一個命令列批次執行指令碼.bat,實際上就是一個充滿命令的、改了字尾名的文字檔案,在多個測試用例扔進Python程式中是非常有用的。 例如,如下圖,有一個cmdArgs.py程式,當在p

完全分散式Hadoop(二)HDFSYARN以及HA高可用概念介紹

一、HDFS-Hadoop分散式檔案系統 HDFS 採用Master/Slave的架構來儲存資料,這種架構主要由四個部分組成,分別為HDFS Client、NameNode、DataNode和Secondary NameNode。下面我們分別介紹這四個組成部分 1、Client:就

hadoop1MapReduce進行日誌分析,並排序統計結果

1.網上很多關於搭建Hadoop叢集的知識,這裡不多做敘述,並且本機執行Hadoop程式是不需要hdfs叢集的,我們本機執行只做個demo樣式,當真的需要執行大資料的時候,才需要真正的叢集 2.還有就是詞頻統計的知識,不論是官方文件,還是網上的知識,基本都能隨意百度個幾百篇出來 但是我找半天,確實是沒有找

hadoopMapReduce工作流程和MapTaskShuffleReduceTask工作機制

MapReduce整個工作流程:一、MapTask階段(1)Read階段:MapTask通過使用者編寫的RecordReader,從輸入InputSplit中解析出一個個key/value。(2)Map階段:該節點主要是將解析出的key/value交給使用者編寫map()函式

HBaseHBase各功能元件整合MapReduce的方式及資料遷移

1、HBase體系架構 各個功能元件闡述如下: (1)Client 整個HBase叢集的訪問入口; 使用HBase RPC機制與HMaster和HRegionServer進行通訊; 與HMaster進行通訊進行管理類操作; 與HRegionServer進行資

Hadoop基於Hadoop/Hbase/Hive的小型離線伺服器日誌分析應用

1、專案簡介 本專案主要設計一個基於Hadoop的日誌分析系統。其中的日誌資料主要來自於某系統開發測試期間的伺服器訪問日誌資料(Tomcat),通過對這些日誌資料利用正則表示式等技術手段進行處理,提取出匹配到的目標資料資訊,將其進行歸類化處理,而對日誌分

Hadoop 2.7.3版本 hdfs 命令使用

1.檢視HDFS下目錄結構及檔案 [email protected]:~$ hdfs dfs -ls -R /2.建立檔案目錄/tmp[email protected]:~$ hd

Hadoop6Hadoop安裝之報錯處理

錯誤報錯 1、時間不能同步 2014.12.18 做同步時間的時候,執行命令操作: [[email protected] ~]# /usr/sbin/ntpdate pool.ntp.org 會報錯: Name server

hadoop16學習hive操作語句

學習DDL語句 建立物件的語句 Create/Drop/Alter Database Create Database CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMEN

quick-cocos2d-x遊戲開發2——項目結構分析創建新場景

fileutil 遊戲 log world plain ack 設計 avi sca 創建完一個新項目之後,我們能夠簡單的看一看這個項目的文件組成,有這麽一個文件層次結構 幾個proj.*目錄就不用說了,是相應的平臺的解決方式,res專門存放我們的遊戲資源

Python基礎day04:函數介紹參數調用

位置 方式 tab 端口 調用 alt 調用函數 一次 參數調用 本節內容 函數介紹 函數參數及調用 函數的非固定參數 函數介紹 一、介紹   在我們以往的學習編程的過程當中,碰到的最多的兩張編程方式或者說編程方法:面向過程和面向對象。其實不管是哪一種,其實都是編程的方法論

HadoopHA 場景下訪問 HDFS JAVA API Client

new mes inpu true stream node spa lba main 客戶端需要指定ns名稱,節點配置,ConfiguredFailoverProxyProvider等信息。 代碼示例: package cn.itacst.hadoop.hdfs; i

Hadoophiveserver2 不能啟動端口 10000 開啟服務的相關經驗總結

error: pro mon 進行 org multipl html pen exp 轉載來自http://blog.csdn.net/lsttoy/article/details/53490144。 這個問題困擾了我三天,各種查資料踩坑填坑的嘗試,終於搞定了這個

riot.js教程組件撰寫準則預處理器標簽樣式和裝配方法

def coffee 將在 tom enter 名稱 spa 配方法 undefined 基本要求 一個riot標簽,就是展現和邏輯的組合(也就是html和JS); 以下是編寫riot標簽最基本的規則: 先撰寫HTML,再撰寫JS,JS代碼可以寫在<script

HadoopCombiner的本質是迷你的reducer,不能隨意使用

現在 使用 article driver eight 操作類 組合 通過 技術 問題提出: 眾所周知,Hadoop框架使用Mapper將數據處理成一個<key,value>鍵值對,再網絡節點間對其進行整理(shuffle),然後使用Reducer處理數據並進行最

轉載Spring AOP詳解 JDK動態代理CGLib動態代理

rto 工廠 第一個 lec 僅支持 sel clas sleep gpo 原文地址:https://www.cnblogs.com/kukudelaomao/p/5897893.html AOP是Aspect Oriented Programing的簡稱,面向切面