アーキテクチャと設計の基本的な概念Hbase--

記事のディレクトリ
:背景生成のHBase
のHadoopの限界
Hadoopのランダム・アクセス・データベース
にHadoopの特徴:
ハイブの特徴:
2:何のHBase
1.志向の列を:物理ファイルの保存の各ファミリ用の列
2.nosqlを:
3:のhbseテーブル構造
4:HBaseの長所と短所と特徴:
HBaseの特長:
HBaseの長所と短所:
5:HBaseのアプリケーションシナリオ
6:建築とデザインのHBaseの
アーキテクチャ:
デザインコンセプト:
:の背景のHBase
Hadoopの制限
のHadoopのみバッチ処理を行い、唯一連続的にデータにアクセスします。これは、データセット全体、作業のも、最も単純な検索を検索しなければならないことを意味します。さらに大きなデータセットにおける場合の処理結果、大規模なデータセットの順に処理されます。この時点で、新しい任意のポイントへのアクセスを必要とする溶液(ランダムアクセス)ユニットデータ。

Hadoopのランダム・アクセス・データベース
などのHBase、カサンドラ、CouchDBは、ダイナモのMongoDBなどのアプリケーション、および大量のデータを保存して、データベース内のいくつかのランダムアクセスデータです。

Hadoopの特徴:
任意の形式の大規模なデータセットの場合、Hadoopが行うことができますが、安全な保管のために大規模なデータセットで行うことができない検索単一のレコードを変更するための追加や削除のために行われる必要があります。

ハイブの特徴は:
HDFSに保存された構造化データのために、これらのデータに関する情報を記述したいくつかのメタデータを追加する場合、我々はハイブ様々な挿入/選択オペレーションを使用して、2次元状にHDFSの抽象化にデータを置くことができます。しかし、まだ生まれハイブは、検索を変更するには追加および削除のための単一のレコードをサポートしていません。また、追加および削除が捜査の単一のレコードを変更することができるように設計されています。

要約:

(1)大容量データの蓄積量がボトルネックとなり、単一のマシンは、大量のデータを読み込むことができません

(2)単一のマシンIO書き込み要求がボトルネックになると高い大容量データストレージ要求同時巨大

(3)データの大規模化により、ストレージサービスを追加/削除することができるように、ビジネスシナリオの多くは、データ記憶横水平拡張を考える開始し、そして現在のリレーショナルデータベースは、単一のマシン上でより集中され

重要な質問も見てみよう

巨大なデータセットを保存することができますが、またの検索を変更するために、リアルタイムデータベースシステムの追加および削除を行うことができますか?どのように設計しますか MySQLの分散バージョンを設計することと同じです。この問題を解決するために、他人の成果を学びに来て、これは学習の良い方法です。むしろ他人の成功を学ぶ1アップより。注:獲得した知識は思考の私達の方法を制限します。

ご質問など:

1は、どのように分散ファイルシステムを設計するには?

図2は、どのように分散コンピューティングフレームワークを設計するには?

図3は、どのように分散データベースを設計するには?その難しさとは何ですか?

ポイントを転倒アイデア:

要素を1つのデータに集中されていない場合は1、どのように迅速に決定するには?ブルームフィルタ

2、あなたはすぐにデータセットから要素を識別するために、適切なデータ構造と検索アルゴリズムを見つけることができるかどうか?バイナリ検索

図3は、どのように分散システムを設計するには?ネットワークプログラミングモデル(NIO RPCネッティー)

データが事前に濾過することができるかどうか4、クエリに含まれていない、クエリは、効率を向上させますか?行作物

以下を参照してくださいます。https://blog.csdn.net/qq_42246689/article/details/84823690

2:何のHBase
HBaseのBigTableのは、オープンソース(Javaで書かれたソースコード)バージョンです。ApacheのHadoopのデータベースは、HDFS上に構築されている、高い信頼性、高パフォーマンス、拡張性の高い、マルチバージョンのNoSQLは、分散ストレージ列を、提供するように設計されたデータ・ストレージ・システム、リアルタイムデータはランダム、大規模であります読み込みおよび書き込みアクセス。

HBaseのは、BigTableのは、Googleのチャビー・サービス・コーディネーターに依存しない、BigTableのは、GoogleのMapReduceのHBaseのデータの計算がサービス連携を行うためのZooKeeperに依存しているに依存しないデータの計算によって異なり行うために、基礎となるデータストア、BigTableのは、GoogleのGFSのデータストレージのHBaseのMapReduceに頼らないでくださいHDFSに依存します

1.列に直面:各カラムファミリは、物理ファイルの保存されている
:2.nosql
、非リレーショナルデータベースを標準SQLをサポートしていない、hbseは新しいシェルを提供し、サードパーティのサポート標準SQL(鳳凰)を介して動作することができます

注:上記HDFSにおいて、データ記憶処理hbseのHBaseのテーブルを介してデータテーブル。ストレージ、クエリ時間やMRに変換を実行

3:hbseテーブル構造
従来の2次元のリレーショナルデータベーステーブル

HBaseの四次元テーブル。

ここで説明する場合と従業員のリストがあり、このテーブルは、基本的な従業員の情報(従業員の名前、年齢)、従業員詳細(給与、役割)、およびタイムスタンプが含まれています。次のように表全体の構造は次のとおりです。

