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.

Sparkコミュニティに飛び込もう!(Spark Meetup Tokyo 2015 講演資料、NTTデータ 猿田 浩輔)

9,825 views

Published on

Spark Meetup Tokyo 2015 (2015/9/9) 講演資料
「Sparkコミュニティに飛び込もう!」

NTTデータ (NTT DATA) 基盤システム事業本部
OSSプロフェッショナルサービス
猿田 浩輔 (Apache Sparkコミッタ、主要開発者)
http://oss.nttdata.co.jp/hadoop/

Published in: Technology
  • Be the first to comment

Sparkコミュニティに飛び込もう!(Spark Meetup Tokyo 2015 講演資料、NTTデータ 猿田 浩輔)

  1. 1. Copyright © 2015 NTT DATA Corporation 株式会社NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス 猿田 浩輔 Sparkコミュニティに飛び込もう! 2015/09/09 Spark Meetup 2015
  2. 2. 2Copyright © 2015 NTT DATA Corporation  猿田 浩輔(さるた こうすけ)  株式会社NTTデータ所属  HadoopやSparkなど、OSSの分散処理基盤を専門としてシステ ム構築や技術検証、テクニカルサポートを行っている  Sparkのコミュニティ活動も嗜む程度に 自己紹介 こういったものを作っておりました。
  3. 3. 3Copyright © 2015 NTT DATA Corporation  こちらをお買い求めください 今日は「Sparkとは?」的な話はしません!
  4. 4. 4Copyright © 2015 NTT DATA Corporation コミュニティ活動していてふと思うこと
  5. 5. 5Copyright © 2015 NTT DATA Corporation うわっ・・・日本人少なすぎ コミュニティ活動していてふと思うこと
  6. 6. 6Copyright © 2015 NTT DATA Corporation うわっ・・・日本人少なすぎ メーリングリストにもほとんど現れない - たまにいると目立つレベル(ごめんなさい、私もメーリングリ ストにはあまり現れないです) コミュニティ活動していてふと思うこと
  7. 7. 7Copyright © 2015 NTT DATA Corporation うわっ・・・日本人少なすぎ メーリングリストにもほとんど現れない - たまにいると目立つレベル(ごめんなさい、私もメーリングリ ストにはあまり現れないです) 石を投げれば当たるのは欧米人かインド人か中国人 - Databricks - UC Berkeley - Cloudera - Intel China - Huawei - ・・・ コミュニティ活動していてふと思うこと
  8. 8. 8Copyright © 2015 NTT DATA Corporation 最近は日本人の絶対数は少ないが、ちょっとし た変化もみられる 最近はちょっと傾向が変わってきた?
  9. 9. 9Copyright © 2015 NTT DATA Corporation 最近は日本人の絶対数は少ないが、ちょっとし た変化もみられる パッチを投稿する人は少し増えた 最近はちょっと傾向が変わってきた? Sparkのバージョン 日本人 総数 日本人の比率 Spark 1.0.0 (2014年5月) 2人 117人 1.7% Spark 1.4.0 (2015年6月) 10人 232人 4.3% パッチがマージされた人たち
  10. 10. 10Copyright © 2015 NTT DATA Corporation 興味を持ち始めた人が増えてきている様子 最近はちょっと傾向が変わってきた? 申し込み人数300人越え・・・だと・・・?
  11. 11. 11Copyright © 2015 NTT DATA Corporation  日本でSparkを使っている人たち、これから使おうとしている人た ちに、もっとSparkコミュニティと双方向で関わってほしい!  コミュニティと積極的に関わることで、有益な情報が得られる(か も?)  自分たちが使うものをよりよく育てよう  日本人の感覚(品質とか細かい部分の作りこみ)をSparkの改善に活かし てほしい - 安定性、運用のしやすさや、いざという時のトラブルシュートのしやすさなど  コミュニティに向かって声を上げないと伝わらない - 必要なものは必要だと伝えることが大事  日本でSparkが盛り上がっていることや、ユーザが増えてきている ことをアピール  日本でSparkが盛り上がっていることが知られると、大きめのイベントの開 催や外タレの誘致もできるかも・・・? 今日のおはなし
  12. 12. 12Copyright © 2015 NTT DATA Corporation  でも、パッチを投稿しようにもコードとか書けないし・・・。  ドキュメントの修正やブラッシュアップのパッチならコードが書けなくても大丈夫  パッチを投稿する以外にも貢献の仕方がある!  やりとりは英語なんでしょ?  そのとおり・・・。でも大丈夫。意外と通じる!  マサカリとか飛んでくるんじゃないかと・・・  コードレビューでおびただしい指摘を受けることもあるが、紳士的にコードやアプ ローチの良し悪しについての指摘に閉じている そうは言っても参加の敷居が高いのでは?
  13. 13. 13Copyright © 2015 NTT DATA Corporation  コミュニティに参加 / 貢献する方法はパッチ投稿だけじゃない!  メーリングリストで人助け / 情報交換  テストパートナー  Issue登録(バグ報告 / 機能追加提案 / 改善提案) - 自分たちでパッチを書かなくても、登録するだけでもよい - 声を上げることが大事(ただし機能追加や改善提案の場合は必然性もセットで)  パッチのレビュー  もちろん、パッチの投稿も歓迎! - バグ修正 - 機能追加 - ドキュメントの修正 / 充実化 - 他人のパッチをレビューする形で参加するのもOK  貢献の仕方について、細かい話はここに書いてある https://cwiki.apache.org/confluence/display/SPARK/Contributing+to +Spark コミュニティへの参加/貢献の仕方もいろいろ
  14. 14. 14Copyright © 2015 NTT DATA Corporation  秘蔵のパッチを適用し続けたSpark(だけではなくOSS全般)を運 用し続けるメリットはあまりない  Sparkのメインストリームから乖離する - それ、全部自分たちで保守し続けるんですか? – 秘蔵パッチを当てたバイナリでトラブルが起こっても、コミュニティの人たちは面倒見て くれない・・・ - マージコンフリクトだらけでバージョンアップが困難になる – いつのまにかバージョンアップ不能なほどつぎはぎだらけに・・・  パッチの品質 - 場当たり的なパッチ (当面の問題は解決しているが、別の部分に悪影響をもた らしているかも・・・?) - コミッタを含む、コミュニティの人たちからレビューを受けたほうが良い  パッチがマージされるとリリースノートにクレジットされる そのパッチ、コミュニティに還元してください!
  15. 15. Copyright © 2015 NTT DATA Corporation 15 パッチの投稿だけじゃない! コミュニティへの参加/貢献の仕方
  16. 16. 16Copyright © 2015 NTT DATA Corporation  Sparkのメーリングリストは2種類 user@spark.apache.org - ユーザ向け。 - ユーザ同士の情報交換に利用する - 一般的な議論やトラブル発生時の質問、Spark関係の宣伝などはこちら dev@spark.apache.org - 開発者向け(コミッタ以外の開発者も) - リリースに関する情報などが流れる - 開発者が留意すべきメンテナンス方針や開発方針がアナウンスされる - パッチを投稿する人は購読したほうが良い - あとはJenkinsがダウンしてる情報のアナウンスとか・・・ メーリングリストの活用
  17. 17. 17Copyright © 2015 NTT DATA Corporation  Sparkコミュニティではリリース前のQA期間(要するに試験期間)に、 実際のクラスタで現実的なワークロードを走らせてテストしてくれる パートナーを募っている  テストパートナーはリリースノートにクレジットされる!  テストパートナーの申し出はdev@spark.apache.orgで表明すれば よいはず・・・。  リリースに関わるスケジュールはこちらで確認できる  https://cwiki.apache.org/confluence/display/SPARK/Wiki+Homepage テストパートナー
  18. 18. Copyright © 2015 NTT DATA Corporation 18 Issue登録やパッチを投稿をしてみよう
  19. 19. 19Copyright © 2015 NTT DATA Corporation  Sparkではバグ報告 / 機能追加 / 改善提案(Issue登録)に JIRAを、パッチ(変更差分)の管理にGitHubを利用している  JIRA - https://issues.apache.org/jira/issues/?jql=project%20%3D%20SPARK - 単にバグレポートをする場合はこちら  GitHub - https://github.com/apache/spark - パッチを投稿する場合はこちら。プルリクエストの形でパッチを投稿する - 対応するチケットがJIRAに登録されていない場合は、登録も合わせて行う - JIRA上で対応するチケットにパッチを添付しても見てもらえないので注意 - ただし、デザインノートはJIRAに添付したほうが良い バグ報告 / 機能追加 / 改善提案とパッチの投稿
  20. 20. 20Copyright © 2015 NTT DATA Corporation  SparkはJIRAでIssueトラッキングを行っている  ページ上部のCreateボタンを押してバグ報告のフォーム を開く  Issue登録にはJIRAにユーザ登録が必要なので注意 Issue登録
  21. 21. 21Copyright © 2015 NTT DATA Corporation Issue登録  項目がいろいろありますが、以下の項目を埋め ればOK(ほとんどプルダウンメニュー) ① Project - Sparkになっていること ② Issue Type - バグ/新機能/改善などの分類 ③ Summary - 一目で内容が分かるタイトル ④ Priority - 重要度(Blocker / Critical / Major / Minor / Trivial) ⑤ Component/s - 報告の対象コンポーネント ⑥ Affect Version/s - 報告の対象となるSparkのバージョン ⑦ Environment - OSやJVMなど特定の環境に依存した問題を報告す る場合に記入する ⑧ Description - 詳しい説明 記入を終えたらCreateボタンを押す
  22. 22. 22Copyright © 2015 NTT DATA Corporation  細かい手順は割愛するが、大体以下の手順でプルリクエストを投げる  SparkのGitリポジトリをフォークする(最初の1回でOK)  フォークしたリポジトリを手元の環境にクローン(最初の1回でOK)  トピックブランチを切る(パッチ投稿するたびに実施)  修正してコミット  フォークしたリポジトリにPushするとGitHubのWebUIからプルリクエストが投げられる  テストを通す  投稿されたプルリクエストに対して裏で単体テストが走る。  新規の参加者はプルリクエストを投げても自動的にテストが走らない。コミッタが Jenkinsに命令してテストを走行してくれるのを待つ。  マージ件数が多くなると、コミッタがJenkinsを使役する権利を付与してくれる - やりとりの中で「add to whitelist」と言われたら権限が付与されたことになる - テストが自動的に走行するようになる - 明示的にJenkinsにテストを依頼することができる(Jenkins, retest this please.)  指摘事項に対応する  修正したコードをコミット&Push  コミッタがマージしてもよいと判断し、裏で走行しているテストが通ったら晴れてマージ GitHubでプルリクエストの投稿からマージまで
  23. 23. 23Copyright © 2015 NTT DATA Corporation  タイトルのつけ方に注意  対応するJIRAのチケット番号を含める - タイトル名はJIRAからコピーでOK  関連するコンポーネントのタグをつける - JIRA上の対応するチケットに登録されているコンポーネント名でOK - CORE - WEBUI - DOCS - STREAMING - ・・・  作業中のパッチを投稿する場合は(WIP)をつけるのがマナー  例) (WIP)[SPARK-XXXX][WEBUI]Timeline View should provide more helpful information  Descriptionはちゃんと書く  git logの結果に残るため いろいろお作法がありますが、間違えていたらコミュニティの人が教えてくれます・・・。 お作法について詳しくは↓ https://cwiki.apache.org/confluence/display/SPARK/Contributing+to+Spark GitHubでプルリクエストを投稿する際の注意
  24. 24. Copyright © 2015 NTT DATA Corporation 24 コミュニケーション / コミュニティでのふるまい方
  25. 25. 25Copyright © 2015 NTT DATA Corporation  メーリングリストやJIRA/GitHub上での議論は英語だが、意外と 簡単な英語でも通じる!  私も英語は苦手ですが、なんとか(?)やれています・・・。  語順と時制が合っていれば大体通じる  時制の間違いも、特に混乱をきたさない場合は大体空気を読んでくれる  複雑なことを説明する際無理に長い文章にせず、箇条書きに すると伝わりやすい  他人が使っているフレーズをまねるのもよし  GitHubや上での議論やメーリングリストでのやりとり  もし自分の理解が怪しい時には、素直に確認すればOK  You mean ~ right? (~ってこと?)  とはいえ、英語上達の努力を怠ってはいけない・・・ 英語でのコミュニケーション
  26. 26. 26Copyright © 2015 NTT DATA Corporation 略語 元々の表現 意味 シチュエーション LGTM / SGTM Looks / Seems good to me よさそうです パッチやアイディアな どについてのコメント。 主にレビュアーやコ ミッタが使う IMO / IMHO In my (humble) opinion 私の考えでは~ 議論の中で使われる。 意見が対立した時な ど FYI For your information 補足情報など AFAIK As far as I know 知る限り~ わりとどこでも BTW By the way ところで 話題転換 a.k.a Also known as ~としても知られて います わりとどこでも (余談)GitHubやJIRA上でよく見かける略語 更に知りたい方はこちら (Spark界隈ではお目にかかったことが無いものもありますが・・・) http://qiita.com/uasi/items/86c3a09d17792ab62dfe
  27. 27. 27Copyright © 2015 NTT DATA Corporation  JIRA / GitHubに質問を投稿する(意外とある)  「そういうのはuser@spark.apache.orgに投稿しようね」とたしなめられる  いきなりでかいパッチを投稿する  レビューする人も大変  実効上影響のない変更を加えるパッチを投稿する(意外とある)  例えば変数名のタイポや無駄なimport文の除去など・・・  ユーザの目に触れるものなので、ドキュメントのタイポ修正は歓迎!  他人を罵倒する  例)こんな○○コード書きやがって、とか  そういうのが許される(黙認される)のは某OSのあの人だけ  粗悪なコードを憎んで人を憎まず。客観的に、コードのどの部分がどうよくな いのか、どう修正した方が良いのか指摘するとOK  Sparkコミュニティではあまり見たことない コミュニティでやらないほうがよいこと
  28. 28. Copyright © 2015 NTT DATA Corporation 28 イベントに参加しよう
  29. 29. 29Copyright © 2015 NTT DATA Corporation  Sparkコミュニティ最大のイベント  世界中の開発者やユーザや開発者が一堂に会して、ユースケース や最新動向などが発表される  西海岸だけでなく、東海岸、ヨーロッパでも開催される  Spark Summit 2013 (2013年12月@サンフランシスコ)  Spark Summit 2014 (2014年6月 @ サンフランシスコ)  Spark Summit East 2015 (2015年3月 @ ニューヨーク)  Spark Summit 2015 (2015年6月 @ サンフランシスコ)  Spark Summit Europe 2015 (2015年10月 @ アムステルダム) <- NEW!  Spark Summit East 2016 (2016年2月 @ ニューヨーク) <- 多分  F2Fで開発者と議論やコネクションづくりができる機会でもある  主要な開発者は大体参加している  メールでアポを取るのが望ましいが、その辺うろうろしていたら立ち話も できるはず  割と大きめの機能追加などを考えているのであれば、F2Fだと話が速かったり Spark Summit
  30. 30. 30Copyright © 2015 NTT DATA Corporation  Hadoopソースコードリーディング(不定期開催)  Hadoopと言いつつ、実態はOSS分散処理基盤のMeetup  ソースコードリーディングとは名ばかりなので、敷居は高くない - もちろん、ソースコードリーディングもOK  1週間くらい前にTwitterか何かで開催が告知される  Tokyo Spark Meetup(不定期開催)  7月にSpark Streamingネタで第1回が開催された  http://www.meetup.com/Tokyo-Spark-Meetup/  Hadoop Conference Japan(平均年1回くらいのペース)  Hadoopと言いつつ、Spark関連のセッションも盛り込まれた  昨年開催のHadoop Conference JapanではSparkコミュニティのPatrick氏 による基調講演が行われた  もちろん、Cloudera様主催のイベントも 日本でもちょいちょいイベントが増えてきた
  31. 31. 31Copyright © 2015 NTT DATA Corporation そうそう、イベントと言えばですね
  32. 32. 32Copyright © 2015 NTT DATA Corporation  一ユーザの枠を超えて、双方向でSparkコミュニティと関わろう  コミュニティに貢献する方法はパッチ投稿だけじゃない  コードが書ける人はパッチ投稿も大歓迎  "秘蔵のパッチ"はやめたほうが良い  ドキュメントの修正ならコード書けなくてもOK  英語のコミュニケーションも意外と敷居は高くない  イベントに参加することで最新動向をウォッチするとともに開発者 たちと直接話ができる まとめ
  33. 33. Copyright © 2015 NTT DATA Corporation 33 ちょっとだけSpark 1.5のアップデート情報
  34. 34. 34Copyright © 2015 NTT DATA Corporation  集約処理実行時やシャッフル時のピークのメモリ使用量が 表示されるようになった  SPARK-8735 WebUIのアップデート
  35. 35. 35Copyright © 2015 NTT DATA Corporation  SQL/HiveQLで記述したクエリや、 DataFrame APIを経由して生成され た実行計画が可視化された  Spark SQLを使用したアプリケーショ ンのデバッグがしやすくなる  SPARK-8856, SPARK-8862 WebUIのアップデート
  36. 36. 36Copyright © 2015 NTT DATA Corporation  内部で使用されているUnsafe API ベースのデータ構造やアルゴリズムの 改良がわんさか  多すぎて紹介しきれないので JIRAを参照  https://issues.apache.org/jira/ browse/SPARK-7075  Tungstenがデフォルトで有効になった Tungsten
  37. 37. 37Copyright © 2015 NTT DATA Corporation  Spark SQLでコードの自動生成が有効になった  SPARK-7956, SPARK-7814  コード生成系を従来のQuasiquotesからJaninoに変えたことでコンパイルス ピードがアップしたため  Spark Streamingに待望のバックプレッシャー機能が実装された  SPARK-7398  ML Pipelineがサポートするアルゴリズムの増強  KMeans(SPARK-7879)  ナイーブベイズ(SPARK-8600)  Bisecting KMeans (SPARK-6517)  多層パーセプトロン(SPARK-2352)  重み付き線形モデル (SPARK-7685) エコシステムのアップデート
  38. 38. Copyright © 2011 NTT DATA Corporation Copyright © 2015 NTT DATA Corporation お問い合わせ先: 株式会社NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス URL: http://oss.nttdata.co.jp/hadoop/ メール: hadoop@kits.nttdata.co.jp TEL: 050-5546-2496

×