SlideShare a Scribd company logo
初めての Hadoopパッチ投稿 
How to Contribute to Hadoop 
Cloudera World Tokyo 2014 LT 大山真実
自己紹介 
大山真実 おおやま まさのり 
某SIerでHadoopと戯れています 
入社3年目 Hadoopソースコードリーディングの お手伝いとかやってます
その0 はじめにやること
まずはこのドキュメントを読みましょう↓ 
「How to Contribute to Hadoop Common」 
http://wiki.apache.org/hadoop/ 
•環境構築からビルド、パッチの投稿まで全部 説明されてます
• 
これからパッチ投稿までの大まかな流れを紹 介します、が、細かい点は前述のドキュメント を確認して下さい。 
• 
初心者向けのTipsを中心に紹介します。 
まずは公式ドキュメントに目を通しましょう! 
Tipsその1
※ Mac + IntelliJを対象 
その1 Hadoop開発環境の準備
Git を Get! 
• 
gitをインストールしましょう 
• 
インストール方法は省略 
• 
日本語の情報も豊富なのでググってお好み の方法でインストールして下さい
Hadoopプロジェクトをgit clone 
• 
かなり時間かかります! 
• 
古い情報に注意! ❌ git://github.com/apache/hadoop-common.git →ブログなどの情報は参考程度に 
$ git clone git://git.apache.org/hadoop.git 
※ git://github.com /apache/hadoop.git のほうが早いとの噂 
まずは公式ドキュメントに目を通しましょう! 
Tipsその1 
大事なことなので二度言います!
ビルド環境構築 
• 
git clone してきたHadoopプロジェクト内の BUILDING.txtを読みましょう! #Windows向けのビルド方法も書いてあります。
ビルドに必要なもの 
• 
MacではHomebrewでインストールできます http://brew.sh/index_ja.html 
Requirements: 
* Unix System 
* JDK 1.6+ 
* Maven 3.0 or later 
* Findbugs 1.3.9 (if running findbugs) 
* ProtocolBuffer 2.5.0 
* CMake 2.6 or newer (if compiling native code), must be 3.0 or newer on Mac 
* Zlib devel (if compiling native code) 
* openssl devel ( if compiling native hadoop-pipes ) 
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)
• 
必要なProtocolBufferのバーションは2.5.0 「Homebrewでバージョンを指定してインストールする」 http://qiita.com/tamasally/items/a7bc7eca85bbc70dda49 →brew install protobufだと2.6がインストールされビルドできません。 
• 
zlibのインストール方法に注意(Macのみ) dupesリポジトリを作成してからインストールする必要があります。 $ brew tap homebrew/dupes $ brew install zlib https://github.com/Homebrew/homebrew-dupes 
ProtocolBufferのバージョンに注意! 
Tipsその2
Hadoopをビルドしてみよう! 
$ mvn package -Pdist -DskipTests -Dtar 
オプションの説明などはBUILDING.txtに書いてあります! 
ビルド失敗しても慌てない! 
落ち着いてエラーメッセージを読みましょう! 
Tipsその3 
• 
必要なソフトウェアは全部インストールされていますか? 
• 
環境変数の設定忘れてませんか? 
• 
MavenのOOMエラーで失敗してませんか? export MAVEN_OPTS="-Xms256m -Xmx512m"
IntelliJにインポート 
• 
省略します。 
• 
初めての人にはこちらが参考になります。 「How-to: Create an IntelliJ IDEA Project for Apache Hadoop」 http://blog.cloudera.com/blog/2014/06/how-to-create-an-intellij-idea- project-for-apache-hadoop/ git clone元が古い情報になっているので注意
IntelliJのCode Styleの設定を変更しましょう 
Tipsその4 
• 
インデントの設定は2 アプリケーションメニュー>IntelliJ IDEA>preference>Code Style>Java>Tabs and Indents Tab size → 2 Indent 2 → 2 
• 
importで同じパッケージをまとめない アプリケーションメニュー>IntelliJ IDEA>preference>Code Style>Java>Imports Class count to use import with '*' → 99
その2 初心者向けチケットの探し方
JIRA登録 
• 
HadoopはASF ( apache software foundation ) のJIRAで管理しています https://issues.apache.org/jira/browse/HADOOP/ 
• 
まずはJIRAのアカウントを作成しちゃいましょ う!
初心者向けチケットを探す 
• 
初心者向けチケットはnewbieというラベルで 分類されています。 
• 
newbieの中でもドキュメント関連は比較的取 り組みやすいです。 
newbieチケットに取り組んでみましょう! 
Tipsその5
• 
「More」に「label」と入力するとlabelで検索できるように なります。 projects : Hadoop common, Hadoop HDFS, Hadoop Map/Reduce, Hadoop YARN statuses : OPEN Users/Groups : Unassigned Label : newbie
ブランチ作成 
• 
取り組むチケットが決まったらブランチを作成しま しょう! 
• 
trunkに移動 $ git checkout trunk 
• 
trunkからチケット番号名のブランチ作成 $ git branch チケット番号(例えばHDFS-99999) 
• 
ブランチに移動 $ git checkout チケット番号
Gitについて 
• 
Gitに詳しくない人は一番ハマるところな気がしま すが、今回は省略させて下さい。 
• 
基本的には 「Git and Hadoop」 http://wiki.apache.org/hadoop/GitAndHadoop を見ていただければ大丈夫だと思います。
コードをいじる 
• 
「How to Contribute to Hadoop Common」 をよく読んでコーディング 
• 
ドキュメントの場合 
– 
APTフォーマットで書く http://maven.apache.org/doxia/references/apt- format.html 
– 
1行80文字まで制限に注意! http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-136091.html#313
パッチ作成 
• 
コードの追加修正が終わったらパッチ作成 $ git diff --no-prefix trunk > HDFS-99999-1.patch 
• 
無事パッチ作成できました!やったね!
その3 パッチの投稿方法
パッチをアップロード
コメントを書く 
最初は 
I attached patch. 
とかで大丈夫!(たぶん)
Submit Patchをクリック
Submit Patchをクリック 
よくわからなければ何も書かないで大丈夫! 
# 気づいた人が直してくれます!(たぶん)
コミュニティメンバのコメント 
• 
コミッタはじめ色々な人が“優しく”コメントして くれます。 
• 
間違いを指摘されたら直しましょう! 
• 
コミットされるまでのルールは下記参照 http://hadoop.apache.org/bylaws.html
OSSコミュニティ特有?の略語に注意! 
Tipsその6 
• 
+1:賛成!(コミットするに一票!) 
• 
−1:反対! 
• 
LGTM:Looks good to me:いいね! 
• 
+1(non-binding): (コミッタじゃないけど…)賛成! 
• 
参考 http://qiita.com/uasi/items/86c3a09d17792ab62dfe
まとめ
ぜひ!Hadoopコミュニティに参加して Hadoopに関するあなたの 
・ちょっとここ不便だなぁ 
・このドキュメントはわかりにくいよね 
・バグだーーー! 
といった、いろいろな”気付き”をコミュニティに 還元してください!
ありがとうございました! 
皆様も本日は1日大変お疲れ様でした!

