ホーム テクノロジー キャリア 30 以上の Hadoop 面接の質問と回答

30 以上の Hadoop 面接の質問と回答


フォーブスの統計によると、世界の組織の最大 90% がビッグデータ分析を使用して投資レポートを作成しています。

ビッグデータの人気の高まりに伴い、Hadoop に関する雇用機会が以前よりも急増しています。

したがって、Hadoop エキスパートの役割を獲得するには、この記事にまとめた面接の質問と回答を使用して、面接を乗り越えることができます。

おそらく、Hadoop やビッグデータの役割が有利になる給与範囲などの事実を知ることで、面接に合格する動機が得られるでしょう? 🤔

  • Indeed.com によると、米国を拠点とするビッグデータ Hadoop 開発者の平均給与は 144,000 ドルです。
  • itjobswatch.co.ukによると、ビッグデータ Hadoop 開発者の平均給与は 66,750 ポンドです。
  • Indeed.com の情報源によると、インドでは平均給与が 1,600,000 ₹ になるとのことです。

儲かると思いませんか?それでは、Hadoop について学びましょう。

コンテンツ 表示

Hadoopとは何ですか?

Hadoop は Java で書かれた人気のフレームワークで、プログラミング モデルを使用して大規模なデータ セットを処理、保存、分析します。

デフォルトでは、その設計により、単一のサーバーからローカルの計算とストレージを提供する複数のマシンにスケールアップできます。さらに、可用性の高いサービスを実現するアプリケーション層の障害を検出して処理する機能により、Hadoop は非常に信頼性の高いものになります。

Hadoop の面接でよく聞かれる質問とその正解に早速入ってみましょう。

Hadoop の面接の質問と回答

ハドゥープ
ハドゥープ

Hadoop のストレージ ユニットとは何ですか?

回答: Hadoop のストレージ ユニットは、Hadoop 分散ファイル システム (HDFS) と呼ばれます。

Network Attached Storage は Hadoop 分散ファイル システムとどう違うのですか?

回答: Hadoop のプライマリ ストレージである HDFS は、汎用ハードウェアを使用して大規模なファイルを保存する分散ファイル システムです。一方、NAS は、異種クライアント グループにデータへのアクセスを提供するファイル レベルのコンピュータ データ ストレージ サーバーです。

NAS のデータ ストレージは専用のハードウェア上にありますが、HDFS は Hadoop クラスター内のすべてのマシンにデータ ブロックを分散します。

NAS はハイエンドのストレージ デバイスを使用するため、かなり高価ですが、HDFS で使用される汎用ハードウェアはコスト効率に優れています。

NAS は計算からのデータを個別に保存するため、MapReduce には適していません。それどころか、HDFS の設計により、MapReduce フレームワークと連携できます。計算は、データから計算ではなく、MapReduce フレームワーク内のデータに移動します。

Hadoop とシャッフルでの MapReduce について説明する

回答: MapReduce は、Hadoop クラスター内の数百から数千のサーバーにわたる大規模なスケーラビリティを可能にするために、Hadoop プログラムが実行する 2 つの異なるタスクを指します。一方、シャッフルは、Mapper からのマップ出力を MapReduce の必要な Reducer に転送します。

Apache Pig アーキテクチャを垣間見る

Apache Pig アーキテクチャ
Apache-Pig-アーキテクチャ
Apache-Pig-アーキテクチャ

回答: Apache Pig アーキテクチャには、Pig Latin スクリプトを使用して大規模なデータセットを処理および分析する Pig Latin インタープリターが含まれています。

Apache pig は、結合、ロード、フィルター、並べ替え、グループ化などのデータ操作が実行されるデータセットのセットでも構成されます。

Pig Latin 言語は、Grant シェル、UDF、組み込みなどの実行メカニズムを使用して、必要なタスクを実行する Pig スクリプトを作成します。

Pig は、これらの記述されたスクリプトを Map-Reduce ジョブ シリーズに変換することで、プログラマの作業を容易にします。

Apache Pig アーキテクチャ コンポーネントには次のものが含まれます。

  • パーサー– スクリプトの構文をチェックし、型チェックを実行することで Pig スクリプトを処理します。パーサーの出力は Pig Latin のステートメントと論理演算子を表し、DAG (有向非巡回グラフ) と呼ばれます。
  • オプティマイザー– オプティマイザーは、DAG での投影やプッシュダウンなどの論理最適化を実装します。
  • コンパイラー– オプティマイザーからの最適化された論理プランを一連の MapReduce ジョブにコンパイルします。
  • 実行エンジン– ここで、MapReduce ジョブの目的の出力への最終実行が行われます。
  • 実行モード– Apache pig の実行モードには、主にローカルと Map Reduce が含まれます。

