SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

「中の人」が教える! OSSを“Apache”ブランドに育てるApache Incubatorのしくみとは?

Hivemall開発者に聞く! Incubator入りまでの道のりと今後について

 弊社オフィスから近所ということもあり(笑)、実際にトレジャーデータへおうかがいし、Hivemallのリードコミッターである油井さんに Incubator 入りの経緯や開発状況についてお話をうかがいました。

トレジャーデータ株式会社 プリンシパルエンジニア 博士(工学) 油井 誠 さん
トレジャーデータ株式会社 プリンシパルエンジニア 博士(工学) 油井 誠 さん

Apache Hivemall について

ロンウイット関口:Hivemallについて簡単に教えていただけますか。

トレジャーデータ油井:Hadoopエコシステム(Hive, Spark, Pig)で動作する大規模な機械学習処理を実現できるライブラリで、 SQLを利用して機械学習を実行できるApacheのOSSプロダクトです。現在はHive以外にSpark, Pigでも動作しますが、Hiveのユーザー定義関数のしくみを使っているため Hive MAchine Learning Libraryから頭文字をとってHivemallと名付けました。同種のML on SQLプロダクトとしてはBigQuery ML(BigQuery用)やApache Madlib(Postrges用)があります。

Apache Incubator 加入の経緯

関口:Apache Incubator加入への経緯についてお聞かせください。

油井:HivemallをIncubatorに提案しようと思ったのは、2014年のHadoop SummitでHivemallを発表した際に、HortonworksのHive/Tez開発者に声をかけてもらったのがきっかけです。 その際に、「Incubatorに提案してみたらどうか」とのアドバイスをいただきました。HivemallはApache Hive, Pig, Spark上で動作するASFプロダクトと親和性の高いプロジェクトなので、チャンピオンを見つけたら問題なく、Acceptされるだろうとのことでした。

関口:重要なチャンピオンですが、どのように見つけましたか。

油井Roman ShaposhnikがHivemallのチャンピオンですが、彼は弊社のVP of Technologyの太田の知り合いということで、太田から紹介してもらいました。太田はHadoop as a serviceスタートアップをシリコンバレーで起業していましたから業界関係者に顔が利きます。

関口:Roman ShaposhnikさんはASFの理事ですね。

油井:はい。チャンピオンをお願いした時は、彼はIPMCの前Chairでした。

関口:メンター探しはいかがですか。

油井:メンターはPPMCのNTT山室君(現Spark Committer)やHadoop PMCメンバーの小沢君、そして 私のHortonworksの知り合いのツテをたどって探しました。小沢君のツテを頼ってLinkedInに技術を売り込みにプレゼンに行ったこともあります。

 DanielはPigのPMC chairでHivemallのPig上でのサポートをテストしていたので、私から Initial committer(=PPMC)兼メンターとしてプロジェクトへの参加をお願いしました。最終的には、Daniel(Hotornworks所属、Pig/Hadoopの主要開発者)、Reynold(Databricks所属、Sparkの主要開発者)、Xiangrui Meng(Databricks所属のMLlibの主要開発者)、Markus(マイクロソフト所属、Apache Reefの主要開発者)の4名に初期メンターになっていただきました。

 メンターは仕事の関係でASF活動を続けられなくなることもあり、興味の対象も移っていくので、 鉄は熱いうちに打てではないですが、アクティブに活動して早い段階でTLP昇格を目指すのが良いと思います。実際は、仕事の関係で途中、アクティブに活動できない期間があって間延びしてしまいました。

関口:では、スポンサーはいかがでしょうか。

油井:IPMCにスポンサーになっていただきました。チャンピオンのRoman Shaposhnikが前IPMC Chairでしたのでスムーズでした。 気づかないところでRomanが事前にIPMCに根回ししてくれたのかもしれません。

関口:実はスポンサーの実体がよくわかっていませんでした。チャンピオンがいるのに、さらにスポンサーが必要なのかという……。

油井:基本的に、Incubator入りするプロジェクトはIPMCがスポンサーになることがほとんどで、それほど気にすることではないと思います。RomanにProposalのドラフトをレビューしてもらって、修正したのちIncubatorへ提案を行いました。

 個人的な意見ですが、通常、IPMCに所属するチャンピオンが面倒を見るので、スポンサーについてはあまり重要視されていないと思います。何よりもチャンピオンにASFのプロセスに長けた人になってもらうことが重要です。

関口:トレジャーデータさんが普段から OSS コミュニティ活動を行っており、それによって人のネットワークができ、そんなバックグラウンドのおかげで良いチャンピオンに恵まれてスムーズに提案からAcceptまで行けたことがわかりました。そうすると、油井さん自身は特にコミュニティに根回し的なことはしなかったのですね。

