[フレーム]
16,283 views

メキメキ開発の進む Apache Sparkのいまとこれから (Spark Casual Talk #1 発表資料)

Spark Casual Talk #1 (2015年06月23日)発表資料 『メキメキ開発の進む Apache Sparkのいまとこれから』 NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス 猿田 浩輔(Apache Sparkコミッタ)、土橋 昌 (注記)イベントページ http://connpass.com/event/15575/

Related topics:

Embed presentation

2 / 28
2Copyright © 2015 NTT DATA Corporation 自己紹介 猿 田 浩 輔 ソフトウェア開発。システムインフラ技 術者。 6年ほどHadoopに関する業務に従事。 近年はSpark関連の取り組みが多い。 2015年6月Sparkコミッタに就任 出版物に「Haodop徹底入門(初版、 第二版)」-翔泳社」、「HADOOP HACKS-オライリージャパン」 土 橋 昌 システムインフラ技術者。データ処理。技術 コンサルティング。 7年ほどHadoop関連の業務に従事。近年 はStorm、Sparkなどの分散処理を中心とし てシステム開発に携わる。 携わったHadoopサーバ台数は数千台。結 果、システム運用にも興味。 結果的に、トラブルシュート、ITインフラの相 談、システム運用、データ処理など広く従事。 講演に「Spark Summit」、「Haodop Conference Japan」、「Hadoopソースコード リーディング」 所属: NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス お仕事: OSSを使ったR&D、システム開発、テクニカルサポート
5 / 28
5Copyright © 2015 NTT DATA Corporation  従来のHadoop MapReduceが苦手としていた、スループットとレイテンシの両 立が必要な問題領域にアプローチするために開発されたOSSのインメモリ分 散処理基盤  UC Barkeleyに所属していたMatei Zaharia(現Databricks CTO)がScalaで 開発した  Hadoop同様、大量のコモディティサーバを束ねて大規模なデータに対して分 散処理を行う  RDDと呼ばれる部分故障への耐性を考慮した分散コレクションに対し、mapや filter、reduceなどの典型的なデータ変換操作を繰り返して目的の結果を得る 処理モデル Apache 最新安定バージョンは1.4.0 RDD RDD RDDRDD ユーザ定義の 処理の流れ フォーマット変換 グルーピング フィルター 集計入力
10 / 28
10Copyright © 2015 NTT DATA Corporation  従来SchemaRDDと呼ばれていたテーブル状のデータ構造がDataFrameと名前を変え た  DataFrameに対してSQLを発行できるだけではなく、DataFrame APIと呼ばれるデータ 処理用のAPIが提供されている  データに名前と型を定義することができるため、構造化されたデータの処理が簡潔に 記述できる  DataFrameはRやPandasとなじみが深いデータ構造なので、分析用途などで利用しや すくなった。 DataFrame API(Spark SQL) RDDをSpark Core APIで操 作するとごちゃごちゃした処 理も、DataFrame APIなら簡 潔に記述でき、可読性やメ ンテナンス性が向上する http://cdn.oreillystatic.com/en/assets/1/event/126/Apache%20Spark_%20What_s%20new_%20what_s%20coming%20Presentation.pdf
20 / 28
21Copyright © 2015 NTT DATA Corporation 今から使うとしたら、どう使ったら活かせるか? スキーマレスデータを扱いやすいRDDと構造化されたデータを扱いやすい DataFrameをうまく組み合わせたい •DataFrameは数学的メソッドが追加されるなど充実してきたが、スキーマレスデータは今はRDDの方 が扱いやすい印象 •とはいえ、最適化の恩恵を受けられるのでDataFrameを活用したい ストリーム処理、統計処理、機械学習などのエコシステムを活用して高度な業務 を実現 •ここ1年くらいのソースコードの変更量はコアよりもライブラリの方が多い •MLlibは「分散処理の恩恵を受けられるアルゴリズムを実装する」という方針だが、定番アルゴリズ ムについてはまずまずの充実度。細かな機能が足りない場合はコミュニティに意見を挙げよう DataFrameやExternal Data Sourceの機能を活用して様々なソースからのデー タ統合処理 •構造の異なるデータも柔軟に扱える •大規模データでの動作もだいぶ安定してきた •「汎用的」というところに力点を置いて成長が進んでいる
24 / 28
25Copyright © 2015 NTT DATA Corporation  定期預金契約に関するサンプルデータを読み込んで、Sparkで処理します  データセット: http://archive.ics.uci.edu/ml/datasets/Bank+Marketing  サンプル内容  spark-csvを利用して、セミコロン区切りのデータを読み込む  DataFrameのAPIを利用して特定のカラムを抜き出す  Zeppelinでグラフを生成する 例1:DataFrame入門 "age";"job";"marital";"education";"default";"balance";"housing";"loan";"contact";"day";"month";"duration";"campaign";"pdays";"previous";"poutcome";"y" 58;"management";"married";"tertiary";"no";2143;"yes";"no";"unknown";5;"may";261;1;-1;0;"unknown";"no" 44;"technician";"single";"secondary";"no";29;"yes";"no";"unknown";5;"may";151;1;-1;0;"unknown";"no" 色んな説明変数(age、jobなど)と目的変数y
Copyright © 2015 NTT DATA CorporationCopyright © 2015 NTT DATA Corporation 2015年6月23日 株式会社NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス 猿田 浩輔/土橋 昌 メキメキ開発の進む Apache Sparkのいまとこれから OSS Professional Service Team Spark Casual Talk #1 (2015年06月23日) 発表資料
2Copyright © 2015 NTT DATA Corporation 自己紹介 猿 田 浩 輔 ソフトウェア開発。システムインフラ技 術者。 6年ほどHadoopに関する業務に従事。 近年はSpark関連の取り組みが多い。 2015年6月Sparkコミッタに就任 出版物に「Haodop徹底入門(初版、 第二版)」-翔泳社」、「HADOOP HACKS-オライリージャパン」 土 橋 昌 システムインフラ技術者。データ処理。技術 コンサルティング。 7年ほどHadoop関連の業務に従事。近年 はStorm、Sparkなどの分散処理を中心とし てシステム開発に携わる。 携わったHadoopサーバ台数は数千台。結 果、システム運用にも興味。 結果的に、トラブルシュート、ITインフラの相 談、システム運用、データ処理など広く従事。 講演に「Spark Summit」、「Haodop Conference Japan」、「Hadoopソースコード リーディング」 所属: NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス お仕事: OSSを使ったR&D、システム開発、テクニカルサポート
3Copyright © 2015 NTT DATA Corporation Spark開発の最前線 (猿田) •Sparkの基本おさらい •Spark 1.3までのホットトピックのキャッチアップ •Spark 1.4のアップデート 始めようSpark(土橋) •今から使うとしたら、どう使ったら活かせるか? •Spark使う上で気に留めておきたいこと •Sparkを動かしてみよう with Apache Zeppelin 本発表のアジェンダ
Copyright © 2015 NTT DATA Corporation 4Copyright © 2015 NTT DATA Corporation 4 ざっくりおさらい Apache Spark
5Copyright © 2015 NTT DATA Corporation  従来のHadoop MapReduceが苦手としていた、スループットとレイテンシの両 立が必要な問題領域にアプローチするために開発されたOSSのインメモリ分 散処理基盤  UC Barkeleyに所属していたMatei Zaharia(現Databricks CTO)がScalaで 開発した  Hadoop同様、大量のコモディティサーバを束ねて大規模なデータに対して分 散処理を行う  RDDと呼ばれる部分故障への耐性を考慮した分散コレクションに対し、mapや filter、reduceなどの典型的なデータ変換操作を繰り返して目的の結果を得る 処理モデル Apache 最新安定バージョンは1.4.0 RDD RDD RDDRDD ユーザ定義の 処理の流れ フォーマット変換 グルーピング フィルター 集計入力
6Copyright © 2015 NTT DATA Corporation データソース(HDFSなど) Sparkの全体像 • Scala/Java/Pythonで処 理が記述できる • インタラクティブシェルが 付属し、試行錯誤も可能 http://cdn.oreillystatic.com/en/assets/1/event/126/Apache%20Spark_%20What_s%20new_%20what_s%20coming%20Presentation.pdf 分散処理基盤を扱いや すくする便利なエコシス テムが付属している • YARNなどのクラスタ管理基盤と連係動作する • データソースの分散ファイルシステムにはHDFSも利用可能  従来MapReduceで実装していた処理をSparkにマイグレーションしやすい 分散処理エンジンを含むコア部分
Copyright © 2015 NTT DATA Corporation 7Copyright © 2015 NTT DATA Corporation 7 Spark 1.3までのホットトピックのキャッチアップ
8Copyright © 2015 NTT DATA Corporation  KafkaのSimpleConsumerAPIを用いてZookeeperを介さず、 SparkStreaming側でオフセット管理を行う。オフセットをWALに書き出 す必要がなくなった  WALとZookeeperの内部状態の不整合が発生しなくなり、より厳密にExactly- Onceが保証されるようになった Kafkaとの連携強化(Spark Streaming)
9Copyright © 2015 NTT DATA Corporation  学習アルゴリズムや最適化アルゴリズムなどのパーツだけではなく、Scikit-Learnのよ うな機械学習全体のパイプラインをサポートするAPIが提供されている Pipeline API(MLlib) val tokenizer = new Tokenizer() .setInputCol("text") .setOutputCol("words") val hashingTF = new HashingTF() .setNumFeatures(1000) .setInputCol(tokenizer.getOutputCol) .setOutputCol("features") val lr = new LogisticRegression() .setMaxIter(10) .setRegParam(0.01) // パイプラインにトークン分割、ハッシュ化、処理とロジスティック回帰を設定 val pipeline = new Pipeline().setStages(Array(tokenizer, hashingTF, lr)) val model = pipeline.fit(trainingDataset) // モデルの当てはめ
10Copyright © 2015 NTT DATA Corporation  従来SchemaRDDと呼ばれていたテーブル状のデータ構造がDataFrameと名前を変え た  DataFrameに対してSQLを発行できるだけではなく、DataFrame APIと呼ばれるデータ 処理用のAPIが提供されている  データに名前と型を定義することができるため、構造化されたデータの処理が簡潔に 記述できる  DataFrameはRやPandasとなじみが深いデータ構造なので、分析用途などで利用しや すくなった。 DataFrame API(Spark SQL) RDDをSpark Core APIで操 作するとごちゃごちゃした処 理も、DataFrame APIなら簡 潔に記述でき、可読性やメ ンテナンス性が向上する http://cdn.oreillystatic.com/en/assets/1/event/126/Apache%20Spark_%20What_s%20new_%20what_s%20coming%20Presentation.pdf
11Copyright © 2015 NTT DATA Corporation  Spark SQLでSQLを記述した場合と同様、DataFrame APIを経由したデータ操作も Spark SQLの最適化エンジンの恩恵を受けられる DataFrame API(Spark SQL) http://www.slideshare.net/databricks/introducing-dataframes-in-spark-for-large-scale-data-science • DataFrame APIを活用することでSpark SQLの最適化エンジンの恩恵が受けられる。 • Spark SQLのオプティマイザ経由でバイトコードが生成されるため、Scala/Pythonの 違いによる著しい性能劣化は起こらない。
Copyright © 2015 NTT DATA Corporation 12Copyright © 2015 NTT DATA Corporation 12 Spark 1.4のアップデート
13Copyright © 2015 NTT DATA Corporation  RのインターフェイスでSparkが利用できるようになった  ユーザは背後のSparkのコアの動作を意識せずDataFrameの操作を記 述するだけで分散処理が実行できる SparkR R言語で分散 処理が書ける Executorでは Spark SQLの オプティマイザ が生成した ジョブがJVM 上で走行する
14Copyright © 2015 NTT DATA Corporation Spark Streamingの統計情報の可視化 単位時間当たりのデータの 流量や、処理のスループット が確認できる
15Copyright © 2015 NTT DATA Corporation RDDの変換過程の可視化 複雑なRDDの変換チェインや、エコ システムによって生成された変換 チェインの全体像が把握しやすくな り、ボトルネックの発見やアプリ ケーションのチューニングに役立つ val rdd1 = sc.parallelize(list1).map(function1(_)) .reduceByKey(function2(_, _)) .map(function3(_)) val rdd2 = sc.parallelize(list2).union(rdd1)
16Copyright © 2015 NTT DATA Corporation タイムラインの可視化 Executor(Sparkのワーカプロセス)が 起動/停止したタイミングが時系列に表示される Executorが停止したタイミングで影響 を受けたジョブが分かる 各ジョブの開始/終了や ステータスが時系列に表示される Executorごとに、タスクが割り当てられた時間や各タスク の実行時間、処理時間の内訳が確認できる
17Copyright © 2015 NTT DATA Corporation  Sparkで処理されるワークロードのボトルネックがI/OからCPUに現れるようになってき た  昨今ハードウェアトレンドの変化(10G / SSD)  DataFrame APIやExternal Data Sources APIの登場で、無駄なI/Oが発生しにくくなった  Project Tungsten(SPARK-7075)  特に性能にセンシティブな部分の独自のメモリ管理 - メモリ利用効率の向上 - JavaのHashMapなどのデータ構造に見られる間接参照の削減 - GCの削減  キャッシュアウェアなデータ構造とアルゴリズム  モダンなCPUを活用できるコードの動的生成 Project Tungsten
18Copyright © 2015 NTT DATA Corporation  独自のメモリ管理  HashMapをUnsafe APIによる自前のメモリ管理による実装により、集約処理を高速化  中間オブジェクトの生成のオーバーヘッドを軽減  自前でのメモリ管理によってGCによる影響の排除 Project Tungsten https://databricks.com/blog/2015/04/28/project-tungsten-bringing-spark-closer-to-bare-metal.html レコードの増加 ごとの集約処 理の秒間スルー プット。Unsafe 版では400万 件の場合でも 劣化が無い
Copyright © 2015 NTT DATA Corporation 20Copyright © 2015 NTT DATA Corporation 20 始めようSpark 色々すごい機能もありますが、 まずは気楽に始めるところから...
21Copyright © 2015 NTT DATA Corporation 今から使うとしたら、どう使ったら活かせるか? スキーマレスデータを扱いやすいRDDと構造化されたデータを扱いやすい DataFrameをうまく組み合わせたい •DataFrameは数学的メソッドが追加されるなど充実してきたが、スキーマレスデータは今はRDDの方 が扱いやすい印象 •とはいえ、最適化の恩恵を受けられるのでDataFrameを活用したい ストリーム処理、統計処理、機械学習などのエコシステムを活用して高度な業務 を実現 •ここ1年くらいのソースコードの変更量はコアよりもライブラリの方が多い •MLlibは「分散処理の恩恵を受けられるアルゴリズムを実装する」という方針だが、定番アルゴリズ ムについてはまずまずの充実度。細かな機能が足りない場合はコミュニティに意見を挙げよう DataFrameやExternal Data Sourceの機能を活用して様々なソースからのデー タ統合処理 •構造の異なるデータも柔軟に扱える •大規模データでの動作もだいぶ安定してきた •「汎用的」というところに力点を置いて成長が進んでいる
22Copyright © 2015 NTT DATA Corporation 動かすだけならとても簡単にできる。まじめに動かすなら ばパラメータ設定は必須 •最初に公式のチューニングガイドを読むのがベター https://spark.apache.org/docs/latest/tuning.html •様々な処理内容に対応できる分、追い込むときは各々に合わせる やっぱりScala版実装が最も進んでいるが、最近はPython も頑張っている。SQL風言語もそれなりに利用できる •DataFrameの登場で基本的な足並みがそろってきた •個人的に、SQLで書きたい部分とコレクション操作で書きたい部分の両 方に対応してくれるのはありがたい Spark使う上で気に留めておきたいこと
23Copyright © 2015 NTT DATA Corporation  もっとも簡単な始め方  JDK7、8をインストール  LinuxやMacOSでSparkのパッケージをダウンロード、展開  spark-shellを起動  RDDの使い方 - https://spark.apache.org/docs/latest/programming-guide.html  DataFrameの使い方 - https://spark.apache.org/docs/latest/sql-programming-guide.html#dataframe- operations Sparkを動かしてみよう https://spark.apache.org/downloads.html $ ./bin/spark-shell --master local scala>
24Copyright © 2015 NTT DATA Corporation 本日はZeppelinと一緒にSparkの簡単な動作を紹介 ウェブベースのインタラクティブなノートブック SQL、Scala、Pythonで処理を書けます https://zeppelin.incubator.apache.org/ 開発者Leemoonsooと。 Spark Summit 2015より。
25Copyright © 2015 NTT DATA Corporation  定期預金契約に関するサンプルデータを読み込んで、Sparkで処理します  データセット: http://archive.ics.uci.edu/ml/datasets/Bank+Marketing  サンプル内容  spark-csvを利用して、セミコロン区切りのデータを読み込む  DataFrameのAPIを利用して特定のカラムを抜き出す  Zeppelinでグラフを生成する 例1:DataFrame入門 "age";"job";"marital";"education";"default";"balance";"housing";"loan";"contact";"day";"month";"duration";"campaign";"pdays";"previous";"poutcome";"y" 58;"management";"married";"tertiary";"no";2143;"yes";"no";"unknown";5;"may";261;1;-1;0;"unknown";"no" 44;"technician";"single";"secondary";"no";29;"yes";"no";"unknown";5;"may";151;1;-1;0;"unknown";"no" 色んな説明変数(age、jobなど)と目的変数y
26Copyright © 2015 NTT DATA Corporation  スマートフォンの加速度・ジャイロセンサから取得したデータを分析して行動を当てます  データセット: http://archive.ics.uci.edu/ml/datasets/Human+Activity+Recognition+Using+S martphones  サンプル内容  テキストファイルとして読み出してRDDとする  スペース区切り、不要なカラム除去などを経て、学習データを作る  ロジスティック回帰分析  テストデータを作って判定する  Precisionを求める 例2:RDDとMLlib入門 2.8858451e-001 -2.0294171e-002 -1.3290514e-001 -9.9527860e-001 -9.8311061e-001 ... 各センサとその統計値が561列ぶん
Copyright © 2015 NTT DATA Corporation 27Copyright © 2015 NTT DATA Corporation 27 まとめ
28Copyright © 2015 NTT DATA Corporation  Spark1.3までの振り返り  Spark1.4の注目ポイント  今どきのSpark活用ポイント  実際に動かしてみよう まとめ Sparkに興味を持った方は、ぜひパッケージをダウンロードしてお手軽に 動かしてみてください。公式ドキュメントのクイックスタートが参考になります。 https://spark.apache.org/docs/latest/quick-start.html 何か気になったことがあれば開発コミュニティにフィードバックを。 本気で使う方はぜひ一緒に開発現場を盛り上げましょう。
Copyright © 2011 NTT DATA Corporation Copyright © 2015 NTT DATA Corporation お問い合わせ先: 株式会社NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス URL: http://oss.nttdata.co.jp/hadoop メール: hadoop@kits.nttdata.co.jp TEL: 050-5546-2496

More Related Content

Hadoop ecosystem NTTDATA osc15tk
PDF
Hadoop ecosystem NTTDATA osc15tk
Sparkコミュニティに飛び込もう!(Spark Meetup Tokyo 2015 講演資料、NTTデータ 猿田 浩輔)
PDF
Sparkコミュニティに飛び込もう!(Spark Meetup Tokyo 2015 講演資料、NTTデータ 猿田 浩輔)
Hadoop2.6の最新機能+
PDF
Hadoop2.6の最新機能+
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
PDF
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
HTrace: Tracing in HBase and HDFS (HBase Meetup)
PDF
HTrace: Tracing in HBase and HDFS (HBase Meetup)
Apache Spark 1000 nodes NTT DATA
PDF
Apache Spark 1000 nodes NTT DATA
Hadoop 2.6の最新機能(Cloudera World Tokyo 2014 LT講演資料)
PDF
Hadoop 2.6の最新機能(Cloudera World Tokyo 2014 LT講演資料)
Apache Hadoop 2.8.0 の新機能 (抜粋)
PDF
Apache Hadoop 2.8.0 の新機能 (抜粋)
Hadoop ecosystem NTTDATA osc15tk
Hadoop ecosystem NTTDATA osc15tk
Sparkコミュニティに飛び込もう!(Spark Meetup Tokyo 2015 講演資料、NTTデータ 猿田 浩輔)
Sparkコミュニティに飛び込もう!(Spark Meetup Tokyo 2015 講演資料、NTTデータ 猿田 浩輔)
Hadoop2.6の最新機能+
Hadoop2.6の最新機能+
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
HTrace: Tracing in HBase and HDFS (HBase Meetup)
HTrace: Tracing in HBase and HDFS (HBase Meetup)
Apache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATA
Hadoop 2.6の最新機能(Cloudera World Tokyo 2014 LT講演資料)
Hadoop 2.6の最新機能(Cloudera World Tokyo 2014 LT講演資料)
Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)

