SlideShare a Scribd company logo
© 2018 NTT DATA Corporation
2018/09/20
株式会社NTTデータ 技術開発本部
猿田 浩輔
Apache Spark 2.3 and beyond - What's new? -
© 2018 NTT DATA Corporation 2
 猿田 浩輔
 株式会社NTTデータ 技術開発本部
 Apache Sparkコミッタ
 Hadoop/SparkなどOSS並列分散処理系のテクニカルサ
ポートに従事してきた
$ whoami
© 2018 NTT DATA Corporation 3
 オープンソースの並列分散処理系
 並列分散処理の面倒な部分は処理系が解決してくれる
 障害時のリカバリ
 タスクの分割やスケジューリング
 etc
What is Apache ?
大量のデータを たくさんのサーバを並べて
並列分散処理し、
現実的な時間(数分~数時間)で
目的の処理結果を得る
© 2018 NTT DATA Corporation 4
 処理対象のデータをRDD(Resilient Distributed Dataset)と
呼ばれる、耐障害性が考慮された分散コレクションに抽象化
する
 RDDに対して、リスト処理に類するオペレータを連続的に適
用することで複数ステップから構成されるデータ処理を表現
する
 RDDは「パーティション(部分コレクション)」に分割されている
 各パーティションを異なる計算機で処理することで、並列分
散処理を実現する
Sparkのデータ処理モデル
RDD RDD RDDRDD
フォーマット変換 グルーピング フィルター 集計入力
© 2018 NTT DATA Corporation 5
HDFS
 RDDに対する処理は、配列やリストなどのコレクションのよう
に記述できる
リスト処理を記述するように並列分散処理を記述できる
// 例
val rdd = sc.textFile(...) // HDFSなどのストレージから
//ファイルの内容をRDDにロード
rdd.filter(...).map(...).reduceByKey(...).saveAsText(...)
フィルタして 加工して 集計して 結果を保存
RDD RDD RDD
HDFS
filter map
RDD
reduceByKeytextFile saveAsText
© 2018 NTT DATA Corporation 6
充実したライブラリ / エコシステム
Spark Core
(Sparkのデータ処理エンジンや基本的なAPIなどを含む)
Spark Streaming
(ストリーム処理)
Spark SQL
(クエリ処理)
Structured
Streaming
(ストリーム処理)
GraphX
(グラフ処理)
MLlib / Spark ML
(機械学習)
SQL
© 2018 NTT DATA Corporation 7
 近年は、RDDを直接利用するのではなく、これをラップした
DataFrame / Datasetを利用するのが主流
 DataFrame / DatasetはSpark SQLのデータ構造で、テーブ
ル状のデータ構造
 機械学習 / ストリーム処理向けのライブラリも、DataFrame /
Dataset向けに設計されたものが整備されている
 Spark ML
 Structured Streaming
RDDからDataFrame / Datasetを中心とした処理系へ
© 2018 NTT DATA Corporation 8
 SQLやSQLに似た宣言的なAPIで、テーブルにクエリを発行する
ように処理を記述できる
 実行時にオプティマイザによる最適化が施される
 開発言語の違いによる性能差が出にくい
DataFrame / Datasetを利用するメリット
DataFrameで同様
の処理を記述
© 2018 NTT DATA Corporation 9
 Spark 2.3
 2018/9/20時点で最新のフィーチャーリリース
 大きめの新機能が10+
 1400+のチケットが解決された
 Spark 2.4
 次期フィーチャーリリース
 2018/9/20時点で2.4向けのブランチが切られている
 10月くらいにリリース?
 新しい取り組み - Project Hydrogen -
Spark 2.3, 2.4
© 2018 NTT DATA Corporation 10
Continuous Processing
© 2018 NTT DATA Corporation 11
 Apache Sparkの新しいストリーム処理系
 DataFrameをベースとする
 Spark 2.0で試験的に導入され、2.2でα版を卒業
 RDDベースのSpark Streamingには無かったセマンティクス
をサポート
 イベントタイムウィンドウ集約
 遅れて到着したデータのハンドリング
 End-to-End Exactly Once
• ※ ただし動作モードやシンクの種類による
Structured Streaming
© 2018 NTT DATA Corporation 12
 マイクロバッチベースの実行モード
 短いバッチ処理(マイクロバッチ)を短い間隔で実行することでストリーム処
理を実現
 マイクロバッチごとに、その時点で到着しているデータを処理する
 データの到着から処理完了までを100msオーダー以下に抑えることが難
しい
Micro-batch Processing
出展: https://databricks.com/blog/2018/03/20/low-latency-continuous-processing-mode-in-structured-streaming-in-apache-spark-2-3-0.html
© 2018 NTT DATA Corporation 13
 新たに導入されたストリーム処理実行モード
 各Executorにロングランニングタスクを一度スケジューリングした
後は、当該タスク内のイベントループでストリーム処理を行う
 データの到着から処理完了まで、数ミリ秒で実現可能になる
Continuous Processing
出展: https://databricks.com/blog/2018/03/20/low-latency-continuous-processing-mode-in-structured-streaming-in-apache-spark-2-3-0.html
© 2018 NTT DATA Corporation 14
 Spark 2.3の時点ではまだ制限が多い
 Experimental扱い
• デフォルトの実行モードはMicro-batch Processng
• プログラムでContinuous Processingに切り替え可能
 実行可能なオペレーションも限られている