ローカル メタストアとリモート メタストアの違いをリストする

回答: Local Metastore の Metastore サービスは、Hive と同じ JVM で実行されますが、同じマシンまたはリモート マシン上の別のプロセスで実行されているデータベースに接続します。一方、リモート メタストアのメタストアは、Hive サービス JVM とは別の JVM で実行されます。

ビッグデータの 5 つの V とは何ですか?

回答: これら 5 つの V は、ビッグデータの主な特徴を表しています。それらには次のものが含まれます。

  • 価値: ビッグ データは、データ運用でビッグ データを使用する組織に高い投資収益率 (ROI) による大きな利益をもたらすことを目指しています。ビッグデータは、洞察の発見とパターン認識からこの価値をもたらし、その結果、顧客関係が強化され、業務がより効果的になり、その他の利点が得られます。
  • Variety : 収集されたデータ型の異種性を表します。さまざまな形式には、CSV、ビデオ、オーディオなどが含まれます。
  • ボリューム: 組織によって管理および分析されるデータの重要な量とサイズを定義します。このデータは指数関数的な増加を示しています。
  • Velocity : これは、データ増加の指数関数的な速度です。
  • 真実性: 真実性とは、データが不完全または一貫性がないために、利用可能なデータがどの程度「不確実」または「不正確」であるかを指します。

Pig Latin のさまざまなデータ型を説明します。

回答: Pig Latin のデータ型には、アトミック データ型と複合データ型が含まれます。

アトミック データ型は、他のすべての言語で使用される基本的なデータ型です。それらには次のものが含まれます。

  • Int – このデータ型は、符号付き 32 ビット整数を定義します。例: 13
  • Long – Long は 64 ビット整数を定義します。例:10L
  • Float – 符号付き 32 ビット浮動小数点を定義します。例:2.5F
  • Double – 符号付き 64 ビット浮動小数点を定義します。例: 23.4
  • ブール値 – ブール値を定義します。次のものが含まれます: True/False
  • 日時 – 日時の値を定義します。例: 1980-01-01T00:00.00.000+00:00

