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.
1
個⼈的に Amazon EMR 5.0.0 で Spark 2.0
を使ってZeppelin で SQL集計 してみる
2016年8⽉ 篠原英治
2
Amazon EMR – 2016年のアップデート
• 1⽉: EMR 4.3.0 – Spark, Presto, Ganglia
• 3⽉: EMR 4.4.0 – Sqoop, HCatalog, Java 8, 他
• 4⽉: EM...
3
Amazon EMR – 5.0.0
• 16のオープンソースのHadoopエコシステムプロジェクトを
サポート
• SparkとHiveのメジャーバージョンアップ
• TezがHiveとPigのデフォルトに
• HueとZeppelinの...
4
Amazon EMR – 5.0.0
5
Amazon EMR – 5.0.0 – Spark 2.0
6
Amazon EMR – 5.0.0 – Spark 2.0.0
7
Spark 2.0 – Machine Learning
• Announcement: DataFrame-based API is primary API
– DataFrame-basedのAPIがプライマリのAPIに
• The M...
8
Spark 2.0 – Machine Learning
• As of Spark 2.0, the RDD-based APIs in the spark.mllib
package have entered maintenance m...
9
Spark 2.0 – Machine Learning
• RDD-based API ⇒ DataFrame-based APIへ
– spark.mllib のサポートは基本的にはバグフィックス
– RDD-based APIには新し...
10
Spark 2.0 – Machine Learning
• なぜDataFrame-based APIか?
– DataFrameはRDDよりユーザーフレンドリーなAPIを提供
• Spark Datasources
• SQL/Dat...
11
Spark 2.0 – Getting Started
• Zeppelinでアクセス
– Security Group で SSH の設定
– SSH で トンネル
12
Spark 2.0 – Getting Started
• Zeppelinでアクセス
– Proxyの設定(FoxyProxy)
13
Spark 2.0 – Getting Started
• Welcome to Zeppelin
14
Spark 2.0 – Getting Started
• Zeppelinでチュートリアルを実⾏
15
Spark 2.0 – Getting Started
• “Spark DataframeのSample Code集”
– http://qiita.com/taka4sato/items/4ab2cf9e941599f1c0ca
16
Spark 2.0 – Getting Started
• ZeppelinでNotebookを作成して実⾏
– とりあえずsc
– S3のデータを読み込んでメモリ上のテーブルへ
val wholeRawLog = sc.textFile...
17
Spark 2.0 – Getting Started
• ZeppelinでNotebookを作成して実⾏
– S3から取り込んだデータをSQLを使って集計
Upcoming SlideShare
Loading in …5
×

個人的にAmazon EMR5.0.0でSpark 2.0を使ってZeppelinでSQL集計してみる

1,722 views

Published on

SparkのDataFrameを試した際の備忘録です。

Published in: Technology
  • Be the first to comment