More Related Content

Viewers also liked (20)

PDF
Hive Tools in NHN Japan #hadoopreading
SATOSHI TAGOMORI
 
PDF
The Evolution and Future of Hadoop Storage (Hadoop Conference Japan 2016キーノート...
Hadoop / Spark Conference Japan
 
PDF
Apache Kudu Fast Analytics on Fast Data (Hadoop / Spark Conference Japan 2016...
Hadoop / Spark Conference Japan
 
PDF
PostgreSQL 9.5 CPU Read Scalability
Ohyama Masanori
 
PDF
State of the art Stream Processing #hadoopreading
Yahoo!デベロッパーネットワーク
 
PPTX
Protecting Enterprise Data In Apache Hadoop
DataWorks Summit/Hadoop Summit
 
PDF
Path to 400M Members: LinkedIn’s Data Powered Journey
DataWorks Summit/Hadoop Summit
 
PPTX
Evolving HDFS to a Generalized Distributed Storage Subsystem
DataWorks Summit/Hadoop Summit
 
PDF
Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...
Hadoop / Spark Conference Japan
 
PDF
Hadoop / Spark Conference Japan 2016 ご挨拶・Hadoopを取り巻く環境
Hadoop / Spark Conference Japan
 
PDF
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
Hadoop / Spark Conference Japan
 
PPTX
Apache NiFi 1.0 in Nutshell
DataWorks Summit/Hadoop Summit
 
PPTX
Streamline Hadoop DevOps with Apache Ambari
DataWorks Summit/Hadoop Summit
 
PPTX
Major advancements in Apache Hive towards full support of SQL compliance
DataWorks Summit/Hadoop Summit
 
PPTX
To The Cloud and Back: A Look At Hybrid Analytics
DataWorks Summit/Hadoop Summit
 
PPTX
Apache Phoenix and HBase: Past, Present and Future of SQL over HBase
DataWorks Summit/Hadoop Summit
 
PPTX
Network for the Large-scale Hadoop cluster at Yahoo! JAPAN
DataWorks Summit/Hadoop Summit
 
PPTX
Using Hadoop to build a Data Quality Service for both real-time and batch data
DataWorks Summit/Hadoop Summit
 
PPTX
Enabling Apache Zeppelin and Spark for Data Science in the Enterprise
DataWorks Summit/Hadoop Summit
 
PPTX
Rebuilding Web Tracking Infrastructure for Scale
DataWorks Summit/Hadoop Summit
 
Hive Tools in NHN Japan #hadoopreading
SATOSHI TAGOMORI
 
The Evolution and Future of Hadoop Storage (Hadoop Conference Japan 2016キーノート...
Hadoop / Spark Conference Japan
 
Apache Kudu Fast Analytics on Fast Data (Hadoop / Spark Conference Japan 2016...
Hadoop / Spark Conference Japan
 
PostgreSQL 9.5 CPU Read Scalability
Ohyama Masanori
 
State of the art Stream Processing #hadoopreading
Yahoo!デベロッパーネットワーク
 
Protecting Enterprise Data In Apache Hadoop
DataWorks Summit/Hadoop Summit
 
Path to 400M Members: LinkedIn’s Data Powered Journey
DataWorks Summit/Hadoop Summit
 
Evolving HDFS to a Generalized Distributed Storage Subsystem
DataWorks Summit/Hadoop Summit
 
Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...
Hadoop / Spark Conference Japan
 
Hadoop / Spark Conference Japan 2016 ご挨拶・Hadoopを取り巻く環境
Hadoop / Spark Conference Japan
 
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
Hadoop / Spark Conference Japan
 
Apache NiFi 1.0 in Nutshell
DataWorks Summit/Hadoop Summit
 
Streamline Hadoop DevOps with Apache Ambari
DataWorks Summit/Hadoop Summit
 
Major advancements in Apache Hive towards full support of SQL compliance
DataWorks Summit/Hadoop Summit
 
To The Cloud and Back: A Look At Hybrid Analytics
DataWorks Summit/Hadoop Summit
 
Apache Phoenix and HBase: Past, Present and Future of SQL over HBase
DataWorks Summit/Hadoop Summit
 
Network for the Large-scale Hadoop cluster at Yahoo! JAPAN
DataWorks Summit/Hadoop Summit
 
Using Hadoop to build a Data Quality Service for both real-time and batch data
DataWorks Summit/Hadoop Summit
 
Enabling Apache Zeppelin and Spark for Data Science in the Enterprise
DataWorks Summit/Hadoop Summit
 
Rebuilding Web Tracking Infrastructure for Scale
DataWorks Summit/Hadoop Summit
 

Similar to 初めてのHadoopパッチ投稿 / How to Contribute to Hadoop (Cloudera World Tokyo 2014 LT講演資料) (16)

PPT
Hadoop ~Yahoo! JAPANの活用について~
Yahoo!デベロッパーネットワーク
 
PDF
Hadoopデータプラットフォーム #cwt2013
Cloudera Japan
 
PPT
Hadoop~Yahoo! JAPANの活用について~
Yahoo!デベロッパーネットワーク
 
PPTX
A 2-3ゾウ使いへの第一歩 hadoop on azure 編
GoAzure
 
PPTX
ゾウ使いへの第一歩
Fumito Ito
 
PDF
HBase Meetup Tokyo Summer 2015 #hbasejp
Cloudera Japan
 
ODP
Hadoop for programmer
Sho Shimauchi
 
PPTX
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
AdvancedTechNight
 
PDF
Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)
NTT DATA Technology & Innovation
 
PDF
TokyoWebminig カジュアルなHadoop
Teruo Kawasaki
 
PDF
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
Yahoo!デベロッパーネットワーク
 
PDF
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
NTT DATA OSS Professional Services
 
PDF
ただいまHadoop勉強中
Satoshi Noto
 
PPT
はやわかりHadoop
Shinpei Ohtani
 
PDF
Hadoopの概念と基本的知識
Ken SASAKI
 
PDF
ヤフーにおけるHadoop Operations #tdtech
Yahoo!デベロッパーネットワーク
 
Hadoop ~Yahoo! JAPANの活用について~
Yahoo!デベロッパーネットワーク
 
Hadoopデータプラットフォーム #cwt2013
Cloudera Japan
 
Hadoop~Yahoo! JAPANの活用について~
Yahoo!デベロッパーネットワーク
 
A 2-3ゾウ使いへの第一歩 hadoop on azure 編
GoAzure
 
ゾウ使いへの第一歩
Fumito Ito
 
HBase Meetup Tokyo Summer 2015 #hbasejp
Cloudera Japan
 
Hadoop for programmer
Sho Shimauchi
 
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
AdvancedTechNight
 
Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)
NTT DATA Technology & Innovation
 
TokyoWebminig カジュアルなHadoop
Teruo Kawasaki
 
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
Yahoo!デベロッパーネットワーク
 
Hadoopのメンテナンスリリースバージョンをリリースしてみた (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo...
NTT DATA OSS Professional Services
 
ただいまHadoop勉強中
Satoshi Noto
 
はやわかりHadoop
Shinpei Ohtani
 
Hadoopの概念と基本的知識
Ken SASAKI
 
ヤフーにおけるHadoop Operations #tdtech
Yahoo!デベロッパーネットワーク
 
Ad

More from Hadoop / Spark Conference Japan (11)

PPTX
機械学習、グラフ分析、SQLによるサイバー攻撃対策事例(金融業界)
Hadoop / Spark Conference Japan
 
PDF
What makes Apache Spark?
Hadoop / Spark Conference Japan
 
PDF
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
Hadoop / Spark Conference Japan
 
PDF
Hadoop / Spark Conference Japan 2019 ご挨拶・開催にあたって
Hadoop / Spark Conference Japan
 
PDF
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Hadoop / Spark Conference Japan
 
PDF
Spark 2.0 What's Next (Hadoop / Spark Conference Japan 2016 キーノート講演資料)
Hadoop / Spark Conference Japan
 
PDF
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
Hadoop / Spark Conference Japan
 
PDF
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
Hadoop / Spark Conference Japan
 
PDF
Mahoutによるアルツハイマー診断支援へ向けた取り組み (Hadoop Confernce Japan 2014)
Hadoop / Spark Conference Japan
 
PDF
The Future of Apache Spark
Hadoop / Spark Conference Japan
 
PDF
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
Hadoop / Spark Conference Japan
 
機械学習、グラフ分析、SQLによるサイバー攻撃対策事例(金融業界)
Hadoop / Spark Conference Japan
 
What makes Apache Spark?
Hadoop / Spark Conference Japan
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
Hadoop / Spark Conference Japan
 
Hadoop / Spark Conference Japan 2019 ご挨拶・開催にあたって
Hadoop / Spark Conference Japan
 
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Hadoop / Spark Conference Japan
 
Spark 2.0 What's Next (Hadoop / Spark Conference Japan 2016 キーノート講演資料)
Hadoop / Spark Conference Japan
 
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
Hadoop / Spark Conference Japan
 
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
Hadoop / Spark Conference Japan
 
Mahoutによるアルツハイマー診断支援へ向けた取り組み (Hadoop Confernce Japan 2014)
Hadoop / Spark Conference Japan
 
The Future of Apache Spark
Hadoop / Spark Conference Japan
 
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
Hadoop / Spark Conference Japan
 
Ad

Recently uploaded (9)

PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 

初めてのHadoopパッチ投稿 / How to Contribute to Hadoop (Cloudera World Tokyo 2014 LT講演資料)