複雑なデータ型には次のものがあります。

  • マップ – マップは、キーと値のペアのセットを指します。例: [‘色’#’黄色’, ‘数値’#3】
  • Bag – 一連のタプルのコレクションであり、「{}」記号を使用します。例: {(ヘンリー、32)、(キティ、47)}
  • タプル – タプルは、順序付けられたフィールドのセットを定義します。例:(33歳)

Apache Oozie および Apache ZooKeeper とは何ですか?

回答: Apache Oozie は、Hadoop ジョブのスケジューリングと単一の論理作業としてのバインドを担当する Hadoop スケジューラーです。

一方、Apache Zookeeper は、分散環境でさまざまなサービスと連携します。同期、グループ化、構成の保守、名前付けなどの単純なサービスを公開するだけで、開発者の時間を節約できます。 Apache Zookeeper は、キューイングとリーダー選出のための既製のサポートも提供します。

MapReduce 操作における Combiner、RecordReader、Partitioner の役割は何ですか?

回答: コンバイナーはミニ減速機のように機能します。マップ タスクからデータを受信して​​処理し、データの出力をリデューサー フェーズに渡します。

RecordHeader は、InputSplit と通信し、マッパーが適切に読み取れるようにデータをキーと値のペアに変換します。

パーティショナーは、データを要約するために必要な削減されたタスクの数を決定し、コンバイナーの出力がどのようにリデューサーに送信されるかを確認する責任があります。パーティショナは、中間マップ出力のキー分割も制御します。

Hadoop のさまざまなベンダー固有のディストリビューションについて言及します。

回答: Hadoop の機能を拡張するさまざまなベンダーには次のものがあります。

  • IBMオープンプラットフォーム。
  • Cloudera CDH Hadoop ディストリビューション
  • MapR Hadoop ディストリビューション
  • Amazon Elastic MapReduce
  • Hortonworks データ プラットフォーム(HDP)
  • ピボタルビッグデータスイート
  • データスタックエンタープライズ分析
  • Microsoft Azure の HDInsight – クラウドベースの Hadoop ディストリビューション。

HDFS がフォールト トレラントであるのはなぜですか?

回答: HDFS はさまざまな DataNode にデータを複製し、耐障害性を高めます。データを別のノードに保存すると、1 つのモードがクラッシュしたときに他のノードから取得できるようになります。

フェデレーションと高可用性を区別します。

回答: HDFS フェデレーションは、あるノードで別のノードがクラッシュしても継続的なデータ フローを可能にするフォールト トレランスを提供します。一方、高可用性を実現するには、1 台目と 2 台目のマシンでアクティブ NameNode とセカンダリ NameNode を個別に構成する 2 台の別個のマシンが必要になります。

フェデレーションでは無関係な NameNode を無制限に持つことができますが、高可用性では、継続的に動作するアクティブとスタンバイの 2 つの関連する NameNode のみを使用できます。

フェデレーション内の NameNode はメタデータ プールを共有し、各 NameNode には専用のプールがあります。ただし、高可用性では、アクティブなネームノードは一度に 1 つずつ実行されますが、スタンバイのネームノードはアイドル状態のままで、メタデータを時々更新するだけです。

ブロックのステータスとファイルシステムの健全性を確認するにはどうすればよいですか?

回答: HDFS ファイルシステムの健全性ステータスをチェックするには、root ユーザー レベルと個々のディレクトリの両方でhdfs fsck /コマンドを使用します。

HDFS fsck コマンドが使用されています:

 hdfs fsck / -files --blocks –locations> dfs-fsck.log

コマンドの説明:

  • -files: チェックしているファイルを印刷します。
  • –locations: チェック中にすべてのブロックの位置を出力します。

ブロックのステータスを確認するコマンド:

 hdfs fsck <path> -files -blocks
  • <path>: ここで渡されたパスからチェックを開始します。
  • – ブロック: チェック中にファイルのブロックを出力します。

rmadmin-refreshNodes コマンドと dfsadmin-refreshNodes コマンドはいつ使用しますか?

回答: これら 2 つのコマンドは、コミッショニング中またはノードのコミッショニングが完了したときにノード情報を更新するのに役立ちます。

dfsadmin-refreshNodesコマンドは、HDFS クライアントを実行し、NameNode のノード構成を更新します。一方rmadmin-refreshNodesコマンドは、ResourceManager の管理タスクを実行します。

チェックポイントとは何ですか?

回答: チェックポイントは、ファイル システムの最後の変更を最新の FSImage とマージする操作で、編集ログ ファイルが十分な大きさに保たれ、NameNode の起動プロセスが迅速化されます。チェックポイントはセカンダリ ネームノードで発生します。

大規模なデータセットを持つアプリケーションに HDFS を使用するのはなぜですか?

回答: HDFS は、分散ファイル システムを実装する DataNode および NameNode アーキテクチャを提供します。

これら 2 つのアーキテクチャは、拡張性の高い Hadoop クラスター上のデータへの高性能アクセスを提供します。その NameNode はファイル システムのメタデータを RAM に保存するため、メモリ量によって HDFS ファイル システム ファイルの数が制限されます。

「jps」コマンドは何をするのですか?

回答: Java 仮想マシン プロセス ステータス (JPS) コマンドは、NodeManager、DataNode、NameNode、ResourceManager などの特定の Hadoop デーモンが実行されているかどうかを確認します。このコマンドは、ホスト内の動作ノードを確認するためにルートから実行する必要があります。

Hadoop の「投機的実行」とは何ですか?

回答: これは、Hadoop のマスター ノードが、検出された遅いタスクを修正する代わりに、同じタスクの別のインスタンスを別のノードでバックアップ タスク (投機的タスク) として起動するプロセスです。投機的実行は、特に集中的なワークロード環境において、時間を大幅に節約します。

Hadoop が実行できる 3 つのモードに名前を付けます。

回答: Hadoop が実行される 3 つのプライマリ ノードには次のものがあります。

  • スタンドアロン ノードは、ローカル ファイル システムと単一の Java プロセスを使用して Hadoop サービスを実行するデフォルト モードです。
  • 擬似分散ノードは、単一の ode Hadoop デプロイメントを使用してすべての Hadoop サービスを実行します。
  • 完全分散ノードは、別のノードを使用して Hadoop マスター サービスとスレーブ サービスを実行します。

UDFとは何ですか?

回答: UDF (ユーザー定義関数) を使用すると、Impala クエリ中に列値を処理するために使用できるカスタム関数をコーディングできます。

DistCpとは何ですか?

回答: DistCp または分散コピーは、一言で言えば、大規模なデータのクラスタ間またはクラスタ内コピーに便利なツールです。 DistCp は、MapReduce を使用して、エラー処理、回復、レポートなどのタスクの中でも、大量のデータの分散コピーを効果的に実装します。

Hive のメタストアについて説明します。

回答: Hive メタストアは、Hive テーブルの Apache Hive メタデータを MySQL などのリレーショナル データベースに保存するサービスです。メタデータへのアクセスを許可するメタストア サービス API を提供します。

RDDを定義します。

回答: RDD は Resilient Distributed Datasets の略で、Spark のデータ構造であり、さまざまなクラスター ノードで計算を行うデータ要素の不変の分散コレクションです。

ネイティブ ライブラリを YARN ジョブに含めるにはどうすればよいですか?

回答: -Djava.library. pathコマンドの-Djava.library. pathオプションを使用するか、次の形式を使用して .bashrc ファイルにLD+LIBRARY_PATHを設定します。

 <property>
<name>mapreduce.map.env</name>
<value>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/my/libs</value>
</property>

HBaseの「WAL」について説明します。

回答: Write Ahead Log(WAL) は、HBase 内の MemStore データの変更をファイルベースのストレージに記録するリカバリ プロトコルです。 RegionalServer がクラッシュした場合、または MemStore をフラッシュする前に、WAL はこのデータを回復します。

YARN は Hadoop MapReduce に代わるものですか?

回答: いいえ、YARN は Hadoop MapReduce の代替品ではありません。代わりに、Hadoop 2.0 または MapReduce 2 と呼ばれる強力なテクノロジが MapReduce をサポートしています。

HIVE の ORDER BY と SORT BY の違いは何ですか?

回答: どちらのコマンドも Hive でソートされた方法でデータをフェッチしますが、 SORT BY使用した結果は部分的にしか順序付けられない可能性があります。

さらに、 SORT BYは行を並べ替えるリデューサーが必要です。最終出力に必要なこれらのリデューサーは複数である場合もあります。この場合、最終出力は部分的に順序付けされる可能性があります。

一方、 ORDER BY 、出力の合計順序に対して 1 つのリデューサーのみが必要です。 LIMITキーワードを使用して、合計ソート時間を短縮することもできます。

Spark と Hadoop の違いは何ですか?

回答: Hadoop と Spark は両方とも分散処理フレームワークですが、主な違いはその処理です。 Hadoop はバッチ処理に効率的ですが、Spark はリアルタイム データ処理に効率的です。

さらに、Hadoop は主に HDFS に対してファイルの読み取りと書き込みを行いますが、Spark は Resilient Distributed Dataset の概念を使用して RAM 内のデータを処理します。

レイテンシに基づくと、Hadoop はデータを処理する対話型モードを持たない高レイテンシのコンピューティング フレームワークであるのに対し、Spark はデータを対話型で処理する低レイテンシのコンピューティング フレームワークです。

SqoopとFlumeを比較してください。

回答: Sqoop と Flume は、さまざまなソースから収集したデータを収集し、そのデータを HDFS にロードする Hadoop ツールです。

  • Sqoop(SQL-to-Hadoop) は、Teradata、MySQL、Oracle などのデータベースから構造化データを抽出します。一方、Flume は、データベース ソースから非構造化データを抽出して HDFS にロードするのに役立ちます。
  • イベント駆動という点では、Flume はイベント駆動型ですが、Sqoop はイベント駆動型ではありません。
  • Sqoop は、コネクタが別のデータ ソースに接続する方法を認識しているコネクタ ベースのアーキテクチャを使用します。 Flume はエージェントベースのアーキテクチャを使用しており、記述されたコードはデータのフェッチを担当するエージェントになります。
  • Flume は分散型であるため、データを簡単に収集および集約できます。 Sqoop は、出力が複数のファイルになる並列データ転送に役立ちます。

ブルームマップファイルについて説明します。

回答: BloomMapFile は MapFile クラスを拡張したクラスであり、キーのメンバーシップ テストを迅速に行う動的ブルーム フィルターを使用します。

HiveQL と PigLatin の違いをリストします。

回答: HiveQL は SQL に似た宣言型言語ですが、PigLatin は高レベルの手続き型データ フロー言語です。

データクレンジングとは何ですか?

回答: データ クレンジングは、データセット内の不正なデータ、不完全なデータ、破損したデータ、重複したデータ、間違った形式のデータなど、特定されたデータ エラーを除去または修正する重要なプロセスです。

このプロセスは、データの品質を向上させ、組織内の効率的な意思決定に必要な、より正確で一貫性のある信頼性の高い情報を提供することを目的としています。

結論💃

現在、ビッグ データと Hadoop の求人が急増しているため、採用の可能性を高めたいと考えるかもしれません。この記事の Hadoop 面接の質問と回答は、今後の面接に合格するのに役立ちます。

次に、ビッグ データと Hadoop を学習するための優れたリソースをチェックしてください。

幸運を祈ります! 👍

「 30 以上の Hadoop 面接の質問と回答」についてわかりやすく解説!絶対に観るべきベスト2動画

【内定確定!?】面接官が思わず採用したくなる逆質問5選
マジで真似すれば受かる逆質問 #shorts