個人的にAmazon EMR5.0.0でSpark 2.0を使ってZeppelinでSQL集計してみる

  1. 1. 1 個⼈的に Amazon EMR 5.0.0 で Spark 2.0 を使ってZeppelin で SQL集計 してみる 2016年8⽉ 篠原英治
  2. 2. 2 Amazon EMR – 2016年のアップデート • 1⽉: EMR 4.3.0 – Spark, Presto, Ganglia • 3⽉: EMR 4.4.0 – Sqoop, HCatalog, Java 8, 他 • 4⽉: EMR 4.5.0 – Hadoop, Presto, SparkとEMRFS追加 • 4⽉: EMR 4.6.0 – 巨⼤データへのリアルタイムアクセス⽤ に、Hbase • 6⽉: EMR 4.7.0 – Apache Tez, Apache Phoenix, Presto, HBase, Mahout • 8⽉: EMR 5.0.0 - メジャーアップデート! https://aws.amazon.com/jp/blogs/news/amazon-emr-5-0-0-major-app-updates-ui- improvements-better-debugging-and-more/
  3. 3. 3 Amazon EMR – 5.0.0 • 16のオープンソースのHadoopエコシステムプロジェクトを サポート • SparkとHiveのメジャーバージョンアップ • TezがHiveとPigのデフォルトに • HueとZeppelinのUI改善 • デバッグ機能の改良 https://aws.amazon.com/jp/blogs/news/amazon-emr-5-0-0-major-app-updates-ui- improvements-better-debugging-and-more/
  4. 4. 4 Amazon EMR – 5.0.0
  5. 5. 5 Amazon EMR – 5.0.0 – Spark 2.0
  6. 6. 6 Amazon EMR – 5.0.0 – Spark 2.0.0
  7. 7. 7 Spark 2.0 – Machine Learning • Announcement: DataFrame-based API is primary API – DataFrame-basedのAPIがプライマリのAPIに • The MLlib RDD-based API is now in maintenance mode – MLlib RDD-based APIはメンテナンスモードに http://spark.apache.org/docs/latest/ml-guide.html
  8. 8. 8 Spark 2.0 – Machine Learning • As of Spark 2.0, the RDD-based APIs in the spark.mllib package have entered maintenance mode – Spark2.0からspark.mllibパッケージのRDD-based APIは メンテナンスモードに • The primary Machine Learning API for Spark is now the DataFrame-based API in the spark.ml package – Sparkにおけるプライマリな機械学習APIはspark.mlパッ ケージのDataFrame-based APIに http://spark.apache.org/docs/latest/ml-guide.html
  9. 9. 9 Spark 2.0 – Machine Learning • RDD-based API ⇒ DataFrame-based APIへ – spark.mllib のサポートは基本的にはバグフィックス – RDD-based APIには新しい機能追加は⾏わない – Spark 2.xのリリースでMLlibはDataFrame-based APIに 機能追加を⾏い、RDD-based APIに追いつく – DataFrame-based APIがRDD-based APIに追いついたら (おおよそSpark 2.2)、RDD-based APIはdeprecatedに – RDD-based APIはSpark 3.0で削除予定 http://spark.apache.org/docs/latest/ml-guide.html
  10. 10. 10 Spark 2.0 – Machine Learning • なぜDataFrame-based APIか? – DataFrameはRDDよりユーザーフレンドリーなAPIを提供 • Spark Datasources • SQL/DataFrame queries • Tungsten and Catalyst optimizations • ⾔語によらない統合されたAPI – DataFrame-based API for Mllibは機械学習アルゴリズム及び ⾔語によらない統合されたAPIを提供する – DataFrameは実践的なfeature transformations(tokenize, normalize, n-gram等)といった機械学習パイプラインを提供 http://spark.apache.org/docs/latest/ml-guide.html
  11. 11. 11 Spark 2.0 – Getting Started • Zeppelinでアクセス – Security Group で SSH の設定 – SSH で トンネル
  12. 12. 12 Spark 2.0 – Getting Started • Zeppelinでアクセス – Proxyの設定(FoxyProxy)
  13. 13. 13 Spark 2.0 – Getting Started • Welcome to Zeppelin
  14. 14. 14 Spark 2.0 – Getting Started • Zeppelinでチュートリアルを実⾏
  15. 15. 15 Spark 2.0 – Getting Started • “Spark DataframeのSample Code集” – http://qiita.com/taka4sato/items/4ab2cf9e941599f1c0ca
  16. 16. 16 Spark 2.0 – Getting Started • ZeppelinでNotebookを作成して実⾏ – とりあえずsc – S3のデータを読み込んでメモリ上のテーブルへ val wholeRawLog = sc.textFile("s3n://try-spark-eshinoha/click_data_sample.csv") val header = wholeRawLog.first() case class Click(clickAt: String, userId: String, campaignId: String) val click = wholeRawLog.map(s=>s.split(",")).filter(s=>s(0)!=""click.at"").map( s=>Click(s(0).replaceAll(""", ""), s(1).replaceAll(""", ""), s(2).replaceAll(""", "") )).toDF() click.registerTempTable("click") Scalaに慣れてなくて⽇付型の扱いとかアレで全部Stringでスミマセン…汗
  17. 17. 17 Spark 2.0 – Getting Started • ZeppelinでNotebookを作成して実⾏ – S3から取り込んだデータをSQLを使って集計

×