ビッグデータの実用的なLinuxインタビューの質問

1.クラスターテクノロジーとは何ですか?クラスターテクノロジーの利点は何ですか?

 (1)クラスタークラスターテクノロジーは、次のように定義できます。相互に独立したサーバーのグループは、ネットワーク内の単一のシステムとして表され、単一のシステムモードで管理されます。この単一のシステムは、クライアントワークステーションに非常に実現可能なサービスを提供します。ほとんどのモードでは、クラスター内のすべてのコンピューターに共通の名前があり、クラスター内の任意のシステムで実行されているサービスをすべてのネットワーククライアントで使用できます。クラスターは、個別のコンポーネントのエラーと障害を調整および管理し、コンポーネントをクラスターに透過的に追加できる必要があります。

クラスターには、共有データストレージスペースを持つ複数(少なくとも2つ)のサーバーが含まれます。サーバーがアプリケーションを実行すると、アプリケーションデータは共有データスペースに保存されます。各サーバーのオペレーティングシステムとアプリケーションファイルは、独自のローカルストレージスペースに保存されます。クラスタ内の各ノードサーバーは、内部LANを介して相互に通信します。

ノードサーバーに障害が発生すると、このサーバーで実行されているアプリケーションは自動的に別のノードサーバーに引き継がれます。アプリケーションサービスに障害が発生すると、アプリケーションサービスが再起動されるか、別のサーバーに引き継がれます。上記のいずれかの障害が発生した場合、お客様は新しいアプリケーションサービスにすばやく接続できます。

(2)利点:高いスケーラビリティ、高可用性HA。クラスタ内のノードに障害が発生した場合、そのタスクを他のノードに渡すことができます。単一障害点を効果的に防ぐことができます。

ハイパフォーマンス。負荷分散クラスターにより、システムは同時により多くのユーザーにアクセスできます。

高コストパフォーマンス。高性能システムは、業界標準を満たす安価なハードウェアを使用して構築できます。

 

 

2. NTPとは何ですか?用途は何ですか?

(1)NTPのフルネームは「NetworkTimeProtocol」、つまりNetwork Time Protocolであり、RFC 1305で定義されている時刻同期プロトコルであり、分散型タイムサーバーとクライアント間の時刻を同期するために使用されます。

NTPは送信用のUDPパケットに基づいており、使用されるUDPポート番号は123です。

NTPを使用する目的は、すべてのデバイスのクロックをネットワーク内のクロックと同期して、ネットワーク内のすべてのデバイスのクロックの一貫性を保ち、デバイスが均一な時間に基づいて複数のアプリケーションを提供できるようにすることです。NTPを実行しているローカルシステムの場合、他のクロックソースから同期を受信できるだけでなく、他のクロックを同期するためのクロックソースとして使用したり、他のデバイスと同期したりすることもできます。

(2)NTPサーバーは、主にネットワーク内の各コンピューターの時刻を同期するために使用されます。その目的は、ローカルエリアネットワークで0.1ミリ秒の精度で、インターネット上のほとんどの場所で1〜50ミリ秒の精度で、コンピューターの時計をUTCに同期させることです。コンピューターの時刻をサーバーまたはクロックソース(クォーツ時計、GPSなど)に同期し、高精度の時刻補正を提供し、暗号化された確認を使用してウイルスプロトコル攻撃を防ぐことができます。

3. SSHとは何ですか?用途は何ですか?

(1)SSHは、IETFネットワークワーキンググループによって策定されたSecure Shellの略語です。SSHは、アプリケーション層に基づくセキュリティプロトコルです。SSHは、リモートログインセッションやその他のネットワークサービスにセキュリティを提供するために設計された、より信頼性の高いプロトコルです。SSHプロトコルを使用すると、リモート管理プロセスでの情報漏えいを効果的に防ぐことができます。SSHは元々UNIXシステム上のプログラムでしたが、すぐに他のオペレーティングプラットフォームに拡張されました。SSHは、正しく使用されると、ネットワークの抜け穴を補うことができます。

