Hadoopは誰が開発しているのか(2013年)

この投稿は @hamaken によるHadoop Advent Calendar 2013の18日目の記事です。

このエントリでは、Hadoop が誰の手によって開発されているのか・・・を紹介します。

これまでに Hortonworks や Cloudera によって Hadoop に貢献したコード量などの集計が紹介されてきました*1。しかし、2011年を最後に新しいデータが出てきていないので、2013年はどうだったのかなー、と思い集計してみました。

集計作業は @ajis_ka さんに協力してもらいました。ありがとうごさいます!

■ 集計方法

皆さん、ご存じのとおり Apache Hadoop の開発は JIRA を中心に進められています*2。新機能も、バグ修正も、JIRA の Issue として登録・管理されるのが原則です。
今回の集計では、Hadoopの主要コンポーネントHADOOPHDFSMAPREDUCE、YARN)の Issue の assignee の名前とメールアドレスを抽出、また Gitログから各 Issue ごとのコミット日時、変更行数を抽出しています。その上で、コミット時刻が2013年のものに絞り、メールアドレスの @ 以降をもとにグループ化して、組織ごとの Issue件数、コード量 のランキングを作ってみました*3

Hadoopへの貢献ランキング(Issue件数)

登録された Issue は全部で 1855 件で、10件以上となったのは次のとおりでした。

組織 issue 数
1 Hortonworks 677
2 Cloudera 349
3 yahoo-inc 139
4 Microsoft 82
5 Grid Dynamics 44
6 NTT & NTTDATA 31
7 Huawei 28
8 VMware 21

やはり、Hadoopを専業にしている Hortonworks や Cloudera、Hadoopの開発を始めた Yahoo! が相当数を担っているのが見て取れます。一方で、Hadoopディストリビューションも提供している MapR、IntelIBM、Pivotalは貢献されているものの、あまり目立たないなぁーという印象です。個人的には、想像していたよりも Microsoft が多かったな、と。
また、NTT & NTTDATA は31件で6位という状況でした*4

Hadoopへの貢献ランキング(コード量)

コード量は全部で554,538行で、500行以上を挙げると次のとおりです。

組織 コード量(行数)
1 Hortonworks 252539
2 Cloudera 99596
3 Grid Dynamics 24765
4 yahoo-inc 24643
5 Mirantis 14457
6 Microsoft 4096
7 syncsort 3928
8 VMware 3038
9 Huawei 1264
10 NTT & NTTDATA 1227
11 GoPivotal 917
12 WANdisco 703

順位はおおよそ Issue 件数と同様の並びです。約半数を Hortonworks が占めています。ちょっと面白いのは Issue 件数では10件未満だった Mirantis が第5位で 14457 行のコードを変更しています。実は、これは1件の Issue で OpenStack Swift 対応のコードを大量に追加するという HADOOP-8545: Filesystem Implementation for OpenStack Swift によるものです。

NTT & NTTDATA は、Issue件数 では 6位 でしたが、コード量では 10位 という状況です。Hadoopの構築や運用、Hadoopサポートサービスの業務で得たノウハウや課題をできる範囲でフィードバックしているつもりですが、もうすこし頑張らねばなーと思うところです。10位といっても、絶対量だと上位5社に圧倒されていますし・・・

ちなみに、NTT & NTTDATA の貢献者は次のメンバですね*5

NTT および NTTデータ がどのようにHadoopに関わっているかは、Clodera World Tokyo 2013の時の小沢さん(@oza_x86)のプレゼン資料でおわかり頂けると思います(Hadoopコミュニティでの活動という観点では、NTTもNTTデータも協力して活動を進めています)。

■ 最後に

なんとなく、自分達の活動の振り返りみたいになってしまいましたが、2013年にどの組織の開発者が Hadoop に貢献したのか、おわかり頂けたのではないでしょうか。まだ、2013年は続いてますので(笑)、ここでのデータは2013年12月9日までのものです。年が明けて機会があれば、最終的なものもご紹介したいと思います。

2014年は、NTT & NTTデータ でより多く貢献できるように取り組みを進めていきたいと思います。今のところ、日本からの貢献はさほど多くないように見えますので、皆さんもぜひご参加ください!

次回は @pioho07 ですね。お楽しみに!

*1:記事 "Reality Check: Contributions to Apache Hadoop" や "The Community Effect" をご覧ください

*2:たとえばここ

*3:この手のものは集計方法によって結果が変わります。たとえば、今回の集計ではapache.org, gmail.com, ymail.comは除外しており、ここをLinkedInなどと照合して所属組織を突き止めれば、結果が変わるかもしれません。またassignee以外の人もパッチで貢献している可能性もあります。

*4:Issueは大きな機能開発もちょっとしたバグフィックスも同様に1件としてカウントされていて、多くは細かい話だったりしますが。

*5:SqoopやZooKeeperなども含めればもっといますが・・・

CDH5ベータ1のドキュメントを確認してみた

10月29日に発表された Cloudera's Distribution including Apache Hadoop (CDH5) のベータ1のドキュメントをざっと見てみたので、気になった点を挙げてみる。細かいレベルではいろいろあるけど、大きいところ&気になったところを。

あくまで、ベータ1時点での情報なので、正式リリースされる時には変更になっている可能性があります。ベータ1→ベータ2→・・・と経て、2014年3月の正式リリースを目指しているようです。

全体

  • 主なバージョンは Hadoop 2.2.0、Hive 0.11.0、Pig-0.11、ZooKeeper 3.4.5、HBase 0.95.2、Sqoop 1.4.4、Sqoop2 1.99.2、FlumeNG 1.4.0、Impala 1.2.0
  • ClouderaはYARNの利用を推奨。"now production-ready"とのこと(CDH4ではMRv1が推奨されていた)
  • MRv1も提供。ただしAPIに変更があるため、CDH4からの移行では、MRアプリケーションのリコンパイルが必要
  • Oracle JDK 1.7をサポート。1.6はサポートされない。Clouderaは1.7.0_25でテスト
  • OSは(Clouderaかテストしているのは)RHEL/CentOS 5.7/6.2/6.4、SLES 11SP1、Ubuntu 10.04/12.04、Debian Squeeze (6.0.3)。これ以降も使えるだろうと。

HDFS関連

  • RW/RO snapshots
  • NFSv3 interface
  • failover and retry in WebHdfsFileSystem for NN HA
  • HADOOP-10020: Disable symlinks temporarily. まぁ、そうだよなぁ... シンボリックリンクは今のところ信用ならない感じ
  • HDFS-4451: HDFS balancer command returns exit code 1 on success instead of 0. ちと確認が必要かな...

MapReduce 2.0 (YARN) 関連

  • ResourceManager HA
  • Monitoring and enforcing memory and CPU-based resource utilization using cgroups

Hive関連

  • LEAD/LAG/FIRST/LAST
  • DECIMAL型
  • ALTER VIEW AS SELECT
  • 移行にはmetastore schemaのアップグレードが必要。schematoolという新ツールが同梱されるので、これでアップグレードすることが推奨
  • metastoreにPostgreSQL 9.0以降を使うとデフォルト設定では起動しないらしい。standard_conforming_strings が on になったことが原因らしい。Supported Databasesは8.4らしい。

アップグレード関連

  • CDH4からアップグレードは、CDH4アンインストール → CDH5インストール。CDH4が入った状態でのアップグレードはサポートされない
  • CDH3からはCDH4を経てからアップグレードする必要がある

詳細や正確な情報はCloudera社が公開している「CDH 5 Beta 1 Documentation」から確認できます。