Weitere ähnliche Inhalte
Ähnlich wie Sparkコミュニティに飛び込もう!(Spark Meetup Tokyo 2015 講演資料、NTTデータ 猿田 浩輔) (20)
Mehr von NTT DATA OSS Professional Services (18)
Sparkコミュニティに飛び込もう!(Spark Meetup Tokyo 2015 講演資料、NTTデータ 猿田 浩輔)
- 1. Copyright © 2015 NTT DATA Corporation
株式会社NTTデータ 基盤システム事業本部
OSSプロフェッショナルサービス
猿田 浩輔
Sparkコミュニティに飛び込もう!
2015/09/09
Spark Meetup 2015
- 2. 2Copyright © 2015 NTT DATA Corporation
猿田 浩輔(さるた こうすけ)
株式会社NTTデータ所属
HadoopやSparkなど、OSSの分散処理基盤を専門としてシステ
ム構築や技術検証、テクニカルサポートを行っている
Sparkのコミュニティ活動も嗜む程度に
自己紹介
こういったものを作っておりました。
- 6. 6Copyright © 2015 NTT DATA Corporation
うわっ・・・日本人少なすぎ
メーリングリストにもほとんど現れない
- たまにいると目立つレベル(ごめんなさい、私もメーリングリ
ストにはあまり現れないです)
コミュニティ活動していてふと思うこと
- 7. 7Copyright © 2015 NTT DATA Corporation
うわっ・・・日本人少なすぎ
メーリングリストにもほとんど現れない
- たまにいると目立つレベル(ごめんなさい、私もメーリングリ
ストにはあまり現れないです)
石を投げれば当たるのは欧米人かインド人か中国人
- Databricks
- UC Berkeley
- Cloudera
- Intel China
- Huawei
- ・・・
コミュニティ活動していてふと思うこと
- 8. 8Copyright © 2015 NTT DATA Corporation
最近は日本人の絶対数は少ないが、ちょっとし
た変化もみられる
最近はちょっと傾向が変わってきた?
- 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. 10Copyright © 2015 NTT DATA Corporation
興味を持ち始めた人が増えてきている様子
最近はちょっと傾向が変わってきた?
申し込み人数300人越え・・・だと・・・?
- 11. 11Copyright © 2015 NTT DATA Corporation
日本でSparkを使っている人たち、これから使おうとしている人た
ちに、もっとSparkコミュニティと双方向で関わってほしい!
コミュニティと積極的に関わることで、有益な情報が得られる(か
も?)
自分たちが使うものをよりよく育てよう
日本人の感覚(品質とか細かい部分の作りこみ)をSparkの改善に活かし
てほしい
- 安定性、運用のしやすさや、いざという時のトラブルシュートのしやすさなど
コミュニティに向かって声を上げないと伝わらない
- 必要なものは必要だと伝えることが大事
日本でSparkが盛り上がっていることや、ユーザが増えてきている
ことをアピール
日本でSparkが盛り上がっていることが知られると、大きめのイベントの開
催や外タレの誘致もできるかも・・・?
今日のおはなし
- 12. 12Copyright © 2015 NTT DATA Corporation
でも、パッチを投稿しようにもコードとか書けないし・・・。
ドキュメントの修正やブラッシュアップのパッチならコードが書けなくても大丈夫
パッチを投稿する以外にも貢献の仕方がある!
やりとりは英語なんでしょ?
そのとおり・・・。でも大丈夫。意外と通じる!
マサカリとか飛んでくるんじゃないかと・・・
コードレビューでおびただしい指摘を受けることもあるが、紳士的にコードやアプ
ローチの良し悪しについての指摘に閉じている
そうは言っても参加の敷居が高いのでは?
- 13. 13Copyright © 2015 NTT DATA Corporation
コミュニティに参加 / 貢献する方法はパッチ投稿だけじゃない!
メーリングリストで人助け / 情報交換
テストパートナー
Issue登録(バグ報告 / 機能追加提案 / 改善提案)
- 自分たちでパッチを書かなくても、登録するだけでもよい
- 声を上げることが大事(ただし機能追加や改善提案の場合は必然性もセットで)
パッチのレビュー
もちろん、パッチの投稿も歓迎!
- バグ修正
- 機能追加
- ドキュメントの修正 / 充実化
- 他人のパッチをレビューする形で参加するのもOK
貢献の仕方について、細かい話はここに書いてある
https://cwiki.apache.org/confluence/display/SPARK/Contributing+to
+Spark
コミュニティへの参加/貢献の仕方もいろいろ
- 14. 14Copyright © 2015 NTT DATA Corporation
秘蔵のパッチを適用し続けたSpark(だけではなくOSS全般)を運
用し続けるメリットはあまりない
Sparkのメインストリームから乖離する
- それ、全部自分たちで保守し続けるんですか?
– 秘蔵パッチを当てたバイナリでトラブルが起こっても、コミュニティの人たちは面倒見て
くれない・・・
- マージコンフリクトだらけでバージョンアップが困難になる
– いつのまにかバージョンアップ不能なほどつぎはぎだらけに・・・
パッチの品質
- 場当たり的なパッチ (当面の問題は解決しているが、別の部分に悪影響をもた
らしているかも・・・?)
- コミッタを含む、コミュニティの人たちからレビューを受けたほうが良い
パッチがマージされるとリリースノートにクレジットされる
そのパッチ、コミュニティに還元してください!
- 16. 16Copyright © 2015 NTT DATA Corporation
Sparkのメーリングリストは2種類
user@spark.apache.org
- ユーザ向け。
- ユーザ同士の情報交換に利用する
- 一般的な議論やトラブル発生時の質問、Spark関係の宣伝などはこちら
dev@spark.apache.org
- 開発者向け(コミッタ以外の開発者も)
- リリースに関する情報などが流れる
- 開発者が留意すべきメンテナンス方針や開発方針がアナウンスされる
- パッチを投稿する人は購読したほうが良い
- あとはJenkinsがダウンしてる情報のアナウンスとか・・・
メーリングリストの活用
- 17. 17Copyright © 2015 NTT DATA Corporation
Sparkコミュニティではリリース前のQA期間(要するに試験期間)に、
実際のクラスタで現実的なワークロードを走らせてテストしてくれる
パートナーを募っている
テストパートナーはリリースノートにクレジットされる!
テストパートナーの申し出はdev@spark.apache.orgで表明すれば
よいはず・・・。
リリースに関わるスケジュールはこちらで確認できる
https://cwiki.apache.org/confluence/display/SPARK/Wiki+Homepage
テストパートナー
- 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. 20Copyright © 2015 NTT DATA Corporation
SparkはJIRAでIssueトラッキングを行っている
ページ上部のCreateボタンを押してバグ報告のフォーム
を開く
Issue登録にはJIRAにユーザ登録が必要なので注意
Issue登録
- 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. 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. 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でプルリクエストを投稿する際の注意
- 25. 25Copyright © 2015 NTT DATA Corporation
メーリングリストやJIRA/GitHub上での議論は英語だが、意外と
簡単な英語でも通じる!
私も英語は苦手ですが、なんとか(?)やれています・・・。
語順と時制が合っていれば大体通じる
時制の間違いも、特に混乱をきたさない場合は大体空気を読んでくれる
複雑なことを説明する際無理に長い文章にせず、箇条書きに
すると伝わりやすい
他人が使っているフレーズをまねるのもよし
GitHubや上での議論やメーリングリストでのやりとり
もし自分の理解が怪しい時には、素直に確認すればOK
You mean ~ right? (~ってこと?)
とはいえ、英語上達の努力を怠ってはいけない・・・
英語でのコミュニケーション
- 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. 27Copyright © 2015 NTT DATA Corporation
JIRA / GitHubに質問を投稿する(意外とある)
「そういうのはuser@spark.apache.orgに投稿しようね」とたしなめられる
いきなりでかいパッチを投稿する
レビューする人も大変
実効上影響のない変更を加えるパッチを投稿する(意外とある)
例えば変数名のタイポや無駄なimport文の除去など・・・
ユーザの目に触れるものなので、ドキュメントのタイポ修正は歓迎!
他人を罵倒する
例)こんな○○コード書きやがって、とか
そういうのが許される(黙認される)のは某OSのあの人だけ
粗悪なコードを憎んで人を憎まず。客観的に、コードのどの部分がどうよくな
いのか、どう修正した方が良いのか指摘するとOK
Sparkコミュニティではあまり見たことない
コミュニティでやらないほうがよいこと
- 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. 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様主催のイベントも
日本でもちょいちょいイベントが増えてきた
- 32. 32Copyright © 2015 NTT DATA Corporation
一ユーザの枠を超えて、双方向でSparkコミュニティと関わろう
コミュニティに貢献する方法はパッチ投稿だけじゃない
コードが書ける人はパッチ投稿も大歓迎
"秘蔵のパッチ"はやめたほうが良い
ドキュメントの修正ならコード書けなくてもOK
英語のコミュニケーションも意外と敷居は高くない
イベントに参加することで最新動向をウォッチするとともに開発者
たちと直接話ができる
まとめ
- 34. 34Copyright © 2015 NTT DATA Corporation
集約処理実行時やシャッフル時のピークのメモリ使用量が
表示されるようになった
SPARK-8735
WebUIのアップデート
- 35. 35Copyright © 2015 NTT DATA Corporation
SQL/HiveQLで記述したクエリや、
DataFrame APIを経由して生成され
た実行計画が可視化された
Spark SQLを使用したアプリケーショ
ンのデバッグがしやすくなる
SPARK-8856, SPARK-8862
WebUIのアップデート
- 36. 36Copyright © 2015 NTT DATA Corporation
内部で使用されているUnsafe API
ベースのデータ構造やアルゴリズムの
改良がわんさか
多すぎて紹介しきれないので
JIRAを参照
https://issues.apache.org/jira/
browse/SPARK-7075
Tungstenがデフォルトで有効になった
Tungsten
- 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. 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