Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Scalaで実装した 分散処理システムの超概要
Search
Takashi Funato
April 11, 2018
Technology
0
200
Scalaで実装した 分散処理システムの超概要
Takashi Funato
April 11, 2018
Tweet
Share
More Decks by Takashi Funato
See All by Takashi Funato
AWS をちょっとわかった気になる / Kinda feel the AWS
tfunato
0
89
人に優しいAWS運用
tfunato
0
76
OSI reference model Layer I
tfunato
0
49
Goで作るWebアプリケーション Echo 編 といいつつGoの説明多い
tfunato
0
110
Docker勉強会
tfunato
1
160
GISとして活用するElasticsearch
tfunato
6
7.9k
Other Decks in Technology
See All in Technology
ユーザーのプロフィールデータを活用した推薦精度向上の取り組み
yudai00
0
470
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
2
1.3k
TerraformをSaaSで使うとAzureの運用がこんなに楽ちん!HCP Terraformって何?
mnakabayashi
0
300
AIエージェントの継続的改善のためオブザーバビリティ
pharma_x_tech
6
1.4k
AIにどこまで任せる?実務で使える(かもしれない)AIエージェント設計の考え方
har1101
3
1.2k
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
780
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全 / 20250625-aws-summit-aws-policy
opelab
6
690
Azure AI Foundryでマルチエージェントワークフロー
seosoft
0
140
ローカルLLMでファインチューニング
knishioka
0
120
実践! AIエージェント導入記
1mono2prod
0
130
Абьюзим random_bytes(). Фёдор Кулаков, разработчик Lamoda Tech
lamodatech
0
270
AWS Summit Japan 2025 Community Stage - App workflow automation by AWS Step Functions
matsuihidetoshi
1
140
Featured
See All Featured
Scaling GitHub
holman
459
140k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
KATA
mclloyd
29
14k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
For a Future-Friendly Web
brad_frost
179
9.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
The Language of Interfaces
destraynor
158
25k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
700
Music & Morning Musume
bryan
46
6.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.5k
Transcript
ScalaͰ࣮ͨ͠ ࢄॲཧγεςϜͷ֓ཁ 2018.04.11 ΏΊΈ ᢠށ ོ
հ • tfunato • αʔόαΠυͬͯ·͢ • PHPɺNode.jsɺJavaɺetc
Agenda • ࢄॲཧ • Sparkͷઆ໌ • ͬͨ͜ͱ • ·ͱΊ
ࢄॲཧ
ࢄॲཧ • ̍ͭͷॲཧΛࢄͯ͠ߦ͏͜ͱ
ͱ͍͑ • ॲཧͷ߹ੑ • ͦΕͧΕͷܭࢉ݁Ռͷ߹ੑ • ॲཧͷޮԽ • ॲཧͷׂ •
ॲཧରσʔλͷɺऩूɺूܭ • ௨৴ϓϩτίϧεέʔϥϏϦςΟɺোੑ…. • ઐ͡Όͳ͍ͷͰৄ͘͠…
ॲཧܥ • ѻ͏σʔλ͍ΘΏΔϏοάσʔλ • ेςϥόΠτ ʙ ϖλόΠτ • ηϯαʔɺυΩϡϝϯτɺϩάɺఱจֶɺେؾԽֶɺήϊϜ etc
• ҰൠతͳRDBͰॲཧ͖͠Εͳ͘ͳͬͨ • ઐ༻ͷϋʔυΣΞιϑτΣΞ • ඇৗʹߴՁ • Google͕MapReduceΛൃද • ͦΕΛͱʹHadoop͕࡞ΒΕOSSԽ
Hadoop͔ΒSpark • ॲཧ͕͍ • ͍Θ͚Ͱͳ͍͕ɺޮ͕ѱ͍ • IOΛฒྻԽͯ͠εϧʔϓοτΛ্͍͛ͯΔ͕ɺٯʹIO ͕ϘτϧωοΫʹͳ͖ͬͯͨ • αʔόߏ͕ෳࡶɺ͔ͭӡ༻͕େม
• NameNodeɺJobTrackerɺDataNodeɺTaskTracker
Hadoop͔ΒSpark • SparkHadoopͷMapReduceΛஔ͖͑Δ • SparkॲཧΛۃྗϝϞϦʔʹͤͯߦ͏ • ඞཁʹͳͬͨΒσΟεΫIO͢Δ • HadoopͷMapReduceΑΓ100ഒૣ͍ͱ͔
Spark
Sparkͷઆ໌ - ࣮ • Scala • Java • Python •
R
Sparkͷઆ໌ - σʔλೖग़ྗ • ༷ʑͳσʔλͷೖग़ྗʹରԠ • Hadoop Distributed File System(HDFS)
• Cassandra • MongoDB • Couchbase • Amazon S3 • RDBʢJDBCͰଓͰ͖ΔͷͰ͋Εʣ • IOपΓͷࣗ࡞
Sparkͷઆ໌ - ѻ͏σʔλܗࣜ • ༷ʑͳσʔλܗࣜʹରԠ • CSVʢTSVʣ • JSON •
Text • ParquetɺORC • ΧϥϜφϑΥʔϚοτʢྻํσʔλʣ • ReadɺWriteΛࣗ࡞
Sparkͷઆ໌ - ॲཧͷجຊ1 • ॲཧͷجຊ • Read • σʔλΛಡΈࠐΉ෦ •
Write • σʔλΛॻ͖ࠐΉ෦
Sparkͷઆ໌ - ॲཧͷجຊ2 • SQLϥΠΫͳΠϯλʔϑΣʔε͕༻ҙ͞Ε͍ͯΔ • Spark SQL • Readͨ͠σʔλʹରͯ͠Ճ
• FilterɺGroupByɺAvgɺOrderByɺMaxɺMinɺCount • JoinɺUnion • ෳͷಡΈࠐΜͩσʔλʹରͯ͠ • https://spark.apache.org/docs/latest/api/scala/ index.html#org.apache.spark.sql.Dataset
Sparkͷઆ໌ - ॲཧͷجຊ̐ • Write • ॻ͖ࠐΈઌͱϑΥʔϚοτΛࢦఆ͢Δ͚ͩ
ͬͨ͜ͱ
ΞʔΩςΫνϟ Amazon Redshift Amazon EMR Amazon S3 104σʔλ 4QBSL
ϩʔΧϧ։ൃڥ • Redshiftͱޓੑͷ͋ΔPostgreSQLΛDocker Ͱىಈ • IntelliJ IDEA͔ΒSparkΛ࣮ߦ • local࣮ߦϞʔυ͕͋Δ •
ϩʔΧϧʹϑΝΠϧग़ྗ
ͬͨ͜ͱ • Redshift͔ΒSQLΛ͛ͯରσʔλऔಘ • ඞཁ࠷খݶͷσʔλΛऔಘ͢Δ • POSσʔλΛूܭͯ͠ϙΠϯτΛ༩͢Δ • ݁ՌΛCSVͱͯ͠S3ʹอଘ
ͬͨ͜ͱ • JenkinsΛδϣϒεέδϡʔϥͱͯ͠༻ • ͔ͭϩάΛCloudWatchʹసૹͯ͠ࢹ • ͔̍̍͠ಈ͔ͳ͍ͷͰৗ࣌ىಈͷΫϥελͱ͠ͳ͍ͰɺऴΘͬ ͨΒΫϥελΛআ • ݁ߏେ͖͍ΠϯελϯεΛ༻ͯ͠େֹͨۚ͠ʹͳΒͳ͍
• ϩάS3ʹग़ྗ͞ΕΔͷͰ֬ೝ͍͢͠ • sbtʹcryptɺdecryptλεΫΛՃͯ͠ڥใΛ҉߸Խ
·ͱΊ
·ͱΊ • ΦʔόʔεϖοΫ͔ͩͬͨ͠Εͳ͍ • ͏ͪΐͬͱςετΛॻ͖͍ߏʹ͖͢ ͩͬͨ • Spark͍͍Α • Scala͍͍Α