最も一般的なHBaseインタビューの質問と回答[究極のガイド]
公開: 2020-09-21Apache HBaseは、アプリケーションでデータをリアルタイムでプッシュまたはプルする場合に最適なビッグデータソリューションです。 主に、柔軟なスキーマと高速性で知られています。 この記事は、 HBaseの面接に関する上位の質問のいくつかに対する回答を提供することを目的としています。 インタビュアーは、候補者の技術的および一般的な認識をテストしたいと考えています。 したがって、あなたの努力は、概念を正確かつ徹底的に伝えることでなければなりません。
Adobe、HubSpot、Facebook、Twitter、Yahoo!、OpenLogic、StumbleUponなど、世界中の多くの大手企業がHbaseテクノロジーを使用しています。 スケーラブルなWebサイトの構築を検討している意欲的なWeb開発者にとって、HadoopやHBaseなどのマスタリングツールは非常に便利です。
世界のトップ大学からデータサイエンスを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
読む: Hadoopプロジェクトのアイデア
目次
トップHBaseインタビューの質問と回答
1. HBaseとは何ですか?
これは、ApacheSoftwareFoundationによって開発された列指向のデータベースです。 Hadoopクラスター上で実行されるHBaseは、半構造化データと非構造化データを格納するために使用されます。 そのため、従来のリレーショナルデータベースのような厳密なスキーマはありません。 また、SQL構文構造をサポートしていません。 HBaseは、クラスターサーバーとリージョンサーバーを制御するマスターノードを介してデータを保存および操作します。
2. Hbaseを使用する理由は何ですか?
HBaseは、大容量のストレージシステムとランダムな読み取りおよび書き込み操作を提供します。 大規模なデータセットを処理でき、1秒あたり複数の操作を実行します。 分散型で水平方向にスケーラブルな設計により、HBaseはリアルタイムアプリケーションに人気があります。
3.HBaseの主要コンポーネントについて説明します。
HBaseの動作部分には、Zookeeper、HBaseマスター、RegionServer、Region、およびカタログテーブルが含まれます。 各要素の目的は次のように説明できます。
- Zookeeperは、クライアントとHBaseマスター間の調整を行います
- HBaseマスターはRegionServerを監視し、管理機能を処理します
- RegionServerはリージョンを監督します
- リージョンにはMemStoreとHFileが含まれています
- カタログテーブルは、ROOTとMETAで構成されています
基本的に、Hbaseは一連のテーブルで構成され、各テーブルには行、列、および主キーがあります。 オブジェクトの属性を示すのはHBase列です。
4. HBaseのさまざまなタイプの操作コマンドは何ですか?
HBaseには、Get、Delete、Put、Increment、およびScanの5つの重要な操作コマンドがあります。
Getは、テーブルの読み取りに使用されます。 HTable.getを介して実行され、テーブルから特定の行のデータまたは属性を返します。 Deleteはテーブルから行を削除しますが、Putは行を追加または更新します。 インクリメントにより、単一行でのインクリメント操作が可能になります。 最後に、スキャンを使用して、特定の属性の複数の行を反復処理します。
5. WALとHlogは何を理解していますか?
- WALはログ先行書き込みの略で、MySQLのBINログと非常によく似ています。 データのすべての変更を記録します。
- HLogは、HLogkeyストアを維持するHadoopの標準のメモリ内シーケンスファイルです。
WALとHLogは、サーバー障害やデータ損失が発生した場合のライフラインとして機能します。 RegionServerがクラッシュしたり使用できなくなったりした場合、WALファイルはデータの変更を確実に再生できるようにします。
6.Hbaseを使用するいくつかの状況を説明してください。
次の場合にHBaseを使用するのが適しています。
- データのサイズは膨大であり、何百万ものレコードを操作する必要があります。
- 完全な再設計を実装し、従来のRDBMSをオーバーホールしています。
- クラスターへのインフラ投資を行うためのリソースがあります。
- トランザクション、型付き列、内部行など、特定のSQLレスコマンドがあります。
7.列ファミリーと行キーとはどういう意味ですか?
列ファミリーは、HBaseの基本的なストレージユニットを構成します。 これらはテーブルの作成時に定義され、ディスクに一緒に保存され、後で圧縮などの機能を適用できるようになります。
行キーを使用すると、セルを論理的にグループ化できます。 結合されたキーのプレフィックスとして、アプリケーションがソート順を定義できるようにします。 このようにして、同じ行キーを持つすべてのセルを同じサーバーに保存できます。
8. HBaseはリレーショナルデータベースとどのように異なりますか?
HBaseは、スキーマがなく、列指向のデータストアであり、人口がまばらなテーブルを含むため、リレーショナルデータベースとは異なります。 リレーショナルデータベースはスキーマベースで行指向であり、正規化されたデータをシンテーブルに格納します。 さらに、HBaseには自動パーティション化の利点がありますが、RDBMSにはそのような組み込みのサポートはありません。