• スカラ値 -> スカラ値のような射影
• 単純なフィルタ
• グルーピングを伴わない集約処理
 サポートしているSource / Sinkは事実上Kafkaのみ
• ※ほかにもあるにはあるが、テストや動作確認を意図したもの
 Spark 2.4+以降?
 安定化
 ジョインやグルーピングを伴う集約処理のサポート
開発ステータス
© 2018 NTT DATA Corporation 15
Kubernetesサポート
© 2018 NTT DATA Corporation 16
Spark on Kubernetes
Spark Core
(Sparkのデータ処理エンジンや基本的なAPIなどを含む)
Spark Streaming
(ストリーム処理ラ
イブラリ)
Spark SQL
(クエリでデータ処理を記述する
ためのライブラリ)
Structured
Streaming
(ストリーム処理ラ
イブラリ)
GraphX
(グラフ処理処理ラ
イブラリ)
MLlib / Spark ML
(機械学習ライブラリ)
YARN Standalone Mesos Kubernetes
New!
© 2018 NTT DATA Corporation 17
 Spark 2.3からはKubernetesをサポート(SPARK-18278)
 Kubernetes 1.6以上をサポート
 コンテナイメージはAlpine Linuxベース
 Kubernetes / コンテナのメリットを享受可能
 マルチテナントでの利用
 計算リソースの効率的な利用
 アプリケーションのポータビリティ
 開発環境と本番環境の差分を極小化する
Kubernetesサポート
© 2018 NTT DATA Corporation 18
アプリケーションデプロイ時の挙動
https://databricks.com/blog/2018/02/28/introducing-apache-spark-2-3.html
© 2018 NTT DATA Corporation 19
 Spark 2.3
 Experimental
 クラスタモードでのみ動作
 Java/Scalaで記述されたアプリケーションに限定
 アプリケーションが依存するライブラリは以下のように配置
• コンテナに事前に組み込む
• リモート(HTTPやHDFS)からダウンロード可能な場所に配置
 Spark 2.4(予定)
 PySpark対応(SPARK-23984)
 SparkR対応(SPARK-24433)
 クライアントモード(SPARK-23146)
 Spark 3.0以降?
 ダイナミックアロケーション対応(SPARK-24432)
 Kerberos認証サポート(SPARK-23257)
 ローカルに配置された依存ライブラリやファイルの利用
Kubernetesサポートのステータス
© 2018 NTT DATA Corporation 20
Vectorized UDF
© 2018 NTT DATA Corporation 21
 SparkのAPIのPythonバインディング
 DataFrameの導入などにより、これまでもパフォーマンスが改善さ
れてきた歴史がある
 DataFrameベースの処理では、Pythonで記述されたコードをもと
にオプティマイザがJVM上で実行可能なジョブを生成するため
PySpark
出展: https://databricks.com/blog/2015/04/24/recent-performance-improvements-in-apache-spark-sql-python-dataframes-and-more.html
© 2018 NTT DATA Corporation 22
 DataFrameベースの処理も、ユーザ定義関数(UDF)を用い
る場合はパフォーマンスを損なうことが多かった
 DataFrameベースの処理であってもPythonで書かれたUDF
はPythonのインタプリタで実行しなければならない(Pythonイ
ンタプリタの相対的な遅さ)
 レコードごとにPythonインタプリタ上のUDFを実行
• JVM上で動作するExecutorとPythonインタプリタ間の通信
に伴うシリアライズ/デシリアライズが遅い
• レコードごとのJVMとPythonインタプリタとの通信が非効率
UDFのパフォーマンスには課題が残っていた
© 2018 NTT DATA Corporation 23
 Pandasのデータ構造を受け取り、返すことが可能なUDFを定義で
きる仕組みを整備
 UDFの中でPandasが利用できるため、複数のデータ対して
同時に高速な処理が可能(Pandasのクリティカルな部分は
C/C++のコードベースで動作する)
 シリアライズにはApache Arrowを利用し効率化
 Arrowはカラムナインメモリフォーマット(同じ列のデータを効率
の良い物理配置でシリアライズできる)
 レコードを複数まとめてシリアライズ / 転送
Vectorized UDF (Pandas UDF)
© 2018 NTT DATA Corporation 24
 Spark 2.3
 Scalar UDF
• レコード単位で独立に可能な処理を並列に行いたい場合に利用
• 異なるベクトルの要素同士の演算など
• pd.Seriesを受け取り、pd.Seriesを返す
 Group Map UDF
• グループ内の個々のデータ残しつつ、グループ内のレコードすべ
てをまとめて扱う必要のある計算
• 偏差値計算など
• pd.DataFrameを受け取り、pd.DataFrameを返す
 Spark 2.4(予定)
 Grouped Agg UDF
• pd.Seriesを受け取り単一値を返す集約処理
• Window関数もサポート
サポートするUDFの種類
© 2018 NTT DATA Corporation 25
JVMからPythonインタプリタへのレコードの転送
A B
10 80
30 100
20 60
50 20
JVM
A B
10 80
30 100
A B
20 60
50 20
タスク1つが処理対象
とするレコード群
処理対象のカラムを複
数レコードごとにまとめ
てArrowでシリアライズ
A B
10 80
30 100
A B
20 60
50 20
Pythonインタプリタ
プロセス間転送
Scalar UDFの場合バッチサイズ(デフォルト10000レコード)ごとに、
Grouped Map UDF / Grouped Agg UDFの場合はグループごとにシリアライズ
© 2018 NTT DATA Corporation 26
Scalar UDFの例(ベクトル同士の足し算)
A B
20 60
50 20
・・・ ・・・
A+B
A B
10 80
30 100
pd.Series pd.Series
A+B
90
130
A+B
80
70
UDF(1回目の呼び出し) UDF(2回目の呼び出し)
A+B
 シリアライズされたバッチごとにpd.SeriesにデシリアライズしてUDFに渡す
 pd.Series内の要素を複数同時に演算
