Spark: Definitions: Terms Flashcards
https://qiita.com/Hiroki11x/items/4f5129094da4c91955bc
単一のプールを用いて、キューのように扱う。プールに登録されたタスクセットを順にスケジューリングする
FIFO
複数のプールを用いて、各プールから公平にアスクセットを取り出しスケジューリングする
FAIR
クライアントジョブのキックを担当
クライアント, マスタ
計算資源の提供・管理を担当
ワーカ
ユーザがRDDの変換を記述したプログラム
ドライバ
ワーカー上で動作し、実際の計算を担当
エグゼキューター
Sparkの処理内でアクション系のメソッドを実行するとジョブが作成される。SparkではRDDと呼ばれる抽象データセットの変換を繰り返して目的の結果を得る。この一連の処理をジョブという
ジョブ
ジョブはデータのシャッフルが必要な場合に複数のステージに分割される
ステージ
ジョブをエグゼキューターが実行可能な粒度に分割した処理単位。ステージは複数のタスクを持ち、ワーカーに対して送られる並列実行可能な処理をタスクという
タスク
ジョブをタスクに分割したり、タスクのエグゼキュータへの割り当てを担当
スケジューラ
耐障害性分散データセットで、繰り返し利用するデータについてはメモリ上に保持することが可能
RDD(Resilient Distributed Datasets)
1) イミュータブルで分割されたオブジェクトのコレクション(フォールトトレラント性を実現するためRDDでは「得たいデータが失われていたら前のデータから再生成する」というアプローチを取っているため、それぞれイミュータブルである必要がある)
2) 読み取り専用
3) 並列処理(map,filter,groupBy,join)をストレージ上のデータに適応した結果を生成
4) 再利用するためにメモリ上にキャッシュされる
5) 遅延評価される(アクション系のメソッド(*2)が呼ばれるまで」実際の処理は行われない)
RDDの性質(5)
それぞれのRDDの和集合の重複を許したすべての要素からなるRDDを生成
union()
重複を許さずそれぞれのRDDの積集合の要素からなるRDDを生成
intersection()
subtract()
片方の要素からもう一方の要素を除いた要素からなるRDDを生成
一つのRDD内部での重複要素を一つにまとめた要素からなるRDDを生成
distinct()
要素の個数を返す
count()
複数の要素を引数の数だけ集めてくる
take(int num)
RDD全体を取り出す(小さいサイズ場合のみ)
collect()
分散ストレージシステムに書き出す
saveAsTestFile()
分散ストレージシステムに書き出す
saveAsSequenceFile()
結合処理を並列に行う
reduce(func)
reduce()と見た目は同じ、中身は若干違うっぽく、単位元的な値(その操作を適応しても変わらない)を受け取る
fold(zero)(func)
reduce()と同じだが、返す型が扱うRDDの要素と違う場合に使う
aggregate(func)
RDDからn個の要素を返す
take(n)
RDDの先頭からn個までの要素を返す
top(n)
指定された順序でRDDからn個要素を返す
takeOrdered(n)(ordering)
RDDからランダムにn個要素を返す
takeSample(withReplacement,n,seed)
RDDすべての要素を返す
collect()
RDDの要素数を返す
count()
RDDの各要素の出現回数を返す
countByValue()
RDD中の各要素に指定した関数を適用
foreach(func)