HBase(1)基本紹介

1. NoSQLの概要

1.1 NoSQLとは

NoSQL:SQLだけでなく、非リレーショナルデータベース

NoSQLは一般的な用語です

  • 従来のRDBMSモデルに従わないデータベースを指します
  • データは非リレーショナルであり、メインのクエリ言語としてSQLを使用しません
  • データベースのスケーラビリティと可用性の問題を解決する
  • 原子性や一貫性の問題には対応していません

image-20200924163336133

1.2 NoSQLを使用する理由

インターネットの発展に伴い、従来のリレーショナルデータベースにはボトルネックがあります

  • 高い同時読み取りおよび書き込み
  • 大容量
  • 高可用性
  • 高い拡張性
  • 低価格

NoSQLとリレーショナルデータベースの比較

主に以下の違いがあります

比較した NoSQL 関係データベース
共通データベース HBase、MongoDB、Redis Oracle、DB2、MySQL
保存形式 ドキュメント、キーと値のペア、グラフ構造 テーブルのフォーマット、行と列
保管仕様 冗長性を奨励する 規範的、重複を避ける
ストレージ拡張 スケールアウト、分散 垂直方向の拡張(限られた水平方向の拡張)
問い合わせモード 構造化クエリ言語SQL 非構造化クエリ
事務 トランザクションの一貫性をサポートしていません サポート業務
パフォーマンス 高い読み取りおよび書き込みパフォーマンス 読み取りと書き込みのパフォーマンスが低い
費用 シンプルで導入が簡単、オープンソース、低コスト 高コスト

1.3 NoSQLの機能

  • 最終的な一貫性

  • アプリケーションにより、一貫性を維持し、トランザクションを処理する責任が増加しました

  • 冗長データストレージ

  • NoSQL!=ビッグデータ

    • NoSQL製品は、ビッグデータストレージの問題を解決するのに役立ちます
    • ビッグデータには、データストレージの問題だけではありません
      • Hadoop
      • カフカ
      • スパークなど

1.4 NoSQLの基本概念

  • 3つの礎石
    • CAP、BASE、最終整合性
  • 索引付け(index)、クエリ(query)
  • MapReduce
  • シャーディング
  1. CAP理論
  • データベースは最大2/3をサポートします
    • 一貫性
    • 可用性
    • パーティショントレランス(パーティションフォールトトレランス)
  • NoSQLは「ACID」を保証しません
  • 「結果整合性」を提供する

image-20200924163738973

  1. ベース
  • 基本的に入手可能(基本的に利用可能)
    • コアが使用可能であることを確認してください
  • ソフトステート
    • 状態がしばらくの間同期していない可能性があります
  • 結果整合性(結果整合性)
    • 一定の期間の後、データは最終的に一貫した状態に達することができます
  • 核となる考え方は、強い整合性が達成できない場合でも、アプリケーションは最終的な整合性を達成するための適切な方法を選択できるということです
  1. 最終的な一貫性
  • 最終結果は一貫しており、常に一貫しているわけではありません
  • 口座残高や在庫などのデータには、強い整合性が必要です
  • カタログなどの情報は強い整合性を必要としません
    • 因果律(因果律)
    • Read-your-writesの一貫性
    • セッションの一貫性

インデックスとクエリ

  • インデックス作成(インデックス作成)
    ほとんどのNoSQLはキーによってインデックスが作成されます
    。NoSQLの一部により、セカンダリインデックス
    HBaseでHDFSを使用できるようになり、追加のみの
    バッチ書き込みが記録さ
    れ、ファイルを再作成およびソート
  • クエリ(クエリ)に
    は特別なクエリ言語がありません。通常、クエリにはスクリプト言語を使用します
    。SQLクエリのサポートを開始し
    たり、MapReduceコードクエリを使用したりできる

MapReduce、シャーディング

  • MapReduce
    はHadoopのMapReduceではなく、概念は
    データ処理とクエリに関連しています
  • シャードを複製できる
    パーティション化モードのシャーディング(シャーディング)は、災害復旧に適しています

1.5 NoSQL分類

主に以下の4つのカテゴリーに分かれます

分類 例えば 一般的なアプリケーションシナリオ
Key-Valueストアデータベース(Key-Value) Redis、MemcacheDB、Voldemort コンテンツのキャッシュなど
列ストアデータベース(WIDE COLUMN STORE) Cassandra、HBase 分散ストレージの膨大なデータに対応
文書データベース(DOCUMENT STORE) CouchDB、MongoDB Webアプリケーション(Key-Valueデータベースのアップグレードバージョンと見なすことができます)
グラフDB Neo4J、InfoGrid、Infinite Graph リレーションシップグラフの作成に焦点を当てたソーシャルネットワーク、レコメンデーションシステムなど

Key-Valueストアデータベース(Key-Value)

image-20200924164747438

列ストアデータベース(ワイド列ストア)

image-20200924164759220

ドキュメントストア

image-20200924164819333

グラフデータベース

image-20200924164834330