[画像ソースステーションは、セキュリティチェーン機構を有していてもよい、チェーンが失敗したダンプ、ダウンした画像を保存することをお勧めしますが、直接(IMG-W7TxgBAL-1571628874832)(D:\ CSDN画像\ QQのスクリーンショット20191021095426.png)をアップロード]

1)ラインキーのrowKey

彼の党の唯一の兆候は、キーの同じ行のデータは、キーのデータ行が異なる行が異なる、ユニークキーラインにする必要があり、データの同じ行と見なされます

2)列の家族欄ファミリー

各列だけでは存在しない列のグループ、列グループに添付列に属する列です。

経験:各家族のHBaseないつ以上の列の数は、各列ファミリーは複数の列を有し、家族の下で同じ列列列の各行は異なっていてもよいです

定期的な読み出し及び書き込みアクセスを有するカラム;一般的に:物理ファイルに対応する列グループは、同じ意味属性は、IOは同じストレージグループと同じ列の列データIoは、hbseは列指向グループに格納される属性であります

3)データテーブルの一部の列に属します

カラム値、各列が指定された列ファミリーに属します - 独自のカスタム列名はときにデータを挿入します

4)細胞

各列はセルに対応する値に対応します

5)データバージョンバージョン

各フラッグセルは、通常フラグがタイムスタンプシステムを使用して手動で指定されたタイムスタンプであってもよいです

下のセルをターゲットのHBase:

テーブル名「回線キー」欄ファミリー「列」のタイムスタンプ

4:HBaseの長所と短所と特徴:
HBaseの機能:
1、大:表は百万に数十億行を持つことができます

2、列指向性:指向カラム(群)およびメモリアクセス制御カラム(クラスタ)の独立した検索、物理的なファイルを格納する各列グループ。

3、スパース:列の空(NULL)で、ストレージスペースを取りませんので、テーブルは非常にまばらなように設計することができます。

図4に示すように、無パターン:動的に、必要に応じて、各ラインは、一次ソートキーと任意の数の列を有し、列が非常に異なる列を有することができ、テーブル内の異なる行に、増加させることができます

HBaseの利点と欠点:
①それとのNoSQL RDBMS間、データは、プライマリキー(のrowKey)と主キーの範囲によって取得することができます

②HBaseのデータクエリ機能は非常にシンプルで、他の複雑な操作に参加しサポートしていません。

③複雑なトランザクションは、行レベルのトランザクションを(他のハイブサポートに参加複合操作がマルチテーブルによって達成することができる)をサポートし、サポートされていません。

④HBaseのデータ・タイプをサポート:バイト[](すべてのデータが格納されたバイトの基礎となる配列です)

⑤は、主に緩く構造化および半構造化データを格納するために使用されます。

5:HBaseのアプリケーションシナリオ
同時に、シンプル、ランダムクエリ。(注:HBaseの非常に良好ではない、複雑では、クエリに参加するが、性能はグローバルインデックスセカンダリインデックス即ちようにして最適化することができる)
、半構造化、非構造化データ記憶装置。
一般的に、我々はオフライン膨大なデータの統計解析における複数の位置から、リアルタイムクエリにはHBaseに挿入しました。

6:建築とデザインのHBaseの
アーキテクチャ図:

 

アーキテクチャ:
全体のプロセスはこれです:クライアントは、入れとして、データを修正するためのアクションを開始します。各修飾は、RPCコールを介して送信され、です。KeyValueオブジェクトインスタンスにカプセル化されます。これらの呼び出しは、マッチング領域を含む領域サーバーに送信されます。です。KeyValue例到着後、それらは、対応する行HRegionに割り当てられるMemStoreが実際に記録されている配置次いで、データがWALに書き込まれ、インスタンスを管理;場合MemStore一定のサイズに達するとまたは特定の時間に付し、連続データは非同期ファイルシステム(HFILE)に書き込まれます。HDFS WALに[ハント]ストレージをログに記録するので、書き込み処理の問題ならば、WALは、失われていないデータを確認してください。その他の地域サーバーのログファイルを読み込み、変更し、データを復元するために戻って書き込むことができます。

デザインは:
LSMツリーに基づいて、ツリーの設計LSMは非常に簡単です:データの増分変更を設定したサイズ制限これらの変更バッチがディスクに書き込まれる達しメモリに保持されますが、少しトラブルを読むとき、あなたはヒットメモリかどうかを読んだときに見て、または複数のディスク・ファイルへのアクセスを必要とする必要がある場合もあり、ディスク上に、最近の操作を修正するメモリ内の過去のデータをマージし、その性能が大幅に改善されて記述する必要があります。エクストリームは、MySQLよりも一桁を達成LSMツリーのHBaseの書き込み性能に基づいて、言う、大きさ、低性能のオーダーをお読みください。LSM Nリトルツリーにツリーを分割する原則ツリー、それが最初の木は、木がディスクにメモリをフラッシュします成長していると、メモリに書き込まれ、ディスクがツリーに定期的に行うことができます読み出しパフォーマンスを最適化するために、ツリーに合わせ、操作をマージ。

おすすめ

転載: www.cnblogs.com/java67/p/11728798.html