Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Apache Sparkやってみたところ

Avatar for Tnishikori Tnishikori
September 09, 2017

Apache Sparkやってみたところ

Apache Sparkやってみての所感とか

Avatar for Tnishikori

Tnishikori

September 09, 2017
Tweet

More Decks by Tnishikori

Other Decks in Technology

Transcript

  1. SQL • SELECT • GROUP BY • ORDER BY •

    数学関数 • 文字関数 • Window関数 • JOIN • UNION • サブクエリ • etc… https://spark.apache.org/docs/latest/sql-programming- guide.html#supported-hive-features 
  2. データソース • Hadoop • s3 • RDBMS • ElasticSearch •

    etc.. Hadoop以外はConnectorを利用する必要がある 
  3. Spark MLlib APIできること • 基本的な統計 • 分類と回帰 • 協調フィルタリング •

    クラスタリング • 次元削除 • 特徴量抽出及び変形 • 頻出パターンマイニング • 評価マトリックス • PMML モデル抽出 https://spark.apache.org/docs/latest/ml-guide.html 
  4. EMRとは • Amazon EMR は、AWS でビッグデータフレームワーク (Apache Hadoop や Apache

    Spark など) の実行を簡素 化して、大量のデータを処理および分析するマネージ ド型クラスタープラットフォーム • S3を始め、AWS上のサービスの連携がデフォルトでつい てくる • 1度構築したクラスタは再利用可能(CLIもアウトプット 可能) 
  5. 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 
  6. キャッシュ • キャッシュ無し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") # キャッシュ廃棄
  7. データロード • s3直接ロード -> s3-dist-cpを利用し、一度クラスタ 内HDFSに移してロード 20min程度短縮 • srcPattern :

    s3のフィルタリング • groupBy : 複数のファイルを結合 • targetSize : groupByにもとづいて作成するファイル のサイズ http://docs.aws.amazon.com/ja_jp/emr/latest/ ReleaseGuide/UsingEMR_s3distcp.html 
  8. 参考文献 • 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