SlideShare a Scribd company logo
Apache Sparkやってみたところ
1
What is Apache Spark ?
2
Sparkとは
• BigDataを高速に分散処理を行うフレームワーク
Apache Spark
Spark SQL
Spark
Streaming
MLlib

(machine
learning)
GraphX

(Graph)
3
データ操作
• RDD
• 並行して操作することが可能な要素の耐障害性のあ
るコレクション
• DataFrame
• 1.6から追加された機能でRやPython等のDataFrameと
同等の操作が可能
• SQL
• Hive SQLプラスαのDSL記述で操作可能
4
SQL
• SELECT
• GROUP BY
• ORDER BY
• 数学関数
• 文字関数
• Window関数
• JOIN
• UNION
• サブクエリ
• etc…
https://spark.apache.org/docs/latest/sql-programming-
guide.html#supported-hive-features
5
データソース
• Hadoop
• s3
• RDBMS
• ElasticSearch
• etc..
Hadoop以外はConnectorを利用する必要がある
6
Spark MLlib(ML)
7
Spark MLlib
• 機械学習ライブラリ
• MLlib : RDDベース(メンテナンスモードに入ったよう
で機能追加は今後は行っていかない)
• ML : DataFrameベース(今後こちらが主流になってい
く)
8
Spark MLlib APIできること
• 基本的な統計
• 分類と回帰
• 協調フィルタリング
• クラスタリング
• 次元削除
• 特徴量抽出及び変形
• 頻出パターンマイニング
• 評価マトリックス
• PMML モデル抽出
https://spark.apache.org/docs/latest/ml-guide.html
9
Amazon EMR
10
EMRとは
• Amazon EMR は、AWS でビッグデータフレームワーク
(Apache Hadoop や Apache Spark など) の実行を簡素
化して、大量のデータを処理および分析するマネージ
ド型クラスタープラットフォーム
• S3を始め、AWS上のサービスの連携がデフォルトでつい
てくる
• 1度構築したクラスタは再利用可能(CLIもアウトプット
可能)
11
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
12
Apache Spark Tuning
13
WebUI
• WebUIでは以下のような項目が確認できるので、パフォー
マンスネックになっている箇所の特定などに利用する
と良さそう
• スケジューラのステージおよびタスクのリスト
• RDDサイズおよびメモリの使用量の概要
• 環境情報
• 実行中のexecutorの情報
14
キャッシュ
• キャッシュ無し4h以上 -> キャッシュ利用 1h程度に短
縮
• DataFrame
• SQL
15
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
16
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
17
参考文献
• 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
18

More Related Content

PDF
Lambda in java_20160121
PPTX
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
PDF
TokyoWebminig カジュアルなHadoop
PPTX
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
PPTX
Glueの開発環境(zeppelin)をrancherで作ってみる
PPTX
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
PDF
re:Growth 2016 in TOKYO発表「AWS Glueの紹介」
PPTX
RDB開発者のためのApache Cassandra データモデリング入門
Lambda in java_20160121
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
TokyoWebminig カジュアルなHadoop
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Glueの開発環境(zeppelin)をrancherで作ってみる
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
re:Growth 2016 in TOKYO発表「AWS Glueの紹介」
RDB開発者のためのApache Cassandra データモデリング入門

What's hot (20)

PDF
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
PDF
Datastax Enterpriseをはじめよう
PDF
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
PDF
Deep Dive into Spark SQL with Advanced Performance Tuning
PDF
20161214 re growth-sapporo
PPTX
Kafkaを活用するためのストリーム処理の基本
PDF
グラフタイプデータの可視化ツールーTom Sawyer
PPTX
事例で学ぶApache Cassandra
PDF
データベースの使い分けを考える
PDF
elasticsearch-hadoopをつかってごにょごにょしてみる
PDF
クラウド運用のためのストリームマイニング
PPTX
Spark Summit 2014 の報告と最近の取り組みについて
PDF
Elasticsearch at Makuake
PDF
利用者主体で行う分析のための分析基盤
PDF
Kafka logをオブジェクトストレージに連携する方法まとめ
PPTX
NoSQLに関するまとめ
PPTX
Rdsを学ぶ
PDF
Reading drill
PDF
Presto As A Service - Treasure DataでのPresto運用事例
PDF
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
Datastax Enterpriseをはじめよう
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Deep Dive into Spark SQL with Advanced Performance Tuning
20161214 re growth-sapporo
Kafkaを活用するためのストリーム処理の基本
グラフタイプデータの可視化ツールーTom Sawyer
事例で学ぶApache Cassandra
データベースの使い分けを考える
elasticsearch-hadoopをつかってごにょごにょしてみる
クラウド運用のためのストリームマイニング
Spark Summit 2014 の報告と最近の取り組みについて
Elasticsearch at Makuake
利用者主体で行う分析のための分析基盤
Kafka logをオブジェクトストレージに連携する方法まとめ
NoSQLに関するまとめ
Rdsを学ぶ
Reading drill
Presto As A Service - Treasure DataでのPresto運用事例
[DI07] あらゆるデータに価値がある! アンチ断捨離ストのための Azure Data Lake
Ad

Similar to Apache Sparkやってみたところ (20)

PDF
20160127三木会 RDB経験者のためのspark
PPTX
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
PDF
Databricks の始め方
PPTX
データ分析基盤として Rancher・k8s で始まるのか調査してみた
PDF
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
PDF
SPARQLアプリケーション開発
PDF
Developers.IO 2019 Effective Datalake
PDF
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
PDF
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
PDF
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
PDF
SparkとCassandraの美味しい関係
PDF
Evolution of Impala #hcj2014
PDF
Spark MLlib code reading ~optimization~
PDF
Yifeng spark-final-public
PPTX
EmbulkとDigdagとデータ分析基盤と
PPTX
EmbulkとDigdagとデータ分析基盤と
PPTX
MLflowで学ぶMLOpsことはじめ
PDF
Configureing analytics system with apache spark and object storage service of...
PDF
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
PPTX
Azure Datalake 大全
20160127三木会 RDB経験者のためのspark
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
Databricks の始め方
データ分析基盤として Rancher・k8s で始まるのか調査してみた
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
SPARQLアプリケーション開発
Developers.IO 2019 Effective Datalake
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
SparkとCassandraの美味しい関係
Evolution of Impala #hcj2014
Spark MLlib code reading ~optimization~
Yifeng spark-final-public
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
MLflowで学ぶMLOpsことはじめ
Configureing analytics system with apache spark and object storage service of...
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
Azure Datalake 大全
Ad

Apache Sparkやってみたところ