More from NTT DATA OSS Professional Services

ブロックチェーンの仕組みと動向(入門編)
PPTX
ブロックチェーンの仕組みと動向(入門編)
今からはじめるPuppet 2016 〜 インフラエンジニアのたしなみ 〜
PPTX
今からはじめるPuppet 2016 〜 インフラエンジニアのたしなみ 〜
Application of postgre sql to large social infrastructure
PDF
Application of postgre sql to large social infrastructure
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PDF
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
Global Top 5 を目指す NTT DATA の確かで意外な技術力
PDF
Global Top 5 を目指す NTT DATA の確かで意外な技術力
HDFS basics from API perspective
PDF
HDFS basics from API perspective
データ活用をもっともっと円滑に! 〜データ処理・分析基盤編を少しだけ〜
PDF
データ活用をもっともっと円滑に! 〜データ処理・分析基盤編を少しだけ〜
商用ミドルウェアのPuppet化で気を付けたい5つのこと
PDF
商用ミドルウェアのPuppet化で気を付けたい5つのこと
HDFS Router-based federation
PDF
HDFS Router-based federation
Apache Kafkaって本当に大丈夫?〜故障検証のオーバービューと興味深い挙動の紹介〜
PDF
Apache Kafkaって本当に大丈夫?〜故障検証のオーバービューと興味深い挙動の紹介〜
Apache Hadoopの未来 3系になって何が変わるのか?
PDF
Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの新機能Ozoneの現状
PDF
Apache Hadoopの新機能Ozoneの現状
Spark SQL - The internal -
PDF
Spark SQL - The internal -
SIerとオープンソースの美味しい関係 〜コミュニティの力を活かして世界を目指そう〜
PDF
SIerとオープンソースの美味しい関係 〜コミュニティの力を活かして世界を目指そう〜
Structured Streaming - The Internal -
PDF
Structured Streaming - The Internal -
Apache Hadoop and YARN, current development status
PDF
Apache Hadoop and YARN, current development status
Application of postgre sql to large social infrastructure jp
PDF
Application of postgre sql to large social infrastructure jp
20170303 java9 hadoop
PDF
20170303 java9 hadoop
Distributed data stores in Hadoop ecosystem
PDF
Distributed data stores in Hadoop ecosystem
Hadoopエコシステムのデータストア振り返り
PDF
Hadoopエコシステムのデータストア振り返り
ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)
今からはじめるPuppet 2016 〜 インフラエンジニアのたしなみ 〜
今からはじめるPuppet 2016 〜 インフラエンジニアのたしなみ 〜
Application of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructure
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力
HDFS basics from API perspective
HDFS basics from API perspective
データ活用をもっともっと円滑に! 〜データ処理・分析基盤編を少しだけ〜
データ活用をもっともっと円滑に! 〜データ処理・分析基盤編を少しだけ〜
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
HDFS Router-based federation
HDFS Router-based federation
Apache Kafkaって本当に大丈夫?〜故障検証のオーバービューと興味深い挙動の紹介〜
Apache Kafkaって本当に大丈夫?〜故障検証のオーバービューと興味深い挙動の紹介〜
Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
Spark SQL - The internal -
Spark SQL - The internal -
SIerとオープンソースの美味しい関係 〜コミュニティの力を活かして世界を目指そう〜
SIerとオープンソースの美味しい関係 〜コミュニティの力を活かして世界を目指そう〜
Structured Streaming - The Internal -
Structured Streaming - The Internal -
Apache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development status
Application of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jp
20170303 java9 hadoop
20170303 java9 hadoop
Distributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystem
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り

