Spark: Freshers Flashcards
https://www.interviewbit.com/spark-interview-questions/
Apache Spark とは何ですか?
巨大なデータに対して高速に分散処理を行うオープンソースのフレームワークです。
https://atmarkit.itmedia.co.jp/ait/articles/1608/24/news014.html
Apache Spark の機能は何ですか? (12)
1) 高い処理速度: Apache Spark は、ディスクへの読み取り/書き込み操作を減らすことにより、非常に高いデータ処理速度の達成に役立ちます。速度は、メモリ内計算の実行時にはほぼ 100 倍、ディスク計算の実行時には 10 倍高速になります。
2) Dynamic Nature : Spark は、並列アプリケーションの簡単な開発に役立つ 80 の高レベル オペレーターを提供します。
3) インメモリ計算: DAG 実行エンジンによる Spark のインメモリ計算機能により、データ処理の速度が向上します。これはデータ キャッシュもサポートし、ディスクからデータをフェッチするのに必要な時間を短縮します。
4) 再利用性: Spark コードは、バッチ処理、データ ストリーミング、アドホック クエリの実行などに再利用できます。
5) フォールト トレランス: Spark は、RDD を使用したフォールト トレランスをサポートします。Spark RDD は、データ損失ゼロを保証するワーカー ノードの障害を処理するように設計された抽象化です。
6) ストリーム処理: Spark は、リアルタイムでのストリーム処理をサポートします。以前の MapReduce フレームワークの問題は、既存のデータしか処理できないことでした。
7) 遅延評価: Spark RDD を使用して実行される Spark 変換は遅延します。つまり、すぐには結果は生成されませんが、既存の RDD から新しい RDD が作成されます。この遅延評価により、システム効率が向上します。
8) 複数言語のサポート
9) Hadoop 統合: Spark は Hadoop YARN クラスター マネージャーもサポートしているため、柔軟性が高くなります。
10) グラフ並列実行用のSpark GraphX、Spark SQL、機械学習用ライブラリなどをサポートします。
11) コスト効率: Hadoop ではデータの処理とレプリケーションに大規模なストレージとデータセンターが必要であったため、Apache Spark は Hadoop と比較した場合、コスト効率に優れたソリューションであると考えられています。
12) 活発な開発者コミュニティ
RDD(Resilient Distribution Datasets )とは何ですか?
データセットのタイプ(2)
RDD は、クラスタ内の複数のノードに配置されたデータ要素の不変の集合体であり、変換その他の操作のための基礎的な API と並行して使用することが可能です。
1) 並列化されたコレクション: 並列実行を目的としています。
2) Hadoop データセット: これらは、HDFS またはその他のストレージ システム上のファイル レコード システムに対して操作を実行します。
https://www.databricks.com/jp/glossary/what-is-rdd
Spark のデプロイ モードのタイプを列挙して下さい。(2)
1) クライアント モード: Spark ジョブが送信先のマシン ノード上で Spark ドライバー コンポーネントが実行される場合: 低速で開発用
2) クラスター モード: Spark ジョブの送信元のマシン上で Spark ジョブ ドライバー コンポーネントが実行されない場合
DAG(Directed Acyclic Graph) は Apache Spark で何を指しますか?
要素(4)
一方向に流れるグラフであり、どの要素もそれ自体の子になることはできません。
1) ノード: データを保存する場所。
2) 有向エッジ: 一方向を指す矢印 (このデータ構造が異なる点)
3) 親のいない偉大な祖先ノード。(興味深い事実: ほとんどの祖先ツリーは実際には DAG であり、実際にはツリーではありません。ある時点でいとこ同士が結婚するためです。)
4) 葉: 子のないノード
Apache Spark Streaming のレシーバーとは何ですか?
タイプを列挙して下さい。(2)
さまざまなデータ ソースからデータを消費し、処理のために Spark にデータを移動するエンティティです。これらは、ラウンドロビン方式で動作するようにスケジュールされた長時間実行タスクの形式でストリーミング コンテキストを使用して作成されます。
1) 信頼できる受信者: ここで、受信者は、データの受信と Spark ストレージ スペースでのそのレプリケーションの成功後に、データ ソースに確認応答を送信します。
2) 信頼できない受信者: ここでは、データ ソースに送信される確認応答はありません。
repartition(再分割)とcoalesce(結合)の違いは何ですか?
次の3点について説明しなさい
1) データ パーティションの数の増減
2) データ パーティションを新規作成か再利用か
3) 速度
1) データ パーティションの数の増減
- repartition(再分割): 増減可能
- coalesce(結合): 減少のみ
2) データ パーティションを新規作成か再利用か
repartition(再分割): 再パーティション化では、新しいデータ パーティションが作成され、均等に分散されたデータの完全なシャッフルが実行されます。
coalesce(結合): Coalesce は、既存のパーティションを利用して、シャッフルされたデータの量を不均一に削減します。
3) 速度
repartition(再分割): 低速
coalesce(結合): 高速
Spark がサポートするデータ形式は何ですか?
paraquet、JSON、XML、CSV、RC、Avro、TSV など
Spark のShuffleとは何ですか?
あるRDDに対して操作を行う際にデータの再分散を行うことといえます。
https://attsun-1031.hatenablog.com/entry/2016/04/02/224148
Spark の YARN とは何ですか? (2)
1) クラスタ・マネージャ
2) 中央リソース管理プラットフォーム: クラスター全体でスケーラブルな操作のため
https://qiita.com/imaifactory/items/f35ef03bfa4f268b1b83