Más contenido relacionado
Similar a レベル1エンジニア、最強コミッタに憧れコミュニティ活動を始める ~Apache Spark: 初めてのパッチ編~(Open Source Conference 2022 Online/Osaka 発表資料) (20)
Más de NTT DATA Technology & Innovation (20)
レベル1エンジニア、最強コミッタに憧れコミュニティ活動を始める ~Apache Spark: 初めてのパッチ編~(Open Source Conference 2022 Online/Osaka 発表資料)
- 1. © 2022 NTT DATA Corporation
レベル1エンジニア、最強コミッタに憧れコミュニティ活動を始める
~Apache Spark: 初めてのパッチ編~
2022年1月29日
株式会社NTTデータ 技術開発本部
阿久津 勇斗
- 3. © 2022 NTT DATA Corporation 3
自己紹介
名前:阿久津 勇斗
所属:先進コンピューティング技術センタ
技術テーマ:並列分散処理技術
趣味:旅行、料理、ラーメン屋巡り
好きなもの:ラーメン、お酒
- 4. © 2022 NTT DATA Corporation 4
自己紹介
7月末からSpark Contributorとして活動
これまで10つのパッチがマージされた
- 5. © 2022 NTT DATA Corporation 5
自己紹介
7月末からSpark Contributorとして活動
これまで10つのパッチがマージされた
今回はこのパッチに
ついて話します
- 7. © 2022 NTT DATA Corporation 7
今回のテーマ
Apache Sparkについて
Sparkって?
NTTデータの取り組み
今回採り上げるパッチに関する機能に
ついて
コミュニティ活動
動機
実際の流れ
まとめ
並列分散処理システムについて知識のなかった私が初めてのコミュニティ活動でパッチ投稿し、
パッチがマージされるまでの話です
- 9. © 2022 NTT DATA Corporation 9
Apache Sparkについて
Sparkって?
オープンソースである並列分散処理ミドルウェア
ビッグデータを複数台で構成されるクラスタを用いて現実的な時間
で処理できる
Hadoop(YARN)やKubernetesの上で動かせる
大量のデータセットを
(数100GBs, TBs, PBs...)
- 10. © 2022 NTT DATA Corporation 10
Apache Sparkについて
Sparkって?
オープンソースである並列分散処理ミドルウェア
ビッグデータを複数台で構成されるクラスタを用いて現実的な時間
で処理できる
Hadoop(YARN)やKubernetesの上で動かせる
大量のデータセットを
(数100GBs, TBs, PBs...)
複数台のサーバで構成された
クラスタを用いて
- 11. © 2022 NTT DATA Corporation 11
Apache Sparkについて
Sparkって?
オープンソースである並列分散処理ミドルウェア
ビッグデータを複数台で構成されるクラスタを用いて現実的な時間
で処理できる
Hadoop(YARN)やKubernetesの上で動かせる
大量のデータセットを
(数100GBs, TBs, PBs...)
複数台のサーバで構成された
クラスタを用いて
現実的な時間で処理する
(数十分, 数時間のオーダー)
- 12. © 2022 NTT DATA Corporation 12
Apache Sparkについて
NTTデータの取り組み
これまでに培ってきたHadoopおよびSparkに関する
ノウハウをもとに、コンサルティングから構築・サポート
サービスの提供まで幅広く対応している
Apache Spark PMC Memberが在籍
https://www.nttdata.com/jp/ja/news
/information/2021/083000/
https://group.ntt/jp/topics/2021/08/
30/apachespark.html
- 13. © 2022 NTT DATA Corporation 13
Apache Sparkについて
今回採り上げるパッチに関する機能について
Sparkは起動の際、分散処理という性質上Sparkアプリケーションを動かすクラスタ管理
システムをマスターURLとして指定する必要がある
Hadoopであれば -master YARN
Kubernetesであれば -master k8s://HOST:PORT
今回はこのオプションに一部記載漏れがあったので、その修正を提案した
- 15. © 2022 NTT DATA Corporation 15
しかし・・・
コミュニティ活動
動機
Hadoopクラスタ構築等の経験を通し、
並列分散システム自体への興味が
深まっていった
GitやJiraを利用したOSSのコミュニティ
に興味があった
様々なOSSコミッタがいる部署に配属
された
英語力がそれなりにあるので有効活用
したかった
事前知識
GitHubは小規模チーム開発に利用
していた程度
Jiraは少し使ったことがあるくらい
Scala未経験(Javaはある)
Sparkって…?
- 16. © 2022 NTT DATA Corporation 16
コミュニティ活動 ~初めてのパッチ作成からマージまで~
パッチネタ
Sparkアプリケーション起動に関してのドキュメント内のMaster
一覧にlocal-cluster modeというオプションが載ってない・・・
修正しよう
- 17. © 2022 NTT DATA Corporation 17
コミュニティ活動 ~初めてのパッチ作成からマージまで~
Gitでブランチを切って対象のマークダウンファイルを修正
パッと見大丈夫そう
どうやらドキュメントの修正でもプルリクエストを投げる前にビルドして確認が必要らし
い・・・
ビルドした結果問題なさそう
- 18. © 2022 NTT DATA Corporation 18
コミュニティ活動 ~初めてのパッチ作成からマージまで~
JIRAに投稿してみよう
Apache Sparkコミュニティでは、通常まずJIRAで
Issueを投稿し、その後GitHubで修正の
プルリクエスト(PR)を投げるというプロセスを踏む
タイポの修正等マイナーな変更であれば、
JIRAを使わず直接PRを投げることもある
今回のような小規模な変更ではJIRAへの投稿と
PRはセットで行われるが、大規模な機能追加等
であれば、まずJIRAでIssueを投稿し、
議論を交わした後で名乗りを上げた担当者
(Issue投稿者とは限らない)が修正を行う
- 19. © 2022 NTT DATA Corporation 19
コミュニティ活動 ~初めてのパッチ作成からマージまで~
実際に投稿しようとしたら・・・
黎明期にIssue投稿(2012/10/27)され似たような議論が交わされていたことを発見
修正すると書いてあるものの実際には行われておらず・・・
どうせならこのIssueに紐づけてパッチを投稿してみよう
- 20. © 2022 NTT DATA Corporation 20
コミュニティ活動 ~初めてのパッチ作成からマージまで~
修正し確認も行った変更を自身のGitHubリポジトリにプッシュし、プルリクエストを投げる
GitHubで確認すると、自動的にフォーク元の
本体にプルリクエストを投げる案内が出ている
Sparkプロジェクト独自のテンプレートに
記入し、プルリクエストを投げる
- 21. © 2022 NTT DATA Corporation 21
コミュニティ活動 ~初めてのパッチ作成からマージまで~
コミッタの反応待ち
手付かずのIssueを解決したのでマージされるだろう!
しかし・・・
- 22. © 2022 NTT DATA Corporation 22
コミュニティ活動 ~初めてのパッチ作成からマージまで~
コミッタの反応待ち
手付かずのIssueを解決したのでマージされるだろう!
しかし・・・
コミッタA: このモードは開発者専用だしユーザ向けのドキュメントには載せないでおこう
私: 😭
- 23. © 2022 NTT DATA Corporation 23
コミュニティ活動 ~初めてのパッチ作成からマージまで~
新規Issueおよび別パッチの投稿
local-clusterモード自体はどこかに載せたほうがいいと返信
- 24. © 2022 NTT DATA Corporation 24
コミュニティ活動 ~初めてのパッチ作成からマージまで~
新規Issueおよび別パッチの投稿
local-clusterモード自体はどこかに載せたほうがいいと返信
開発者向けページがあるのでそこに載せるのはどうかと提案し、新規Issueおよび別パッチ
を投稿する
ちなみに開発者向けドキュメントはspark-websiteというリポジトリで管理される
これで解決かと思いきや・・・
- 25. © 2022 NTT DATA Corporation 25
コミュニティ活動 ~初めてのパッチ作成からマージまで~
別コミッタ(複数)の登場
新たに2人のコミッタが参加する
- 26. © 2022 NTT DATA Corporation 26
コミュニティ活動 ~初めてのパッチ作成からマージまで~
別コミッタ(複数)の登場
新たに2人のコミッタが参加する
議論発生
コミッタB: ドキュメントの追加はここじゃなく
メイン(ユーザ向け)のほうがいいんじゃない
かな?
コミッタA: 実は僕が向こうに載せるのは
避けたほうがいいって言ったんだ
コミッタC: どうせユーザは見つけるし既存の
ユーザ向けドキュメントに追加したほうが
いいんじゃない?
- 27. © 2022 NTT DATA Corporation 27
コミュニティ活動 ~初めてのパッチ作成からマージまで~
結局・・・
最初に投稿したパッチの方向性で進めることに
コミッタCさんの後押し
コミッタC: 反対意見があればこっち(開発者向け
ページ)に残すのでも全然いいけど、どうせなら
ユーザに隠すより他のオプションと一緒に記載した
ほうがいいと思う
コミッタA: ちょっと心配もあるけどコミッタB,Cに
従うよ
- 28. © 2022 NTT DATA Corporation 28
コミュニティ活動 ~初めてのパッチ作成からマージまで~
パッチの修正、再投稿
最初のパッチの指摘された部分を編集し、再投稿
反応を待っていると・・・
- 29. © 2022 NTT DATA Corporation 29
コミュニティ活動 ~初めてのパッチ作成からマージまで~
パッチがマージされる
最初の投稿から10日後、ついにマージ!!!
- 31. © 2022 NTT DATA Corporation 31
まとめ
大変だったこと
コミッタ同士の議論
一概にコミッタといっても各々意見があり、議論が始まったときは少し圧倒された
ドキュメントのビルド方法がよくわからなかった
SparkはドキュメントのビルドにJekyllという静的サイトジェネレータを利用している
知識不足によりドキュメントの追加に苦戦
最初はlocal-clusterモードと他のオプションの内部的な違いをよく理解していなかった
時差
米国在住の方も多く、時差のせいで中々話を進められなかった
開発環境の問題
Windows環境での開発でWSLとIntelliJの相性があまりよくなかった
社用特有のプロキシ的な問題(あるある?)によってGit周りで苦戦した
- 32. © 2022 NTT DATA Corporation 32
まとめ
得たこと
初めてのパッチ投稿を通しコミュニティ活動のプロセスの理解
コミュニティ特有のJIRAやGitHubの利用方法について知ることができた
投稿からマージまで毎回スムーズにいくわけではない
最初の投稿で身をもって経験することができた
修正中に偶然パッチネタを発見
現況、今後の目標
現在はSpark SQL、Delta Lakeについて学習・調査をしている
クエリエンジン回りを絶賛勉強中
今後は月4パッチを目標にコミュニティ活動に励んでいきたい
中々いいネタが見つからない…(でもタイポの達人にはなりたくないので頑張る )
- 34. © 2022 NTT DATA Corporation
本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。