Recently uploaded

論文紹介 Rethinking Classifier Re-Training in Long-Tailed Recognition: Label Over...
PDF
論文紹介 Rethinking Classifier Re-Training in Long-Tailed Recognition: Label Over...
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
PPTX
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
PCCC25(設立25年記念PCクラスタシンポジウム):筑波大学計算科学研究センター テーマ3「学際計算科学による最新の研究成果」
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):筑波大学計算科学研究センター テーマ3「学際計算科学による最新の研究成果」
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
PDF
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
PCCC25(設立25年記念PCクラスタシンポジウム):菱洋エレクトロ株式会社 テーマ1「製造業向けAI・HPCハイパフォーマンス基盤 RTX PROTM ...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):菱洋エレクトロ株式会社 テーマ1「製造業向けAI・HPCハイパフォーマンス基盤 RTX PROTM ...
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
PDF
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
PDF
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
論文紹介 Rethinking Classifier Re-Training in Long-Tailed Recognition: Label Over...
論文紹介 Rethinking Classifier Re-Training in Long-Tailed Recognition: Label Over...
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
PCCC25(設立25年記念PCクラスタシンポジウム):筑波大学計算科学研究センター テーマ3「学際計算科学による最新の研究成果」
PCCC25(設立25年記念PCクラスタシンポジウム):筑波大学計算科学研究センター テーマ3「学際計算科学による最新の研究成果」
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
PCCC25(設立25年記念PCクラスタシンポジウム):菱洋エレクトロ株式会社 テーマ1「製造業向けAI・HPCハイパフォーマンス基盤 RTX PROTM ...
PCCC25(設立25年記念PCクラスタシンポジウム):菱洋エレクトロ株式会社 テーマ1「製造業向けAI・HPCハイパフォーマンス基盤 RTX PROTM ...
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...