油井:私個人としてはチャンピオンとメンター探し、Hadoop Summit等での対外アピール以外、特に根回しはしておりません。ProposalはチャンピオンのRomanからメーリングリストに投稿してもらいました。彼からの提案ということもあり、非常にスムーズに行きました

 基本的にはチャンピオンさえ見つけることができ、Proposal内容がASFの他のプロジェクトと競合せず、ライセンス面の問題がなければAcceptされると思います。もちろん、プロジェクト自体が有望であることも必要です。また、組織横断の開発体制などは築く必要はあります。

単にオープンソースであるだけでは企業では使いづらい〜 Apache ブランドの意味

関口:ASF入りして何か変わりましたか。メリットはありますか。

油井:メリットは、ASFプロダクトとしてのネームバリュー、開発者からの信頼です。ASFのプロダクトは『Apache流(Apache way)』に沿った透明性のあるガバナンス、meritocracy(実力主義による開発体制)が行われているので特定企業による支配の心配も少なく、開発者から信頼されていると思います。

 単にオープンソースであるだけでは、知的財産の問題や保守がいつまでされるのか不明であるため企業では使いづらいし、自分でも商用製品に利用するのは躊躇します。ASFプロジェクトとしてはこれまでにApache HTTP Server、Tomcat、Lucene/Solr、Hadoop、Spark、Kafka等の多くの優れたソフトウェアが生まれました。Spark, KafkaもApacheの冠がなければ今ほど広く利用されることはなかったと思います。

 Databricksが主導するSparkや、Confluentが開発するKafkaは特定企業による企業支配色が強い問題も出てきておりますが、 Apache流(透明性のあるプロジェクト運営や実力主義)からズレた時には適宜ASFメンバーが指摘して修正しているはずです。企業としてもApacheの冠を外すことでマーケティング的なデメリットや開発者の離反があるので従うしかありません。

 他にもCNCFEclipse Foundationなどもオープンソースプロジェクトが運用されていますが、ASFプロダクトほど開発者からの信任はまだ受けていないと思います。

関口:デメリットはありますでしょうか。

油井:デメリットは、良くも悪くもASFの手続き面の制約を受けるということです。 Incubatorを卒業するにはアクティブなメンターを探すことが不可欠となりますが、大企業でASFメンバーの知り合いがいる場合を除いて骨の折れる根回しが時には必要になりますし、その点は今でも苦労があります。Incubator projectには定期的にプロジェクト運営レポートを提出することも求められます。

 Apacheでプロジェクトを円滑に運営するために、ASFメンバーを雇用する企業(Pivotalなど)もあると聞きます。弊社のFluentdはより企業統治に関するプロジェクトガバナンスに関して制約が低く手間の少ないCNCFをインキュベーション先に選びました。

OSS 活動の業務に占める割合

関口:ASF は組織がしっかりしている分、手続き面が面倒だということはたしかにありますからね。油井さんの会社の業務とOSS活動のバランスはとれているのでしょうか。

油井:当初は自分1人だったので機械学習のお客様へのコンサルティング業務をしたり、営業ミーティングへの参加など、会社の業務に多く時間を割いていました。現在、機械学習チームは私を含めて3名体制になったことで、今では他のメンバーに機械学習の応用アプリケーションの開発やコンサルティング業務を担当してもらって、私自身はHivemallの開発および、トレジャーデータでのサービス化にフォーカスすることができております。

 Hivemallの開発に関して、現在の会社にはさまざまな面で支えてもらっております。トレジャーデータのファウンダーの3人ともOSS活動には理解のある人達です。IoTサービスグループ データビジネス担当VP(元CEO)の芳川はRedhatでOSS事業経験がありますし、VPoE(元CTO)の太田はKDEの開発やHadoopユーザー会の立ち上げをした経験があります。古橋はFluentdやMessagePack、Embulk、Digdagなど多数の優れたオープンソースプロダクトを生み出した天才ハッカーです。感覚としては最大7割程度、ASFプロダクトしてのHivemallの開発に集中することができています。

TLP 入りを目指して

関口:"Community over Code"を標榜するASFでは何より、活発なコミュニティを大事にしています。Hivemallコミュニティをより活性化するにはどうすればいいでしょうか。

油井:Apache SparkやApache Kafkaなど、Apache Hive以外のプロダクトとの連携についても強化していきたいと考えています。特にApache Kafkaは近年、注目度が益々上がっておりますので、KSQLへの対応などを考慮に入れています。Kafka関係のASFメンバーを仲間につけると共に、こうした取り組みによりユーザーの裾野を増やしていきたいと考えています。また、継続的に海外のカンファレンスなどでアピール活動を行うことで認知度を高めていきたいと考えています。

関口:わかりました。私もこのような記事執筆することも含めて、Hivemallのユーザーの裾野を広げるよう可能な範囲でお手伝いできればと思います。Incubator 入りしたプロジェクトは TLP 入りに向けて『卒業』を目指すわけですが、どのようなイメージを持っていますか。