・・・
pd.Series
・・・ ・・・
pd.Series
UDF(n回目の呼び出し)
© 2018 NTT DATA Corporation 27
Group Map UDFの例(偏差値計算)
名前 科目 点数
A 数学 80
B 数学 75
名前 科目 点数
A 国語 90
B 国語 80
・・・
・・・
国語の偏差値を計算
UDF(1回目の呼び出し)
名前 科目 偏差
値
A 数学 70
B 数学 60
数学の偏差値を計算
UDF(2回目の呼び出し)
名前 科目 偏差
値
A 国語 68
B 国語 55
pd.DataFrame pd.DataFrame
 シリアライズされたグループごとにpd.DataFrameにデシリアライズしてUDFに渡す
 pd.DataFrame内の要素を複数同時に演算
・・・
pd.DataFrame
・・・
pd.DataFrame
・・・
UDF(n回目の呼び出し)
© 2018 NTT DATA Corporation 28
Grouped Agg UDFの例(平均値計算)
点数
80
75
点数
90
80
・・・
国語の平均点を計算
UDF(1回目の呼び出し)
平均点
77.5
UDF(2回目の呼び出し)
平均点
85
pd.Series pd.Series
数学の平均点を計算
 シリアライズされたグループごとにpd.SeriesにデシリアライズしてUDFに渡す
 UDF内ではpd.meanなどPandasの集約処理関数で効率的に計算
・・・
・・・
UDF(n回目の呼び出し)
pd.Series pd.Series
© 2018 NTT DATA Corporation 29
PythonインタプリタからJVMへの計算結果の返却
JVM
UDFの呼び出しごとの計算結果
UDFのでの計算結果ごとに
Arrowでシリアライズ
Pythonインタプリタ
A+B
90
130
A+B
80
70
A+B
90
130
A+B
80
70
プロセス間転送
Sparkの内部表現に
デシリアライズ
© 2018 NTT DATA Corporation 30
 従来のUDFと比較して、最大200倍以上の高速化を実現
Vectorized UDFの効果
出展: https://databricks.com/blog/2017/10/30/introducing-vectorized-udfs-for-pyspark.html
© 2018 NTT DATA Corporation 31
Project Hydrogen
© 2018 NTT DATA Corporation 32
 ビッグデータとAI(機械学習/DL)は昨今のデータ活用における大き
な要素
 これまでSparkはビッグデータだけでなく機械学習/DLの統一プ
ラットフォームとして活用されてきた
 Spark向けに設計されたDLフレームワーク
• Deep Learning Pipelines (Databricks)
• BigDL (Intel)
 既存のDLフレームワークのSparkインテグレーション
• TensorFlowOnSpark (Yahoo!)
• CaffeOnSpark (Yahoo!)
 ビッグデータとDLの融合をより進めるうえで足りないピースもある
 分散学習を可能にするスケジューリングの仕組み
 SparkとDLフレームワークとの間の効率的なデータ交換
 GPUなどのアクセラレータを搭載した計算機へのスケジューリング
ビッグデータとDLの統一プラットフォームとしてのSpark
© 2018 NTT DATA Corporation 33
Project Hydrogen
Barrier Execution Mode Optimized Data Exchange
Accelerator Aware
Scheduling
分散学習を可能にする
スケジューリングの仕組み
SparkとDLフレームワーク
との間の効率的なデータ交換
アクセラレータアウェアな
タスクスケジューリング
© 2018 NTT DATA Corporation 34
 Barrier Execution Mode
 Sparkの新しいタスクスケジューリングモード
 DLの分散学習におけるタスク間の通信など、タスク間で協調を
可能にする仕組みを提供する
Barrier Execution Mode
© 2018 NTT DATA Corporation 35
Barrier Execution Mode
タスク
タスク
タスク
• 個々のタスクは協調することなく個別
にスケジューリングされる
• あるタスクの失敗がほかのタスクに
影響しない
• パフォーマンスの面では有利
• 協調が必要なタスクを包括でスケジュー
リング
• タスクの失敗時には、協調するほかのタ
スクも再スケジューリング
• タスクが協調するための同期点(バリア)
をプログラムで制御可能
従来からのタスクスケジューリング
タスク
タスク
タスク
Barrier Execution Modeによるタスクスケジューリング
© 2018 NTT DATA Corporation 36
 RDD#barrierメソッドで、各タスク間で待ち合わせするタイミ
ングを制御可能
 barrierメソッドが適用されたタスクが、Barrier Execution
Modeでのスケジューリング対象となる
 具体的な通信処理ロジックなどはDLフレームワーク側やDL
アプリケーション開発者が実装する必要がある
 Barrier Execution Modeは協調を可能にする仕掛けを提供