メキメキ開発の進む Apache Sparkのいまとこれから (Spark Casual Talk #1 発表資料)

  • 1.
    Copyright © 2015 NTT DATA CorporationCopyright © 2015 NTT DATA Corporation 2015年6月23日 株式会社NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス 猿田 浩輔/土橋 昌 メキメキ開発の進む Apache Sparkのいまとこれから OSS Professional Service Team Spark Casual Talk #1 (2015年06月23日) 発表資料
  • 2.
    2Copyright © 2015 NTT DATA Corporation 自己紹介 猿 田 浩 輔 ソフトウェア開発。システムインフラ技 術者。 6年ほどHadoopに関する業務に従事。 近年はSpark関連の取り組みが多い。 2015年6月Sparkコミッタに就任 出版物に「Haodop徹底入門(初版、 第二版)」-翔泳社」、「HADOOP HACKS-オライリージャパン」 土 橋 昌 システムインフラ技術者。データ処理。技術 コンサルティング。 7年ほどHadoop関連の業務に従事。近年 はStorm、Sparkなどの分散処理を中心とし てシステム開発に携わる。 携わったHadoopサーバ台数は数千台。結 果、システム運用にも興味。 結果的に、トラブルシュート、ITインフラの相 談、システム運用、データ処理など広く従事。 講演に「Spark Summit」、「Haodop Conference Japan」、「Hadoopソースコード リーディング」 所属: NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス お仕事: OSSを使ったR&D、システム開発、テクニカルサポート
  • 3.
    3Copyright © 2015 NTT DATA Corporation Spark開発の最前線 (猿田) •Sparkの基本おさらい •Spark 1.3までのホットトピックのキャッチアップ •Spark 1.4のアップデート 始めようSpark(土橋) •今から使うとしたら、どう使ったら活かせるか? •Spark使う上で気に留めておきたいこと •Sparkを動かしてみよう with Apache Zeppelin 本発表のアジェンダ
  • 4.
    Copyright © 2015 NTT DATA Corporation 4Copyright © 2015 NTT DATA Corporation 4 ざっくりおさらい Apache Spark
  • 5.
    5Copyright © 2015 NTT DATA Corporation  従来のHadoop MapReduceが苦手としていた、スループットとレイテンシの両 立が必要な問題領域にアプローチするために開発されたOSSのインメモリ分 散処理基盤  UC Barkeleyに所属していたMatei Zaharia(現Databricks CTO)がScalaで 開発した  Hadoop同様、大量のコモディティサーバを束ねて大規模なデータに対して分 散処理を行う  RDDと呼ばれる部分故障への耐性を考慮した分散コレクションに対し、mapや filter、reduceなどの典型的なデータ変換操作を繰り返して目的の結果を得る 処理モデル Apache 最新安定バージョンは1.4.0 RDD RDD RDDRDD ユーザ定義の 処理の流れ フォーマット変換 グルーピング フィルター 集計入力
  • 6.
    6Copyright © 2015 NTT DATA Corporation データソース(HDFSなど) Sparkの全体像 • Scala/Java/Pythonで処 理が記述できる • インタラクティブシェルが 付属し、試行錯誤も可能 http://cdn.oreillystatic.com/en/assets/1/event/126/Apache%20Spark_%20What_s%20new_%20what_s%20coming%20Presentation.pdf 分散処理基盤を扱いや すくする便利なエコシス テムが付属している • YARNなどのクラスタ管理基盤と連係動作する • データソースの分散ファイルシステムにはHDFSも利用可能  従来MapReduceで実装していた処理をSparkにマイグレーションしやすい 分散処理エンジンを含むコア部分
  • 7.
    Copyright © 2015 NTT DATA Corporation 7Copyright © 2015 NTT DATA Corporation 7 Spark 1.3までのホットトピックのキャッチアップ
  • 8.
    8Copyright © 2015 NTT DATA Corporation  KafkaのSimpleConsumerAPIを用いてZookeeperを介さず、 SparkStreaming側でオフセット管理を行う。オフセットをWALに書き出 す必要がなくなった  WALとZookeeperの内部状態の不整合が発生しなくなり、より厳密にExactly- Onceが保証されるようになった Kafkaとの連携強化(Spark Streaming)
  • 9.
    9Copyright © 2015 NTT DATA Corporation  学習アルゴリズムや最適化アルゴリズムなどのパーツだけではなく、Scikit-Learnのよ うな機械学習全体のパイプラインをサポートするAPIが提供されている Pipeline API(MLlib) val tokenizer = new Tokenizer() .setInputCol("text") .setOutputCol("words") val hashingTF = new HashingTF() .setNumFeatures(1000) .setInputCol(tokenizer.getOutputCol) .setOutputCol("features") val lr = new LogisticRegression() .setMaxIter(10) .setRegParam(0.01) // パイプラインにトークン分割、ハッシュ化、処理とロジスティック回帰を設定 val pipeline = new Pipeline().setStages(Array(tokenizer, hashingTF, lr)) val model = pipeline.fit(trainingDataset) // モデルの当てはめ
  • 10.
    10Copyright © 2015 NTT DATA Corporation  従来SchemaRDDと呼ばれていたテーブル状のデータ構造がDataFrameと名前を変え た  DataFrameに対してSQLを発行できるだけではなく、DataFrame APIと呼ばれるデータ 処理用のAPIが提供されている  データに名前と型を定義することができるため、構造化されたデータの処理が簡潔に 記述できる  DataFrameはRやPandasとなじみが深いデータ構造なので、分析用途などで利用しや すくなった。 DataFrame API(Spark SQL) RDDをSpark Core APIで操 作するとごちゃごちゃした処 理も、DataFrame APIなら簡 潔に記述でき、可読性やメ ンテナンス性が向上する http://cdn.oreillystatic.com/en/assets/1/event/126/Apache%20Spark_%20What_s%20new_%20what_s%20coming%20Presentation.pdf
  • 11.
    11Copyright © 2015 NTT DATA Corporation  Spark SQLでSQLを記述した場合と同様、DataFrame APIを経由したデータ操作も Spark SQLの最適化エンジンの恩恵を受けられる DataFrame API(Spark SQL) http://www.slideshare.net/databricks/introducing-dataframes-in-spark-for-large-scale-data-science • DataFrame APIを活用することでSpark SQLの最適化エンジンの恩恵が受けられる。 • Spark SQLのオプティマイザ経由でバイトコードが生成されるため、Scala/Pythonの 違いによる著しい性能劣化は起こらない。
  • 12.
    Copyright © 2015 NTT DATA Corporation 12Copyright © 2015 NTT DATA Corporation 12 Spark 1.4のアップデート
  • 13.
    13Copyright © 2015 NTT DATA Corporation  RのインターフェイスでSparkが利用できるようになった  ユーザは背後のSparkのコアの動作を意識せずDataFrameの操作を記 述するだけで分散処理が実行できる SparkR R言語で分散 処理が書ける Executorでは Spark SQLの オプティマイザ が生成した ジョブがJVM 上で走行する
  • 14.
    14Copyright © 2015 NTT DATA Corporation Spark Streamingの統計情報の可視化 単位時間当たりのデータの 流量や、処理のスループット が確認できる
  • 15.
    15Copyright © 2015 NTT DATA Corporation RDDの変換過程の可視化 複雑なRDDの変換チェインや、エコ システムによって生成された変換 チェインの全体像が把握しやすくな り、ボトルネックの発見やアプリ ケーションのチューニングに役立つ val rdd1 = sc.parallelize(list1).map(function1(_)) .reduceByKey(function2(_, _)) .map(function3(_)) val rdd2 = sc.parallelize(list2).union(rdd1)
  • 16.
    16Copyright © 2015 NTT DATA Corporation タイムラインの可視化 Executor(Sparkのワーカプロセス)が 起動/停止したタイミングが時系列に表示される Executorが停止したタイミングで影響 を受けたジョブが分かる 各ジョブの開始/終了や ステータスが時系列に表示される Executorごとに、タスクが割り当てられた時間や各タスク の実行時間、処理時間の内訳が確認できる
  • 17.
    17Copyright © 2015 NTT DATA Corporation  Sparkで処理されるワークロードのボトルネックがI/OからCPUに現れるようになってき た  昨今ハードウェアトレンドの変化(10G / SSD)  DataFrame APIやExternal Data Sources APIの登場で、無駄なI/Oが発生しにくくなった  Project Tungsten(SPARK-7075)  特に性能にセンシティブな部分の独自のメモリ管理 - メモリ利用効率の向上 - JavaのHashMapなどのデータ構造に見られる間接参照の削減 - GCの削減  キャッシュアウェアなデータ構造とアルゴリズム  モダンなCPUを活用できるコードの動的生成 Project Tungsten
  • 18.
    18Copyright © 2015 NTT DATA Corporation  独自のメモリ管理  HashMapをUnsafe APIによる自前のメモリ管理による実装により、集約処理を高速化  中間オブジェクトの生成のオーバーヘッドを軽減  自前でのメモリ管理によってGCによる影響の排除 Project Tungsten https://databricks.com/blog/2015/04/28/project-tungsten-bringing-spark-closer-to-bare-metal.html レコードの増加 ごとの集約処 理の秒間スルー プット。Unsafe 版では400万 件の場合でも 劣化が無い
  • 19.
    Copyright © 2015 NTT DATA Corporation 20Copyright © 2015 NTT DATA Corporation 20 始めようSpark 色々すごい機能もありますが、 まずは気楽に始めるところから...
  • 20.
    21Copyright © 2015 NTT DATA Corporation 今から使うとしたら、どう使ったら活かせるか? スキーマレスデータを扱いやすいRDDと構造化されたデータを扱いやすい DataFrameをうまく組み合わせたい •DataFrameは数学的メソッドが追加されるなど充実してきたが、スキーマレスデータは今はRDDの方 が扱いやすい印象 •とはいえ、最適化の恩恵を受けられるのでDataFrameを活用したい ストリーム処理、統計処理、機械学習などのエコシステムを活用して高度な業務 を実現 •ここ1年くらいのソースコードの変更量はコアよりもライブラリの方が多い •MLlibは「分散処理の恩恵を受けられるアルゴリズムを実装する」という方針だが、定番アルゴリズ ムについてはまずまずの充実度。細かな機能が足りない場合はコミュニティに意見を挙げよう DataFrameやExternal Data Sourceの機能を活用して様々なソースからのデー タ統合処理 •構造の異なるデータも柔軟に扱える •大規模データでの動作もだいぶ安定してきた •「汎用的」というところに力点を置いて成長が進んでいる
  • 21.
    22Copyright © 2015 NTT DATA Corporation 動かすだけならとても簡単にできる。まじめに動かすなら ばパラメータ設定は必須 •最初に公式のチューニングガイドを読むのがベター https://spark.apache.org/docs/latest/tuning.html •様々な処理内容に対応できる分、追い込むときは各々に合わせる やっぱりScala版実装が最も進んでいるが、最近はPython も頑張っている。SQL風言語もそれなりに利用できる •DataFrameの登場で基本的な足並みがそろってきた •個人的に、SQLで書きたい部分とコレクション操作で書きたい部分の両 方に対応してくれるのはありがたい Spark使う上で気に留めておきたいこと
  • 22.
    23Copyright © 2015 NTT DATA Corporation  もっとも簡単な始め方  JDK7、8をインストール  LinuxやMacOSでSparkのパッケージをダウンロード、展開  spark-shellを起動  RDDの使い方 - https://spark.apache.org/docs/latest/programming-guide.html  DataFrameの使い方 - https://spark.apache.org/docs/latest/sql-programming-guide.html#dataframe- operations Sparkを動かしてみよう https://spark.apache.org/downloads.html $ ./bin/spark-shell --master local scala>
  • 23.
    24Copyright © 2015 NTT DATA Corporation 本日はZeppelinと一緒にSparkの簡単な動作を紹介 ウェブベースのインタラクティブなノートブック SQL、Scala、Pythonで処理を書けます https://zeppelin.incubator.apache.org/ 開発者Leemoonsooと。 Spark Summit 2015より。
  • 24.
    25Copyright © 2015 NTT DATA Corporation  定期預金契約に関するサンプルデータを読み込んで、Sparkで処理します  データセット: http://archive.ics.uci.edu/ml/datasets/Bank+Marketing  サンプル内容  spark-csvを利用して、セミコロン区切りのデータを読み込む  DataFrameのAPIを利用して特定のカラムを抜き出す  Zeppelinでグラフを生成する 例1:DataFrame入門 "age";"job";"marital";"education";"default";"balance";"housing";"loan";"contact";"day";"month";"duration";"campaign";"pdays";"previous";"poutcome";"y" 58;"management";"married";"tertiary";"no";2143;"yes";"no";"unknown";5;"may";261;1;-1;0;"unknown";"no" 44;"technician";"single";"secondary";"no";29;"yes";"no";"unknown";5;"may";151;1;-1;0;"unknown";"no" 色んな説明変数(age、jobなど)と目的変数y
  • 25.
    26Copyright © 2015 NTT DATA Corporation  スマートフォンの加速度・ジャイロセンサから取得したデータを分析して行動を当てます  データセット: http://archive.ics.uci.edu/ml/datasets/Human+Activity+Recognition+Using+S martphones  サンプル内容  テキストファイルとして読み出してRDDとする  スペース区切り、不要なカラム除去などを経て、学習データを作る  ロジスティック回帰分析  テストデータを作って判定する  Precisionを求める 例2:RDDとMLlib入門 2.8858451e-001 -2.0294171e-002 -1.3290514e-001 -9.9527860e-001 -9.8311061e-001 ... 各センサとその統計値が561列ぶん
  • 26.
    Copyright © 2015 NTT DATA Corporation 27Copyright © 2015 NTT DATA Corporation 27 まとめ
  • 27.
    28Copyright © 2015 NTT DATA Corporation  Spark1.3までの振り返り  Spark1.4の注目ポイント  今どきのSpark活用ポイント  実際に動かしてみよう まとめ Sparkに興味を持った方は、ぜひパッケージをダウンロードしてお手軽に 動かしてみてください。公式ドキュメントのクイックスタートが参考になります。 https://spark.apache.org/docs/latest/quick-start.html 何か気になったことがあれば開発コミュニティにフィードバックを。 本気で使う方はぜひ一緒に開発現場を盛り上げましょう。
  • 28.
    Copyright © 2011 NTT DATA Corporation Copyright © 2015 NTT DATA Corporation お問い合わせ先: 株式会社NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス URL: http://oss.nttdata.co.jp/hadoop メール: hadoop@kits.nttdata.co.jp TEL: 050-5546-2496

AltStyle によって変換されたページ (->オリジナル) /