1.6 NoSQL、BI、ビッグデータの関係

  • BI(ビジネスインテリジェンス):ビジネスインテリジェンス
    これはソリューションの完全なセットです
    。BIアプリケーションにはモデルに依存するモデルが含まれます
    。BIは主に標準SQLをサポートし、NoSQLサポートはリレーショナルデータベースよりも弱いです。
  • NoSQLはビッグデータとの相関が高く
    、一般に、列ストレージデータベースは
    HBaseやHadoopなどのビッグデータシナリオで使用されます

2. HBaseの概要

2.1 HBaseの概要

  • HBaseは主要なNoSQLデータベースです。
    列指向のストレージデータベースです。GoogleBig Tableペーパーに基づく
    分散ハッシュマップ
    です。
    ストレージとしてHDFSを使用し、その信頼性を使用しています。
  • HBaseの機能
    高速データアクセス速度、応答時間は約2〜20ミリ秒
    ランダムな読み取りと書き込みをサポート。各ノード
    は20k〜100k + ops / sのスケーラビリティで、20,000以上のノードに拡張できます。

2.2 HBase開発履歴

時間 出来事
2006年 GoogleがBig Tableに関する論文を発表
2007年 HBaseの最初のバージョンとHadoop 0.15.0が一緒にリリースされます
2008年 HBaseがHadoopのサブプロジェクトになる
2010年 HBaseがトップのApacheプロジェクトになる
2011年 ClouderaはHBase0.90.1に基づいてCDH3を起動します
2012 HBaseリリースバージョン0.94
2013〜2014 HBaseは0.96バージョン/0.98バージョンをリリースしました
2015-2016 HBaseはバージョン1.0、バージョン1.1、バージョン1.2.4をリリースしました
2017年 HBaseリリースバージョン1.3
2018年 HBaseがバージョン1.4およびバージョン2.0をリリース

2.3 HBaseユーザーグループ

image-20200924165725077

2.4 HBaseアプリケーションのシナリオ

  • アプリケーションシナリオ-1

増分データ-時系列データ

大容量、高速書き込み

image-20200924165817407

  • アプリケーションシナリオ-2

情報交換メッセージング

大容量、高速の読み書き

image-20200924165843295

  • アプリケーションシナリオ-3

コンテンツサービス-Webバックエンドアプリケーション

大容量、高速の読み書き

image-20200924165909477

2.5 Apache HBaseエコシステム

HBaseエコシステムテクノロジー
Lily – HBaseベースのCRM
OpenTSDB – HBase指向の時系列データ管理
Kylin – HBase上のOLAP
Phoenix – SQL操作HBaseツール
Splice Machine – HBase
Apache
Tephraに基づくOLTP – HBaseトランザクションサポートTiDB –分散SQL DB
Apache Omid-Optimizeトランザクション管理
Yarnアプリケーションタイムラインサーバーv.2 HBaseに移行
HiveメタデータストレージはHBaseに移行できます
Ambari Metrics ServerはデータストレージにHBaseを使用します

2.6HBaseアーキテクチャ

1.物理アーキテクチャ

HBaseはマスター/スレーブアーキテクチャを採用

image-20200924170008602

  • HMasterの役割
    は、HBaseクラスターのマスターノードであり、HA
    管理と分散を実現するために複数のノードで構成できます。Region は、RegionServer
    のロードバランシングを担当します。障害が発生
    したRegionServerを見つけ、それらのリージョンを再分散します。

  • RegionServer

    RegionServerは、リージョンの管理と保守を担当します
    。1つのRegionServerには1つのWAL、1つのBlockCache(読み取りキャッシュ)、および複数のリージョン
    が含まれます。1つのリージョンには複数のストレージ領域が含まれ、各ストレージ領域は列ファミリーに対応します
    。1つのストレージ領域は複数のStoreFilesおよびMemStoresで構成されます
    。1つのStoreFileは1つのHFileと列ファミリーの
    HFileとWALはシーケンスファイルとしてHDFSに保存され、
    クライアントはRegionServerと対話します

image-20200924170110410

  • 地域和テーブル

image-20200924170132008

2.論理アーキテクチャー行

  • 行キー(行キー)は一意であり、並べ替えられています
  • スキーマはいつレコードを挿入するかを定義できます
  • 他の行が使用されていない場合でも、各行は独自の列を定義できます
    • 関連する列は列ファミリーとして定義されます
  • 一意のタイムスタンプを使用して複数の行バージョンを維持する
    • 値のタイプはバージョンによって異なる場合があります
  • HBaseデータはすべてバイト単位で保存されます

image-20200924170259209

2.7 HBaseデータ管理

  • データ管理ディレクトリ
    • システムカタログテーブルhbase:meta
      • メタデータなどの保存
    • HDFSディレクトリ内のファイル
    • サーバー上のリージョンインスタンス
  • HDFS上のHBaseデータ
    • HDFSファイルで修復できます
    • 修復パス
      • RegionServer-> Table-> Region-> RowKey->列族

image-20200924170349335

2.8HBaseアーキテクチャの機能

  • 強い整合性
  • 自動拡張
    • 地域が大きくなると自動的に分割
    • HDFSを使用してデータを拡張し、スペースを管理する
  • 書き込み回復
    • 使用WAL(ログの先行書き込み)
  • Hadoopとの統合

おすすめ

転載: blog.csdn.net/zmzdmx/article/details/108778691