Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Apache Sparkやってみたところ
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tnishikori
September 09, 2017
Technology
3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Apache Sparkやってみたところ
Apache Sparkやってみての所感とか
Tnishikori
September 09, 2017
More Decks by Tnishikori
See All by Tnishikori
RSpec 勉強会
tatsunori_nishikori
0
95
Other Decks in Technology
See All in Technology
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
0
150
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
1
440
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
140
ADKで始める業務改善 - AIエージェント開発時の考えと設計
harappa80
2
160
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
26
15k
What the customer really needed
kawaguti
PRO
3
200
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
5
630
安心して変更できるWebフロントエンドの作り方
pirosikick
5
2.6k
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
1
170
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
200
作って終わりじゃないサーバーレス 〜9年運用する大規模EC物流API基盤の設計・運用のリアル〜
zozotech
PRO
0
110
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
730
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
sira's awesome portfolio website redesign presentation
elsirapls
0
410
Speed Design
sergeychernyshev
33
2.1k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
540
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
240
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
740
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Odyssey Design
rkendrick25
PRO
2
810
Mobile First: as difficult as doing things right
swwweet
225
10k
WCS-LA-2024
lcolladotor
0
830
Ruling the World: When Life Gets Gamed
codingconduct
0
330
Transcript
Apache Sparkやってみたところ
What is Apache Spark ?
Sparkとは • BigDataを高速に分散処理を行うフレームワーク Apache Spark Spark SQL Spark Streaming MLlib
(machine learning) GraphX (Graph)
データ操作 • RDD • 並行して操作することが可能な要素の耐障害性のあ るコレクション • DataFrame • 1.6から追加された機能でRやPython等のDataFrameと
同等の操作が可能 • SQL • Hive SQLプラスαのDSL記述で操作可能
SQL • SELECT • GROUP BY • ORDER BY •
数学関数 • 文字関数 • Window関数 • JOIN • UNION • サブクエリ • etc… https://spark.apache.org/docs/latest/sql-programming- guide.html#supported-hive-features
データソース • Hadoop • s3 • RDBMS • ElasticSearch •
etc.. Hadoop以外はConnectorを利用する必要がある
Spark MLlib(ML)
Spark MLlib • 機械学習ライブラリ • MLlib : RDDベース(メンテナンスモードに入ったよう で機能追加は今後は行っていかない) •
ML : DataFrameベース(今後こちらが主流になってい く)
Spark MLlib APIできること • 基本的な統計 • 分類と回帰 • 協調フィルタリング •
クラスタリング • 次元削除 • 特徴量抽出及び変形 • 頻出パターンマイニング • 評価マトリックス • PMML モデル抽出 https://spark.apache.org/docs/latest/ml-guide.html
Amazon EMR
EMRとは • Amazon EMR は、AWS でビッグデータフレームワーク (Apache Hadoop や Apache
Spark など) の実行を簡素 化して、大量のデータを処理および分析するマネージ ド型クラスタープラットフォーム • S3を始め、AWS上のサービスの連携がデフォルトでつい てくる • 1度構築したクラスタは再利用可能(CLIもアウトプット 可能)
EMR Command Runner • EMRクラスタのインスタンス内に`command-runner.jar` が置かれ、これを利用してステップを追加していく • spark-submit : Sparkアプリケーションの実行
• s3-dist-cp : 大量のデータをS3からHDFSに分散コピー する http://docs.aws.amazon.com/ja_jp/emr/latest/ ReleaseGuide/emr-commandrunner.html
Apache Spark Tuning
WebUI • WebUIでは以下のような項目が確認できるので、パフォー マンスネックになっている箇所の特定などに利用する と良さそう • スケジューラのステージおよびタスクのリスト • RDDサイズおよびメモリの使用量の概要 •
環境情報 • 実行中のexecutorの情報
キャッシュ • キャッシュ無し4h以上 -> キャッシュ利用 1h程度に短 縮 • DataFrame •
SQL df.cache() # キャッシュ利用 df.is_cached # キャッシュ確認 df.unpersist() # キャッシュ廃棄 spark.sql("CACHE [LAZY] TABLE [db_name.]table_name") # キャッシュ利用 spark.sql("UNCACHE TABLE [db_name.]table_name") # キャッシュ廃棄
データロード • s3直接ロード -> s3-dist-cpを利用し、一度クラスタ 内HDFSに移してロード 20min程度短縮 • srcPattern :
s3のフィルタリング • groupBy : 複数のファイルを結合 • targetSize : groupByにもとづいて作成するファイル のサイズ http://docs.aws.amazon.com/ja_jp/emr/latest/ ReleaseGuide/UsingEMR_s3distcp.html
Sparkの設定 • spark.executor.meory、spark.executor.cores、 spark.dynamicAllocation.enabledについてはEMR側でデ フォルトで設定されるので、EMRに任せておいて良さそう http://docs.aws.amazon.com/ja_jp/emr/latest/ ReleaseGuide/emr-spark-configure.html • SQL周りの設定では以下の項目の調整で数分短縮の効果あ り
• spark.rdd.compress • spark.sql.shuffle.partitions • spark.sql.inMemoryColumnarStorage.batchSize • spark.sql.broadcastTimeout • spark.sql.files.openCostInBytes
参考文献 • Apache Spark SQLリファレンス http://x1.inkenkun.com/archives/1114 • Apache Spark MLlibのレコメンドアルゴリズムを使う
http://kazz.hateblo.jp/entry/2016/02/09/114756 • Apache Spark を使ったシステム構築のための Tips https://blog.albert2005.co.jp/2016/06/16/apache-spark- %E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%B7%E3%82%B9%E 3%83%86%E3%83%A0%E6%A7%8B%E7%AF%89%E3%81%AE%E3%81%9F%E3% 82%81%E3%81%AE-tips/ • Apache Sparkを使って、メモリ使用量が大きいバッチ処理をス ケールアウト http://lab.adn-mobasia.net/?p=4777