するだけ
Barrier Execution Mode
rdd.barrier().mapPartitions() { iter =>
val context = BarrierTaskContext.get() // バリアタスクコンテキストを取得
<何か処理>
context.barrier() // ここでタスク間の待ち合わせ
© 2018 NTT DATA Corporation 37
Spark 2.4
 Barrier Execution Mode(基本的な部分)
Spark 3.0?
 Barrier Execution Mode(継続)
 Optimized Data Exchange
 Accelerator Aware Scheduling
Project Hydrogenステータス
© 2018 NTT DATA Corporation 38
その他のトピック
© 2018 NTT DATA Corporation 39
 2.3以降で追加された機能もろもろ(一部)
 Stream-Stream Join (SPARK-18791)
 Vectorized ORC reader (SPARK-16060)
 Image Support in Spark (SPARK-21866)
 Streaming ML
 Spark 3.0?
 Project Hydrogen
 Java9サポート
 Scala 2.12サポート
 Hadoop 3系サポート
その他のトピック
© 2018 NTT DATA Corporation
© 2018 NTT DATA Corporation 41
Ad

More Related Content

What's hot (20)

Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
NTT DATA Technology & Innovation
 
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
Amazon Web Services Japan
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
NTT DATA Technology & Innovation
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
NTT DATA Technology & Innovation
 
Apache Spark の紹介(前半:Sparkのキホン)
Apache Spark の紹介(前半:Sparkのキホン)Apache Spark の紹介(前半:Sparkのキホン)
Apache Spark の紹介(前半:Sparkのキホン)
NTT DATA OSS Professional Services
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
オラクルエンジニア通信
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
NTT DATA Technology & Innovation
 
データセンターネットワークの構成について
データセンターネットワークの構成についてデータセンターネットワークの構成について
データセンターネットワークの構成について
MicroAd, Inc.(Engineer)
 
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Takeshi Mikami
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
 
Hadoop入門
Hadoop入門Hadoop入門
Hadoop入門
Preferred Networks
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
Kosuke Kida
 
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Cloudera Japan
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
Ken SASAKI
 
Oracle Cloud Infrastructure Streaming Service 技術詳説
Oracle Cloud Infrastructure Streaming Service 技術詳説Oracle Cloud Infrastructure Streaming Service 技術詳説
Oracle Cloud Infrastructure Streaming Service 技術詳説
オラクルエンジニア通信
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
Tetsutaro Watanabe
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
NTT DATA Technology & Innovation
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
NTT DATA Technology & Innovation
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
NTT DATA Technology & Innovation
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
NTT DATA Technology & Innovation
 
データセンターネットワークの構成について
データセンターネットワークの構成についてデータセンターネットワークの構成について
データセンターネットワークの構成について
MicroAd, Inc.(Engineer)
 
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Takeshi Mikami
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
Kosuke Kida
 
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Cloudera Japan
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
Ken SASAKI
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
Tetsutaro Watanabe
 

Similar to Apache spark 2.3 and beyond (20)

大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
NTT DATA Technology & Innovation
 
Apache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATAApache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATA
NTT DATA OSS Professional Services
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
YusukeKuramata
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
NTT DATA OSS Professional Services
 
FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化
Kazunori Sato
 
[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data Platform[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data Platform
Naoki (Neo) SATO
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
NTT DATA OSS Professional Services
 
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
Insight Technology, Inc.
 
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Treasure Data, Inc.
 
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fallビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
YusukeKuramata
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw
Kohei KaiGai
 
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
Kazuki Taniguchi
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
Kohei KaiGai
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
Koichiro Sasaki
 
Beginner must-see! A future that can be opened by learning Hadoop
Beginner must-see! A future that can be opened by learning HadoopBeginner must-see! A future that can be opened by learning Hadoop
Beginner must-see! A future that can be opened by learning Hadoop
DataWorks Summit
 
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
Insight Technology, Inc.
 
オープンソースのビッグデータ・IoT向け スケールアウト型データベースGridDBとPython連携 〜GridDBとPythonと私〜
オープンソースのビッグデータ・IoT向け スケールアウト型データベースGridDBとPython連携 〜GridDBとPythonと私〜オープンソースのビッグデータ・IoT向け スケールアウト型データベースGridDBとPython連携 〜GridDBとPythonと私〜
オープンソースのビッグデータ・IoT向け スケールアウト型データベースGridDBとPython連携 〜GridDBとPythonと私〜
griddb
 
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #520160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5
Koichiro Sasaki
 
[db analytics showcase Sapporo 2018] B25 Hadoop上で動く世界最速のAnalytic DBをSparkと一緒に...
[db analytics showcase Sapporo 2018] B25 Hadoop上で動く世界最速のAnalytic DBをSparkと一緒に...[db analytics showcase Sapporo 2018] B25 Hadoop上で動く世界最速のAnalytic DBをSparkと一緒に...
[db analytics showcase Sapporo 2018] B25 Hadoop上で動く世界最速のAnalytic DBをSparkと一緒に...
Insight Technology, Inc.
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
Recruit Technologies
 
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
NTT DATA Technology & Innovation
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
YusukeKuramata
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
NTT DATA OSS Professional Services
 
FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化
Kazunori Sato
 
[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data Platform[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data Platform
Naoki (Neo) SATO
 
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
Insight Technology, Inc.
 
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Treasure Data, Inc.
 
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fallビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
YusukeKuramata
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw
Kohei KaiGai
 
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
Kazuki Taniguchi
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
Kohei KaiGai
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
Koichiro Sasaki
 
Beginner must-see! A future that can be opened by learning Hadoop
Beginner must-see! A future that can be opened by learning HadoopBeginner must-see! A future that can be opened by learning Hadoop
Beginner must-see! A future that can be opened by learning Hadoop
DataWorks Summit
 
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
[db tech showcase Tokyo 2016] B31: Spark Summit 2016@SFに参加してきたので最新事例などを紹介しつつデ...
Insight Technology, Inc.
 
オープンソースのビッグデータ・IoT向け スケールアウト型データベースGridDBとPython連携 〜GridDBとPythonと私〜
オープンソースのビッグデータ・IoT向け スケールアウト型データベースGridDBとPython連携 〜GridDBとPythonと私〜オープンソースのビッグデータ・IoT向け スケールアウト型データベースGridDBとPython連携 〜GridDBとPythonと私〜
オープンソースのビッグデータ・IoT向け スケールアウト型データベースGridDBとPython連携 〜GridDBとPythonと私〜
griddb
 
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #520160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5
Koichiro Sasaki
 
[db analytics showcase Sapporo 2018] B25 Hadoop上で動く世界最速のAnalytic DBをSparkと一緒に...
[db analytics showcase Sapporo 2018] B25 Hadoop上で動く世界最速のAnalytic DBをSparkと一緒に...[db analytics showcase Sapporo 2018] B25 Hadoop上で動く世界最速のAnalytic DBをSparkと一緒に...
[db analytics showcase Sapporo 2018] B25 Hadoop上で動く世界最速のAnalytic DBをSparkと一緒に...
Insight Technology, Inc.
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
Recruit Technologies
 
Ad

More from NTT DATA Technology & Innovation (20)

2025年現在のNewSQL (最強DB講義 #36 発表資料)
2025年現在のNewSQL (最強DB講義 #36 発表資料)2025年現在のNewSQL (最強DB講義 #36 発表資料)
2025年現在のNewSQL (最強DB講義 #36 発表資料)
NTT DATA Technology & Innovation
 
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
NTT DATA Technology & Innovation
 
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
NTT DATA Technology & Innovation
 
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
NTT DATA Technology & Innovation
 
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
NTT DATA Technology & Innovation
 
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
NTT DATA Technology & Innovation
 
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
 
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
NTT DATA Technology & Innovation
 
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
アウトプット100回!YOWフレームワークで実践するふりかえりとその効果 (XP祭り2024 登壇資料)
アウトプット100回!YOWフレームワークで実践するふりかえりとその効果 (XP祭り2024 登壇資料)アウトプット100回!YOWフレームワークで実践するふりかえりとその効果 (XP祭り2024 登壇資料)
アウトプット100回!YOWフレームワークで実践するふりかえりとその効果 (XP祭り2024 登壇資料)
NTT DATA Technology & Innovation
 
GSF Global Summit 2024 (Green Software Foundation Global Summit 2024 Tokyo 講演資料)
GSF Global Summit 2024 (Green Software Foundation Global Summit 2024 Tokyo 講演資料)GSF Global Summit 2024 (Green Software Foundation Global Summit 2024 Tokyo 講演資料)
GSF Global Summit 2024 (Green Software Foundation Global Summit 2024 Tokyo 講演資料)
NTT DATA Technology & Innovation
 
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
NTT DATA Technology & Innovation
 
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
NTT DATA Technology & Innovation
 
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
NTT DATA Technology & Innovation
 
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
NTT DATA Technology & Innovation
 
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
NTT DATA Technology & Innovation
 
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
 
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
NTT DATA Technology & Innovation
 
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
アウトプット100回!YOWフレームワークで実践するふりかえりとその効果 (XP祭り2024 登壇資料)
アウトプット100回!YOWフレームワークで実践するふりかえりとその効果 (XP祭り2024 登壇資料)アウトプット100回!YOWフレームワークで実践するふりかえりとその効果 (XP祭り2024 登壇資料)
アウトプット100回!YOWフレームワークで実践するふりかえりとその効果 (XP祭り2024 登壇資料)
NTT DATA Technology & Innovation
 
GSF Global Summit 2024 (Green Software Foundation Global Summit 2024 Tokyo 講演資料)
GSF Global Summit 2024 (Green Software Foundation Global Summit 2024 Tokyo 講演資料)GSF Global Summit 2024 (Green Software Foundation Global Summit 2024 Tokyo 講演資料)
GSF Global Summit 2024 (Green Software Foundation Global Summit 2024 Tokyo 講演資料)
NTT DATA Technology & Innovation
 
Ad

Apache spark 2.3 and beyond

  • 1. © 2018 NTT DATA Corporation 2018/09/20 株式会社NTTデータ 技術開発本部 猿田 浩輔 Apache Spark 2.3 and beyond - What's new? -
  • 2. © 2018 NTT DATA Corporation 2  猿田 浩輔  株式会社NTTデータ 技術開発本部  Apache Sparkコミッタ  Hadoop/SparkなどOSS並列分散処理系のテクニカルサ ポートに従事してきた $ whoami
  • 3. © 2018 NTT DATA Corporation 3  オープンソースの並列分散処理系  並列分散処理の面倒な部分は処理系が解決してくれる  障害時のリカバリ  タスクの分割やスケジューリング  etc What is Apache ? 大量のデータを たくさんのサーバを並べて 並列分散処理し、 現実的な時間(数分~数時間)で 目的の処理結果を得る
  • 4. © 2018 NTT DATA Corporation 4  処理対象のデータをRDD(Resilient Distributed Dataset)と 呼ばれる、耐障害性が考慮された分散コレクションに抽象化 する  RDDに対して、リスト処理に類するオペレータを連続的に適 用することで複数ステップから構成されるデータ処理を表現 する  RDDは「パーティション(部分コレクション)」に分割されている  各パーティションを異なる計算機で処理することで、並列分 散処理を実現する Sparkのデータ処理モデル RDD RDD RDDRDD フォーマット変換 グルーピング フィルター 集計入力
  • 5. © 2018 NTT DATA Corporation 5 HDFS  RDDに対する処理は、配列やリストなどのコレクションのよう に記述できる リスト処理を記述するように並列分散処理を記述できる // 例 val rdd = sc.textFile(...) // HDFSなどのストレージから //ファイルの内容をRDDにロード rdd.filter(...).map(...).reduceByKey(...).saveAsText(...) フィルタして 加工して 集計して 結果を保存 RDD RDD RDD HDFS filter map RDD reduceByKeytextFile saveAsText
  • 6. © 2018 NTT DATA Corporation 6 充実したライブラリ / エコシステム Spark Core (Sparkのデータ処理エンジンや基本的なAPIなどを含む) Spark Streaming (ストリーム処理) Spark SQL (クエリ処理) Structured Streaming (ストリーム処理) GraphX (グラフ処理) MLlib / Spark ML (機械学習) SQL
  • 7. © 2018 NTT DATA Corporation 7  近年は、RDDを直接利用するのではなく、これをラップした DataFrame / Datasetを利用するのが主流  DataFrame / DatasetはSpark SQLのデータ構造で、テーブ ル状のデータ構造  機械学習 / ストリーム処理向けのライブラリも、DataFrame / Dataset向けに設計されたものが整備されている  Spark ML  Structured Streaming RDDからDataFrame / Datasetを中心とした処理系へ
  • 8. © 2018 NTT DATA Corporation 8  SQLやSQLに似た宣言的なAPIで、テーブルにクエリを発行する ように処理を記述できる  実行時にオプティマイザによる最適化が施される  開発言語の違いによる性能差が出にくい DataFrame / Datasetを利用するメリット DataFrameで同様 の処理を記述
  • 9. © 2018 NTT DATA Corporation 9  Spark 2.3  2018/9/20時点で最新のフィーチャーリリース  大きめの新機能が10+  1400+のチケットが解決された  Spark 2.4  次期フィーチャーリリース  2018/9/20時点で2.4向けのブランチが切られている  10月くらいにリリース?  新しい取り組み - Project Hydrogen - Spark 2.3, 2.4
  • 10. © 2018 NTT DATA Corporation 10 Continuous Processing
  • 11. © 2018 NTT DATA Corporation 11  Apache Sparkの新しいストリーム処理系  DataFrameをベースとする  Spark 2.0で試験的に導入され、2.2でα版を卒業  RDDベースのSpark Streamingには無かったセマンティクス をサポート  イベントタイムウィンドウ集約  遅れて到着したデータのハンドリング  End-to-End Exactly Once • ※ ただし動作モードやシンクの種類による Structured Streaming
  • 12. © 2018 NTT DATA Corporation 12  マイクロバッチベースの実行モード  短いバッチ処理(マイクロバッチ)を短い間隔で実行することでストリーム処 理を実現  マイクロバッチごとに、その時点で到着しているデータを処理する  データの到着から処理完了までを100msオーダー以下に抑えることが難 しい Micro-batch Processing 出展: https://databricks.com/blog/2018/03/20/low-latency-continuous-processing-mode-in-structured-streaming-in-apache-spark-2-3-0.html
  • 13. © 2018 NTT DATA Corporation 13  新たに導入されたストリーム処理実行モード  各Executorにロングランニングタスクを一度スケジューリングした 後は、当該タスク内のイベントループでストリーム処理を行う  データの到着から処理完了まで、数ミリ秒で実現可能になる Continuous Processing 出展: https://databricks.com/blog/2018/03/20/low-latency-continuous-processing-mode-in-structured-streaming-in-apache-spark-2-3-0.html
  • 14. © 2018 NTT DATA Corporation 14  Spark 2.3の時点ではまだ制限が多い  Experimental扱い • デフォルトの実行モードはMicro-batch Processng • プログラムでContinuous Processingに切り替え可能  実行可能なオペレーションも限られている • スカラ値 -> スカラ値のような射影 • 単純なフィルタ • グルーピングを伴わない集約処理  サポートしているSource / Sinkは事実上Kafkaのみ • ※ほかにもあるにはあるが、テストや動作確認を意図したもの  Spark 2.4+以降?  安定化  ジョインやグルーピングを伴う集約処理のサポート 開発ステータス
  • 15. © 2018 NTT DATA Corporation 15 Kubernetesサポート
  • 16. © 2018 NTT DATA Corporation 16 Spark on Kubernetes Spark Core (Sparkのデータ処理エンジンや基本的なAPIなどを含む) Spark Streaming (ストリーム処理ラ イブラリ) Spark SQL (クエリでデータ処理を記述する ためのライブラリ) Structured Streaming (ストリーム処理ラ イブラリ) GraphX (グラフ処理処理ラ イブラリ) MLlib / Spark ML (機械学習ライブラリ) YARN Standalone Mesos Kubernetes New!
  • 17. © 2018 NTT DATA Corporation 17  Spark 2.3からはKubernetesをサポート(SPARK-18278)  Kubernetes 1.6以上をサポート  コンテナイメージはAlpine Linuxベース  Kubernetes / コンテナのメリットを享受可能  マルチテナントでの利用  計算リソースの効率的な利用  アプリケーションのポータビリティ  開発環境と本番環境の差分を極小化する Kubernetesサポート
  • 18. © 2018 NTT DATA Corporation 18 アプリケーションデプロイ時の挙動 https://databricks.com/blog/2018/02/28/introducing-apache-spark-2-3.html
  • 19. © 2018 NTT DATA Corporation 19  Spark 2.3  Experimental  クラスタモードでのみ動作  Java/Scalaで記述されたアプリケーションに限定  アプリケーションが依存するライブラリは以下のように配置 • コンテナに事前に組み込む • リモート(HTTPやHDFS)からダウンロード可能な場所に配置  Spark 2.4(予定)  PySpark対応(SPARK-23984)  SparkR対応(SPARK-24433)  クライアントモード(SPARK-23146)  Spark 3.0以降?  ダイナミックアロケーション対応(SPARK-24432)  Kerberos認証サポート(SPARK-23257)  ローカルに配置された依存ライブラリやファイルの利用 Kubernetesサポートのステータス
  • 20. © 2018 NTT DATA Corporation 20 Vectorized UDF
  • 21. © 2018 NTT DATA Corporation 21  SparkのAPIのPythonバインディング  DataFrameの導入などにより、これまでもパフォーマンスが改善さ れてきた歴史がある  DataFrameベースの処理では、Pythonで記述されたコードをもと にオプティマイザがJVM上で実行可能なジョブを生成するため PySpark 出展: https://databricks.com/blog/2015/04/24/recent-performance-improvements-in-apache-spark-sql-python-dataframes-and-more.html
  • 22. © 2018 NTT DATA Corporation 22  DataFrameベースの処理も、ユーザ定義関数(UDF)を用い る場合はパフォーマンスを損なうことが多かった  DataFrameベースの処理であってもPythonで書かれたUDF はPythonのインタプリタで実行しなければならない(Pythonイ ンタプリタの相対的な遅さ)  レコードごとにPythonインタプリタ上のUDFを実行 • JVM上で動作するExecutorとPythonインタプリタ間の通信 に伴うシリアライズ/デシリアライズが遅い • レコードごとのJVMとPythonインタプリタとの通信が非効率 UDFのパフォーマンスには課題が残っていた
  • 23. © 2018 NTT DATA Corporation 23  Pandasのデータ構造を受け取り、返すことが可能なUDFを定義で きる仕組みを整備  UDFの中でPandasが利用できるため、複数のデータ対して 同時に高速な処理が可能(Pandasのクリティカルな部分は C/C++のコードベースで動作する)  シリアライズにはApache Arrowを利用し効率化  Arrowはカラムナインメモリフォーマット(同じ列のデータを効率 の良い物理配置でシリアライズできる)  レコードを複数まとめてシリアライズ / 転送 Vectorized UDF (Pandas UDF)
  • 24. © 2018 NTT DATA Corporation 24  Spark 2.3  Scalar UDF • レコード単位で独立に可能な処理を並列に行いたい場合に利用 • 異なるベクトルの要素同士の演算など • pd.Seriesを受け取り、pd.Seriesを返す  Group Map UDF • グループ内の個々のデータ残しつつ、グループ内のレコードすべ てをまとめて扱う必要のある計算 • 偏差値計算など • pd.DataFrameを受け取り、pd.DataFrameを返す  Spark 2.4(予定)  Grouped Agg UDF • pd.Seriesを受け取り単一値を返す集約処理 • Window関数もサポート サポートするUDFの種類
  • 25. © 2018 NTT DATA Corporation 25 JVMからPythonインタプリタへのレコードの転送 A B 10 80 30 100 20 60 50 20 JVM A B 10 80 30 100 A B 20 60 50 20 タスク1つが処理対象 とするレコード群 処理対象のカラムを複 数レコードごとにまとめ てArrowでシリアライズ A B 10 80 30 100 A B 20 60 50 20 Pythonインタプリタ プロセス間転送 Scalar UDFの場合バッチサイズ(デフォルト10000レコード)ごとに、 Grouped Map UDF / Grouped Agg UDFの場合はグループごとにシリアライズ
  • 26. © 2018 NTT DATA Corporation 26 Scalar UDFの例(ベクトル同士の足し算) A B 20 60 50 20 ・・・ ・・・ A+B A B 10 80 30 100 pd.Series pd.Series A+B 90 130 A+B 80 70 UDF(1回目の呼び出し) UDF(2回目の呼び出し) A+B  シリアライズされたバッチごとにpd.SeriesにデシリアライズしてUDFに渡す  pd.Series内の要素を複数同時に演算 ・・・ pd.Series ・・・ ・・・ pd.Series UDF(n回目の呼び出し)
  • 27. © 2018 NTT DATA Corporation 27 Group Map UDFの例(偏差値計算) 名前 科目 点数 A 数学 80 B 数学 75 名前 科目 点数 A 国語 90 B 国語 80 ・・・ ・・・ 国語の偏差値を計算 UDF(1回目の呼び出し) 名前 科目 偏差 値 A 数学 70 B 数学 60 数学の偏差値を計算 UDF(2回目の呼び出し) 名前 科目 偏差 値 A 国語 68 B 国語 55 pd.DataFrame pd.DataFrame  シリアライズされたグループごとにpd.DataFrameにデシリアライズしてUDFに渡す  pd.DataFrame内の要素を複数同時に演算 ・・・ pd.DataFrame ・・・ pd.DataFrame ・・・ UDF(n回目の呼び出し)
  • 28. © 2018 NTT DATA Corporation 28 Grouped Agg UDFの例(平均値計算) 点数 80 75 点数 90 80 ・・・ 国語の平均点を計算 UDF(1回目の呼び出し) 平均点 77.5 UDF(2回目の呼び出し) 平均点 85 pd.Series pd.Series 数学の平均点を計算  シリアライズされたグループごとにpd.SeriesにデシリアライズしてUDFに渡す  UDF内ではpd.meanなどPandasの集約処理関数で効率的に計算 ・・・ ・・・ UDF(n回目の呼び出し) pd.Series pd.Series
  • 29. © 2018 NTT DATA Corporation 29 PythonインタプリタからJVMへの計算結果の返却 JVM UDFの呼び出しごとの計算結果 UDFのでの計算結果ごとに Arrowでシリアライズ Pythonインタプリタ A+B 90 130 A+B 80 70 A+B 90 130 A+B 80 70 プロセス間転送 Sparkの内部表現に デシリアライズ
  • 30. © 2018 NTT DATA Corporation 30  従来のUDFと比較して、最大200倍以上の高速化を実現 Vectorized UDFの効果 出展: https://databricks.com/blog/2017/10/30/introducing-vectorized-udfs-for-pyspark.html
  • 31. © 2018 NTT DATA Corporation 31 Project Hydrogen
  • 32. © 2018 NTT DATA Corporation 32  ビッグデータとAI(機械学習/DL)は昨今のデータ活用における大き な要素  これまでSparkはビッグデータだけでなく機械学習/DLの統一プ ラットフォームとして活用されてきた  Spark向けに設計されたDLフレームワーク • Deep Learning Pipelines (Databricks) • BigDL (Intel)  既存のDLフレームワークのSparkインテグレーション • TensorFlowOnSpark (Yahoo!) • CaffeOnSpark (Yahoo!)  ビッグデータとDLの融合をより進めるうえで足りないピースもある  分散学習を可能にするスケジューリングの仕組み  SparkとDLフレームワークとの間の効率的なデータ交換  GPUなどのアクセラレータを搭載した計算機へのスケジューリング ビッグデータとDLの統一プラットフォームとしてのSpark
  • 33. © 2018 NTT DATA Corporation 33 Project Hydrogen Barrier Execution Mode Optimized Data Exchange Accelerator Aware Scheduling 分散学習を可能にする スケジューリングの仕組み SparkとDLフレームワーク との間の効率的なデータ交換 アクセラレータアウェアな タスクスケジューリング
  • 34. © 2018 NTT DATA Corporation 34  Barrier Execution Mode  Sparkの新しいタスクスケジューリングモード  DLの分散学習におけるタスク間の通信など、タスク間で協調を 可能にする仕組みを提供する Barrier Execution Mode
  • 35. © 2018 NTT DATA Corporation 35 Barrier Execution Mode タスク タスク タスク • 個々のタスクは協調することなく個別 にスケジューリングされる • あるタスクの失敗がほかのタスクに 影響しない • パフォーマンスの面では有利 • 協調が必要なタスクを包括でスケジュー リング • タスクの失敗時には、協調するほかのタ スクも再スケジューリング • タスクが協調するための同期点(バリア) をプログラムで制御可能 従来からのタスクスケジューリング タスク タスク タスク Barrier Execution Modeによるタスクスケジューリング
  • 36. © 2018 NTT DATA Corporation 36  RDD#barrierメソッドで、各タスク間で待ち合わせするタイミ ングを制御可能  barrierメソッドが適用されたタスクが、Barrier Execution Modeでのスケジューリング対象となる  具体的な通信処理ロジックなどはDLフレームワーク側やDL アプリケーション開発者が実装する必要がある  Barrier Execution Modeは協調を可能にする仕掛けを提供 するだけ Barrier Execution Mode rdd.barrier().mapPartitions() { iter => val context = BarrierTaskContext.get() // バリアタスクコンテキストを取得 <何か処理> context.barrier() // ここでタスク間の待ち合わせ
  • 37. © 2018 NTT DATA Corporation 37 Spark 2.4  Barrier Execution Mode(基本的な部分) Spark 3.0?  Barrier Execution Mode(継続)  Optimized Data Exchange  Accelerator Aware Scheduling Project Hydrogenステータス
  • 38. © 2018 NTT DATA Corporation 38 その他のトピック
  • 39. © 2018 NTT DATA Corporation 39  2.3以降で追加された機能もろもろ(一部)  Stream-Stream Join (SPARK-18791)  Vectorized ORC reader (SPARK-16060)  Image Support in Spark (SPARK-21866)  Streaming ML  Spark 3.0?  Project Hydrogen  Java9サポート  Scala 2.12サポート  Hadoop 3系サポート その他のトピック
  • 40. © 2018 NTT DATA Corporation
  • 41. © 2018 NTT DATA Corporation 41