(2)トランスポート層プロトコル[SSH-TRANS]

サーバー認証、機密性、および完全性を提供します。さらに、圧縮を提供することもあります。SSH-TRANSは通常TCP / IP接続で実行され、他の信頼できるデータストリームにも使用される場合があります。SSH-TRANSは、強力な暗号化テクノロジー、パスワードホスト認証、および整合性保護を提供します。このプロトコルの認証はホストに基づいており、プロトコルはユーザー認証を実行しません。高レベルのユーザー認証プロトコルは、このプロトコルの上にあるように設計できます。

 

ユーザー認証プロトコル[SSH-USERAUTH]

これは、クライアントユーザー認証機能をサーバーに提供するために使用されます。トランスポート層プロトコルSSH-TRANS上で実行されます。SSH-USERAUTHが起動すると、下位レベルのプロトコルから(最初の鍵交換の交換ハッシュHから)セッション識別子を受け取ります。セッション識別子はこのセッションを一意に識別し、秘密鍵の所有権を証明するためのマーキングに適しています。SSH-USERAUTHは、低レベルプロトコルが機密保護を提供するかどうかも知る必要があります。

 

接続プロトコル[SSH-CONNECT]

複数の暗号化されたトンネルを論理チャネルに分割します。ユーザー認証プロトコルで実行されます。インタラクティブなログインセッション、リモートコマンドの実行、TCP / IP接続の転送、X11接続の転送を提供します。

 

4.証明書のログインプロセスについて簡単に説明します。

最初に、クライアントは証明書の秘密鍵と公開鍵を生成します。秘密鍵はクライアントに配置され、公開鍵はサーバーにアップロードされます(リモートログイン)。一般に、セキュリティのために、クライアントをコピーするハッカーの秘密鍵にアクセスするには、クライアントは秘密鍵を生成するときにパスワードを設定し、sshサーバーにログインするたびに、クライアントはパスワードを入力して秘密のロックを解除する必要がありますキー(作業中の場合は、パスワードのない秘密キーが使用され、ある日サーバーがハッキングされ、イエローリバーにジャンプしてもクリーンアップできませんでした)。

次に、サーバーはクレジット公開鍵を追加します。クライアントが生成した公開鍵をsshサーバーにアップロードし、指定したファイルに追加します。これで、ssh証明書ログインの設定が完了します。

5. HDFSの設計哲学は何ですか?

特大のファイルを保存します。ここでの「特大のファイル」とは、数百MB、GB、さらにはテラバイトのファイルを指します。最も効率的なアクセスモードは、1回の書き込みと複数回の読み取り(ストリーミングデータアクセス)です。HDFSに保存されているデータセットは、hadoopの分析オブジェクトとして使用されます。データセットが生成された後、このデータセットに対してさまざまな分析が長時間実行されます。各分析はデータセット内のほとんどまたはすべてのデータを設計するため、データセット全体を読み取るための時間遅延は、最初のレコードを読み取るための時間遅延よりも重要です。通常の安価なサーバーで実行されます。HDFSの設計コンセプトの1つは、通常のハードウェアで実行できるようにすることです。ハードウェアに障害が発生した場合でも、フォールトトレラント戦略を使用して高いデータ可用性を確保できます。

6.YARNのアーキテクチャについて簡単に説明します。

ヤーンは依然として全体としてマスター/スレーブモデルに属しており、機能を実現するために主に3つのコンポーネントに依存しています。

1つはクラスターリソースのアービターであるResourceManagerで、2つの部分で構成されます。1つはプラグ可能なスケジューリングスケジューラーで、もう1つはクラスター内のユーザージョブを管理するために使用されるApplicationManagerです。

2つ目は、各ノードのNodeManagerで、そのノードのユーザージョブとワークフローを管理し、独自のコンテナーの使用状況をResourceManagerに継続的に送信します。

