Más contenido relacionado
Más de NTT DATA OSS Professional Services (13)
5分で身に付く! Apache Hadoop開発 (Hadoop / Spark Conference Japan 2016 ライトニングトーク発表資料)
- 1. Copyright © 2016 NTT DATA Corporation
2016/2/8
NTTデータ
鯵坂 明
5分で身に付く!
Apache Hadoopの開発
Hadoop Conference Japan 2016
ライトニングトーク
- 2. 2Copyright © 2016 NTT DATA Corporation
Hadoopの開発者を増やしたい!
パッチを書く敷居は思っているほど高くない、と伝えたい
まえがき
- 3. 3Copyright © 2016 NTT DATA Corporation
大事なことは、ほぼすべてここに書いてある
https://wiki.apache.org/hadoop/HowToContribute
ビルド用環境構築
パッチの作成方法
パッチの名付け方
JIRAの使い方
(最も重要なこと) 公式のWikiを読もう
- 4. 4Copyright © 2016 NTT DATA Corporation
Apache Software FoundationのJIRAにユーザ登録する
https://issues.apache.org/jira
取り組めそうなIssueを探す
Label: "newbie" が初心者向け (ただし、そうでないものもある)
クエリ:
もしくは、自分でチケットを作成する
ASF JIRAを使う
https://issues.apache.org/jira/issues/?jql=project%20in%20(HADOOP%2C%20H
DFS%2C%20MAPREDUCE%2C%20YARN)%20AND%20status%20%3D%20Open%20AND%20labels
%20%3D%20newbie%20AND%20assignee%20in%20(EMPTY)
- 5. 5Copyright © 2016 NTT DATA Corporation
チケットを作る
ここを押して
チケットを作成
必要な項目を埋める。
全部埋める必要はない。
Fix Version/sは
埋めてはいけない。
- 6. 6Copyright © 2016 NTT DATA Corporation
ソースコードをクローンする
好きなIDEを使う
IntelliJ IDEAの場合
- File -> New -> Project from Existing Sources -> hadoop/pom.xmlを指定
- Editor -> Code Style -> Java
– Tab size: 2
– Indent: 2
– Continuation indent: 4 (ルールではないが、既存のコードがほぼ全て4なので合わせる)
– Class count to use import with '*': 999 (importを*でまとめこまない)
– Names count to use static import with '*': 999
パッチを作成する
パッチのネーミングは以下を参照
- https://yetus.apache.org/documentation/in-progress/precommit-patchnames/
パッチを書く
$ git clone https://github.com/apache/hadoop.git
$ git diff > HADOOP-XXXX.01.patch
- 7. 7Copyright © 2016 NTT DATA Corporation
More -> Attach Files
Submit Patchを押して"Patch Available"の状態にする
最新の添付ファイルをもとに、Jenkinsのテストが回る
長いと数時間かかる
1日経ってもテストの結果が出ていない場合
- Cancel Patchで"Open"に戻してから再びSubmit Patchで"Patch Available"にする
- ASF Committerは、builds.apache.orgにログインして手動でキックできる
パッチを投稿する
- 8. 8Copyright © 2016 NTT DATA Corporation
自分のパッチと関係ないことも多い
そのときは、"The test failure (is/seems/looks) unrelated to
the patch." 的なことを言おう
Jenkinsに怒られる
Unit testを書け!
テストがこけてるぞ!
ASFのライセンス
ヘッダを付け
忘れてるぞ!
- 9. 9Copyright © 2016 NTT DATA Corporation
レビューコメントに対応する
腕の見せ所ですね
コメントの意味がわからないときは、素直に聞き直そう
コメントが付かないときは?
レビューしてもらいたい人にPingを飛ばす
Bug fixの場合、その原因となる修正をコミットした人
そうでない場合は、修正するコードを前にいじった人
Pingの飛ばし方
[~<committer id>], would you please review my patch?
コミッタ一覧: https://hadoop.apache.org/who.html
レビューしてもらう
"[~名前" と入力すると
サジェストされる
- 10. 10Copyright © 2016 NTT DATA Corporation
コミッタから+1がついたらOK
Hudsonから謎のコメントが付いているが、特に気にしなくてよい
正しくコミットされた証拠
パッチがコミットされる
- 11. 11Copyright © 2016 NTT DATA Corporation
秘蔵のパッチ、抱えこんでいませんか?
メインストリームからの乖離
- 何か起こっても、コミュニティから面倒を見てもらえない
- コンフリクトだらけになる
パッチ自体の品質
- 場当たり的な解になっているかも
- コミュニティでレビューを受けたほうが良い
ぜひ、コミュニティに飛び込んできてください
困ったことがあれば、気軽にご連絡ください
Mail: aajisaka@apache.org
Twitter: @ajis_ka
最後に
- 12. 12Copyright © 2016 NTT DATA Corporation
Sparkコミュニティに飛び込もう!
http://www.slideshare.net/hadoopxnttdata/apache-spark-
commnity-nttdata-sarutak
初めてのHadoopパッチ投稿
http://www.slideshare.net/hadoopconf/how-to-contribute-to-
hadoop
参考資料