油井:Incubator卒業に関してはできれば2019年、遅くても2020年の3月までにはしたいです。TLP入りに関しては、Hiveの開発者から提案されたことがあるのですが、Hiveのサブプロジェクトとして卒業させるという選択肢も考えられます。しかし、Apache Spark/Pigでの実行もサポートしていることや、リリース管理の自由度から、独立したTLPプロジェクトとして卒業させたいと考えています。

 現在、2回目のIncubator リリースの準備をしている最中ですが、あと、来年中に1~2回程度のリリースをして、TLPへの昇格を申請したいですね。TLPに昇格した場合には、Hivemallが既存のHadoopディストリビューションやAmazon EMR/Azure HDInsightで採用される可能もありますので、そうなるように頑張っていきたいです。

Apache Incubator 入りを目指す OSS プロジェクトへ

関口:Incubatorへの提案を見ると、最近中国発のOSSが目立っています。

油井China Contributionというスレッドで議論を呼びましたが、中国のBaidu、Alibaba、Tencent、Huaweiなどを中心に多数のIncubator Proposalが提出されています。新規に提案されるIncubatorプロジェクトの過半数が中国発であるという印象で、ソフトウェアの世界もアメリカ1強ではなくなっているのかという印象を受けます(Alibaba発のRocketMQ、DubboやIoTDBなど)。

 例えば、Dubboなどを見てもGitHubのスター数が2万2千を超えていてApache Spark以上のスター数です。英語圏ではメジャーではなくても中国では独自のソフトウェアエコシステムがあるようです。また、韓国からは数は多くはないですが、Apache TajoなどTLP入りしたプロジェクトもあります。

関口:日本に目を向けると、OSSを個人で開発している人、企業で開発しているOSSなど、たくさんの優れたOSSがあります。その中にはHivemallのように、Incubator入りを目指したい個人/団体もあると思います。後に続く方に一言お願いできますか。

油井:世界中で使われるソフトウェアとなるためにはオープンなコミュニティ運営が不可欠で、ASF入りは考慮に入れても良い選択肢かと思います。日本からもRubyやMessagePack、Fluentd、H2O等の優れたソフトウェアが開発されておりますが、CNCF入りしたFluentdと、自らFoundationを作ったRubyを除くと、真のオープンソースソフトウェアが少ないと思います。

 ASFメンバーへのコネクションや英語のコミュニケーションの壁が大きいのだと思いますが、これまでにASF入りしたプロジェクトが1つもなかったのが不思議なところです。ASFのプロセスについてのノウハウや理解が十分に培われていないのが原因かと思いますので、先駆者として後続のプロジェクトでお手伝いできることがあれば協力していきたいと考えております。まずは自分のプロジェクトのTLP入りをさせる必要がありますが。

関口:Hadoopエコシステムを中心に、日本人のASFコミッターやPMCメンバーも徐々に増えてまいりました。今後はApacheCon Japanや、日本が難しければApacheCon Asiaなど、そんなことができればいいなと私も考えています。

今後の目標

関口:今後の目標、やりたいことをお聞かせください。

油井:近い目標としてはApache KafkaのKSQLのサポート、中・長期的には Apache Hadoopエコシステムと切り離したスタンドアロンのライブラリとして、Java/Kotlin/Scala等のプログラムからHivemallを利用できるようにしたいと考えております。

 スタンドアロン実行を考えているのは、Intel OptaneやWD NVMe SSDなどを通じて、テラバイト近いメモリを(仮想記憶を通じて)利用できる環境も現実的に利用できるようになってきたためで、機械学習に関しては分散から集約へ回帰していくのではないかという読みがあります。

 他にもNumpy/Scipyのような行列・数値計算のライブラリでJVMスタック向けで標準と呼ばれるようなものはないので、そういったものを整備してみたいなどやりたいことはありますが、今はブレずに、まずHivemallをTLPに昇格させることに集中したいと考えております。

 実際にIncubator入りを果たした油井さんに話を聞くことで、私自身、Incubator周りのよくわからなかった細部まで理解が進みました。本稿の最後に、Roman Shaposhnikさんが紹介するApache Incubatorのスライドを参考までに掲載します。

 これを読んでHivemallに興味が湧いた方は、ぜひコミュニティに参加(メーリングリスト登録)してみてください。今後の動向に要注目です!

関連リンク

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
特集記事連載記事一覧

もっと読む

この記事の著者

関口 宏司(セキグチ コウジ)

株式会社ロンウイット創業者兼社長。Apache Lucene/Solr と OpenNLP のコミッターおよび PMC メンバーを務める。Apache Lucene/Solr/Ant などの著書、監修本あり。ブログツイッターで情報検索や自然言語処理に関する情報発信を行う。趣味は散歩と読書で、休日は文庫本を持って東京神田〜丸の内〜皇居周辺などをうろうろしている。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11292 2018/12/21 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー