Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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プラス...
SQL
• SELECT
• GROUP BY
• ORDER BY
• 数学関数
• 文字関数
• Window関数
• JOIN
• UNION
• サブクエリ
• etc…
https://spark.apache.org/docs/la...
データソース
• Hadoop
• s3
• RDBMS
• ElasticSearch
• etc..
Hadoop以外はConnectorを利用する必要がある
6
Spark MLlib(ML)
7
Spark MLlib
• 機械学習ライブラリ
• MLlib : RDDベース(メンテナンスモードに入ったよう
で機能追加は今後は行っていかない)
• ML : DataFrameベース(今後こちらが主流になってい
く)
8
Spark MLlib APIできること
• 基本的な統計
• 分類と回帰
• 協調フィルタリング
• クラスタリング
• 次元削除
• 特徴量抽出及び変形
• 頻出パターンマイニング
• 評価マトリックス
• PMML モデル抽出
https...
Amazon EMR
10
EMRとは
• Amazon EMR は、AWS でビッグデータフレームワーク
(Apache Hadoop や Apache Spark など) の実行を簡素
化して、大量のデータを処理および分析するマネージ
ド型クラスタープラットフォーム
...
EMR Command Runner
• EMRクラスタのインスタンス内に`command-runner.jar`
が置かれ、これを利用してステップを追加していく
• spark-submit : Sparkアプリケーションの実行
• s3-d...
Apache Spark Tuning
13
WebUI
• WebUIでは以下のような項目が確認できるので、パフォー
マンスネックになっている箇所の特定などに利用する
と良さそう
• スケジューラのステージおよびタスクのリスト
• RDDサイズおよびメモリの使用量の概要
• 環境情報
•...
キャッシュ
• キャッシュ無し4h以上 -> キャッシュ利用 1h程度に短
縮
• DataFrame
• SQL
15
df.cache() # キャッシュ利用
df.is_cached # キャッシュ確認
df.unpersist() # ...
データロード
• s3直接ロード -> s3-dist-cpを利用し、一度クラスタ
内HDFSに移してロード 20min程度短縮
• srcPattern : s3のフィルタリング
• groupBy : 複数のファイルを結合
• target...
Sparkの設定
• spark.executor.meory、spark.executor.cores、
spark.dynamicAllocation.enabledについてはEMR側でデ
フォルトで設定されるので、EMRに任せておいて良さ...
参考文献
• Apache Spark SQLリファレンス

http://x1.inkenkun.com/archives/1114
• Apache Spark MLlibのレコメンドアルゴリズムを使う

http://kazz.hateb...
Upcoming SlideShare
Loading in …5
×

Apache Sparkやってみたところ

653 views

Published on

Apache Sparkをやってみた感じどんなものか綴ってます

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Apache Sparkやってみたところ

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

×