読む: DBMSとRDBMS:DBMSとRDBMSの違い
9. HBaseのセルを構成するものは何ですか?
セルはHBaseテーブルの最小単位であり、データをタプルの形式で保持します。 タプルは、複数の部分からなるデータ構造です。 HBaseでは、{行、列、バージョン}で構成されます。
10.HBaseで圧縮を定義します。
圧縮は、古いファイルがデータベースから削除される前に、HFilesを単一のファイルにマージするために使用されるプロセスです。
11. HBaseを使用せずにHFileに直接アクセスできますか?
はい、HBaseを使用せずにHFileに直接アクセスするための独自の手法があります。 この目的には、HFile.mainメソッドを使用できます。
12.HBaseの削除マーカーとトゥームストーンマーカーについて話し合います。
HBaseでは、通常の削除プロセスにより、トゥームストーンマーカーが生成されます。 削除されたセルは非表示になりますが、それらによって表されるデータは実際には圧縮中に削除されます。 HBaseには、次の3種類のトゥームストーンマーカーがあります。
- バージョン削除マーカー:列の単一バージョンに削除のマークを付けます
- 列削除マーカー:列のすべてのバージョンをマークします
- ファミリー削除マーカー:列ファミリーのすべての列を削除用に設定します
ここで、HBaseの行は、主要な圧縮後に完全に削除されることに注意する必要があります。 したがって、データを削除して追加すると、Getsがトゥームストーンマーカーによってマスクされ、圧縮が完了するまで挿入された値が表示されない場合があります。
13.列ファミリーのブロックサイズを変更するとどうなりますか?
データベースがすでに占有されていて、HBaseで列ファミリーのブロックサイズを変更したい場合は、古いデータが古いブロックサイズのままである可能性があります。 圧縮中、新旧のデータは次のように動作します。
- 既存のデータは新しいブロックサイズを取り、正しく読み取られ続けます。
- 新しいファイルのブロックサイズは新しくなります。
このようにして、すべてのデータは、次の主要な圧縮の前に目的のブロックサイズに変換されます。
14.HBaseが実行できるさまざまなモードを定義します。
HBaseは、スタンドアロンモードまたは分散モードのいずれかで実行できます。 スタンドアロンは、HDFSの代わりにローカルファイルシステムを使用するHBaseのデフォルトモードです。 分散モードについては、さらに次のように分類できます。
- 疑似分散モード:すべてのデーモンが単一ノードで実行されます
- 完全分散モード:デーモンはクラスター内のすべてのノードで実行されます
15. HBaseで結合をどのように実装しますか?
HBaseは、MapReduceジョブを使用して、テラバイト単位のデータをスケーラブルな方法で処理します。 結合を直接サポートしていませんが、結合クエリはHBaseテーブルからデータを取得することで実装されます。
チェックアウト: Hadoopインタビューの質問
16.HBaseのフィルターの目的について話し合います。
ユーザーがShellまたはThriftを介してHBaseにアクセスできるように、ApacheHBase0.92でフィルターが導入されました。 したがって、サーバー側のフィルタリングのニーズに対応します。 フィルタの使用を拡張して、返されるデータをさらに制御できるようにする装飾フィルタもあります。 HBaseのフィルターの例を次に示します。
- ブルームフィルター:通常、リアルタイムクエリに使用されます。これは、HFileに特定の行またはセルが含まれているかどうかを知るためのスペース効率の高い方法です。
- ページフィルター:ページサイズをパラメーターとして受け入れるページフィルターは、個々のHRegionsのスキャンを最適化できます
17. HBaseを(i)Cassandra(ii)Hiveと比較します。
(i)HBaseとCassandra: CassandraとHBaseはどちらも、大規模なデータセットを管理するために設計されたNoSQLデータベースです。 ただし、 Cassandraクエリ言語(CQL )の構文はSQLをモデルにしています。 両方のデータストアで、行キーがプライマリインデックスを形成します。 Cassandraは、列の値にセカンダリインデックスを作成できます。 したがって、繰り返しの多い列でのデータアクセスを改善できます。 HBaseにはこのプロビジョニングがありませんが、セカンダリインデックス機能を導入するための他のメカニズムがあります。 これらの方法は、オンラインリファレンスガイドで簡単に見つけることができます。
(ii)HBaseとHive:どちらもHadoopベースのテクノロジーです。 上で説明したように、HBaseはNoSQLキー/値データベースです。 一方、Hiveは、高度なMapReduceジョブを実行できるSQLのようなエンジンです。 HiveからHBaseへ、またはその逆にデータの読み取りおよび書き込み操作を実行できます。 Hiveは分析タスクに適していますが、HBaseはリアルタイムクエリの優れたソリューションです。
また読む: HBaseアーキテクチャ:あなたが知る必要があるすべて
結論
これらのHBaseインタビューの質問と使用例により、この記事の最後に到達します。 基本、中級、上級レベルに対応するために、さまざまなトピックを取り上げようとしました。 だから、あなたのリクルーターに素晴らしい印象を与えるために改訂を続けてください!
データサイエンスについて知りたい場合は、IIIT-B&upGradのデータサイエンスのエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに作成され、10以上のケーススタディとプロジェクト、実践的なハンズオンワークショップ、業界の専門家とのメンターシップを提供します。1業界のメンターとの1対1、400時間以上の学習、トップ企業との仕事の支援。