3番目のコンポーネントはApplicationMasterです。ユーザーのジョブライフサイクルマネージャーの主な機能は、ResourceManager(グローバル)からコンピューティングリソース(コンテナー)を申請し、NodeManagerと対話して特定のタスクを実行および監視することです。

 

7. HBaseの特徴は何ですか?

まず、強い一貫性が読み取りと書き込みを行います。HBaseは結果整合性のあるデータストアではないため、高速のカウントおよび集計タスクに適しています。

第二に、自動シャーディング。HBaseテーブルは、リージョンを通じてクラスター内に分散されます。データが大きくなると、領域は自動的に分割されて再配布されます。

第三に、RegionServerは自動的にフェイルオーバーします。

第4に、Hadoop / HDFSの統合。HBaseは、分散ファイルシステムとして外部HDFSをサポートしています。

第五に、MapReduceの統合。HBaseは、MapReduceを介した大規模な並行処理をサポートし、HBaseはソースとシンクとして同時に機能できます。

第六に、JavaクライアントAPI。HBaseは、プログラムによるアクセスのための使いやすいJavaAPIをサポートしています。

第7に、Thrift / RESTAPI。ThriftとRESTをサポートしてHBaseにアクセスします。

第8に、ブロックキャッシュとブルームフィルター。HBaseは、クエリのパフォーマンスを向上させるためのクエリ最適化のためのブロックキャッシュおよびブルームフィルターをサポートしています。

第九に、運用および保守管理。HBaseは、運用と保守のための組み込みWebページとJMXインジケーターを提供します。

10番目に、大きなテーブル(BigTable)です。テーブルには、数億の行と数百万の列を含めることができます。

第11に、列(ファミリー)の保管、検索、および許可の制御。

第十二、まばら。テーブルのNULL列はストレージスペースを占有しません。

 

8. HBaseはどのようにデータを保存しますか?

(1)HRegionは、データを格納するHBASEの最小単位です。テーブルには1つ以上のリージョンを含めることができ、それらは同じHRegionServerに配置することも、異なるHRegionServerに分散させることもできます。HRegionServerは、異なるテーブルに属する複数のHRegionを持つことができます。HRegionは複数のストアで構成されており、各ストアはこのHRegionのテーブルの列ファミリーに対応します。つまり、各列ファミリーは集中ストレージユニットです。

(2)ストアはHBaseのストレージの中核であり、HDFSの読み取りおよび書き込み機能を実装します。ストアは1つのMemStoreと0個以上のStoreFileで構成されます。

(3)MemStoreは書き込みバッファー(In Memory Sorted Buffer)です。すべてのデータは最初にWALログに書き込まれ、次にMemStoreに書き込まれます。MemStoreは通常、特定のアルゴリズムに従ってデータを層HDFSファイル(HFile)にフラッシュします。 HRegionのすべての各列ファミリーには独自のMemStoreがあります。

(4)HBaseデータ(Cell / KeyValue)を格納するためのHFile(StoreFileはHFileの単純なパッケージです。つまり、StoreFileの最下層はHFileです)。HFileのデータは、RowKey、Column Family、およびColumnで並べ替えられます。同じセル(つまり、3つの値が同じ)の場合、タイムスタンプの逆順で並べ替えられます。

(5)WALは先行書き込みログであり、初期バージョンではHLogと呼ばれていました。これはHDFS上のファイルです。その名前が示すように、すべての書き込み操作では、実際に更新される前に、まずデータがこのログファイルに書き込まれるようにします。 MemStore、最終的にHFileに書き込まれます。WALファイルはディレクトリ/ hbase / WALs / $ {HRegionServer_Name}に保存さます

上の図にはBlockCacheもあります。読み取りキャッシュ。新しいクエリデータはそれぞれBlockCacheにキャッシュされます。

HBaseのLSMストレージのアイデア

LSMツリー(Log-Structured Merge Tree)の基本的な考え方は、メモリが十分に大きいと想定することです。したがって、データが更新されるたびにディスクにデータを書き込む必要はなく、これらの変更操作は、指定されたサイズ制限ディスクへの書き込み。

LSMシンプルモデル

 

9. HRegionServerの主な機能は何ですか?

RegionServerは、リージョンを格納するためのコンテナーであり、直感的に言えば、サーバー上のサービスです。RegionServerは実際にデータを格納するノードであり、最終的に分散ファイルシステムHDFSに格納されます。クライアントはZooKeeperからRegionServerのアドレスを取得した後、RegionServerからデータを直接取得します。HBaseクラスターの場合、その重要性はマスターサービスよりも大きくなります。

10. Zookeeperの役割は何ですか?

RegionServerはZooKeeperサービスに大きく依存しており、ZooKeeperはハウスキーパーと同様にHBaseで役割を果たします。ZooKeeperは、特定のデータセグメントが保存されているRegionServerを含む、HBase内のすべてのRegionServerの情報を管理します。クライアントがHBaseに接続するたびに、実際には最初にZooKeeperと通信し、接続する必要のあるRegionServerを照会してから、RegionServerに接続します。

HBaseクラスターでのZookeeperの役割の概要は、次のとおりです。サーバーにとって、これはクラスターの調整と制御にとって重要な依存関係ですクライアントにとって、これはデータのクエリと操作に不可欠な部分です

マスターサービスが切断されても、読み取りおよび書き込み操作は実行できますが、ZooKeeperが切断されると、データの読み取りに必要なメタデータテーブルhbase:meataの場所が原因で、データを読み取ることができないことに注意してください。ZooKeeperに保存されます。動物園の飼育係がHBaseに不可欠であることがわかります。

11.ハイブの特徴は何ですか?

まず、大規模な構造化データの分析と要約。

次に、複雑なMapReduce書き込みタスクをSQLステートメントに単純化します。

第三に、JSON、CSV、TEXTFILE、RCFILE、SEQUENCEFILE、ORC(Optimized Row Columnar)をサポートする柔軟なデータストレージ形式。

 

12.メタストアとは何ですか?それは何をするためのものか?何が含まれていますか?

Hive Metastore(HMS)は、Hiveの一部ではなく、別個のサービスであり、同じクラスター上にある必要はありません。HMSは、Hive、Impala、Spark、およびその他のコンポーネントのバックエンドにメタデータを保存します。

.Metastoreはデータのデータであり、主にデータの属性を説明する情報です。これは、保存場所、履歴データ、リソース検索、ファイル記録などの機能をサポートするために使用されます。メタデータは電子カタログと見なすことができます。カタログを編集する目的を達成するためには、データの検索を支援する目的を達成するために、データの内容または特性を記述および収集する必要があります。

メタストアはメタデータサービスであり、その役割は次のとおりです。クライアントはメタストアサービスに接続し、メタストアはMySQLデータベースに接続してメタデータにアクセスします。メタストアサービスを使用すると、複数のクライアントが同時に接続できます。これらのクライアントは、MySQLデータベースのユーザー名とパスワードを知っている必要はなく、メタストアサービスに接続するだけで済みます。

DBSテーブル、TBLSテーブル、PARTITIONSテーブル、およびSDSテーブルが含まれます。

13.テーブルと外部テーブルの違いは何ですか?

(1)テーブルが作成されると、externalキーワードを持つ外部テーブルになります。それ以外の場合は、内部テーブルになります。

(2)テーブル作成時に内部テーブルと外部テーブルの両方をそれぞれの場所で指定できます

(3)テーブルを削除する場合、外部テーブルは対応するデータを削除せず、メタデータ情報のみを削除し、内部テーブルを削除します。

(4)他の使用法は同じです

14. HiveServerとHiveServer2の違いは何ですか?

HiveServer2はオプションのHive組み込みサービスであり、リモートクライアントがさまざまなプログラミング言語を使用してHiveにリクエストを送信し、結果を返すことができます。HiveServer2はHiveServer1の改良版であり、主に複数のクライアントからの同時要求と認証を処理できないという問題を解決します。

おすすめ

転載: blog.csdn.net/qq_45059457/article/details/108873133