0の最大のアップデートとして注目されました。
3つ目のAIに関してもちょうど3年ほど前からHadoop上での連携が進んでおり、現在ではGPUアイソレーションなどのYARNの最新機能を活かし、TensorFlowやPyTorchといったディープラーニングフレームワークを動かす「Submarine」プロジェクトが進行中です。なお、プロジェクト名ついて鯵坂氏は「人間をもっとも深い場所まで連れて行く乗り物(潜水艦)」に由来していると説明しています。
鯵坂氏が挙げた4つのトレンドのうち、ここまで説明した3つ(クラウドストレージ、データ量の増加、AIの流行)に関しては、3年前においても十分予想されていたトレンドであり、Hadoopコミュニティも十分に対応できていたと思われます。しかし、4つめのコンテナ技術の流行、とくにKubernetesの劇的な拡がりは少なくとも3年前の時点では予測が難しかったのではないでしょうか。「現在、Kubernetsが大きく注目を集めているが、HadoopとKubernetesはできることはそれほど変わらないはず。なぜKubernetesだけが流行っているのか、それを考えると(Hadoopプロジェクトで)今後、埋めるべきものが見えてくる」と語っています。
並列分散処理技術として、時代のニーズを取り込みながら進化してきたHadoopですが、今までと異なるフェーズでさらに成長していくためには何が必要なのでしょうか。鯵坂氏は「未来予測は難しいけど、個人的には利用しやすさをさらに高めていきたい」と語っており、具体的な「数年後までの野望」として
- Java 11対応を完了させる
- リリースサイクルの加速
- プロダクトのさらなる分割
を挙げています。Hadoop 3.0ではJava 9対応を完了させましたが、やはりJavaの最新バージョンに対応させることはHadoopプロジェクトにとってもっとも重要なマイルストーンだといえるのかもしれません。
「並列分散処理を取り巻く状況の変化に追従しながら、Hadoopは進化し続けてきた。OzoneやSubmarineなどの新しいプロジェクトも生まれている。これからも進化を続けるHadoopにぜひ期待をしてほしい。コミュニティにはこれまでのコントリビューションにとても感謝しているし、これからのコントリビューションも大歓迎。もっと便利なHadoopをめざしてがんばりましょう」 ―最後にこう講演を結んだ鯵坂氏。Hadoopコミュニティを現役でリードするPMCとして、"もっと便利なHadoop"を作り出すためにさらなる活躍が期待されます。
Sparkに進化をもたらす「4つの存在」
「3年前のカンファレンスの時点ではSpark 2.0のリリース直前だったが、現在(2019年3月)のバージョンはSpark 2.4。この間、10倍の性能向上達成や、新たなストリーム処理エンジンの追加など、Sparkは劇的に進化した」―Hadoopと同様に、Sparkもまた3年前と比較して大きな進化を遂げました。基調講演ではSparkコミッタの猿田浩輔氏(NTTデータ)が「The upcoming Spark 3.0: What's Next」と題したプレゼンを行い、2019年中にリリースされる予定のSpark 3.0の新機能のほか、Sparkに進化をもたらす存在についてフォーカスした説明が行われました。
猿田氏が最初に挙げたSparkに進化をもたらす存在が、"データ活用のトレンド"です。Sparkはデータ活用のトレンドとともに進化を続けているプロジェクトですが、猿田氏は「IoTやアナリティクスなど世の中のトレンドになっているユースケースはSparkでも人気のある用途。2.0以降、データ活用のトレンドに則した機能強化も行われている」と語り、その具体的な例として、
- Structured Streaming
- Pythonからの利便向上
- Pandas UDFやビルトイン関数の拡充
を挙げています。とくにStructured Streamingの人気は高く、本カンファレンスの事前アンケートでは「本番環境で11名が使用中」という結果も出ていました。もっとも同アンケートでもっとも多かったSparkの用途は「バッチ処理/ETL」という結果もあり、「まだ若いコンポーネントであるStructured Streamingがストリーム処理で使われるようになるためには、Structured Streamingの完成度を高めていく必要がある」と猿田氏はコメントしています。
そしてトレンドに合わせて進化してきたSparkが、次なるバージョン3.0でもっともフォーカスする分野がAI/ディープラーニングです。Spark 3.0ではAIワークロードのサポートを強化する「Project Hydrogen」が目玉機能とされていますが、今後はProject Hydrogenの取り組みを中心に、AI分野におけるユースケース拡大をターゲットにしています。
つづいて猿田氏がSparkに進化をもたらす存在として2つ目に挙げたのが"分散コンピューティングのトレンドです。猿田氏はここで、鯵坂氏と同様にKubernetesとの関係性について言及しており、「分散コンピューティングのスタンダードであるHaadoopと連携しながら、Sparkもまたスタンダードを目指して発展してきたが、新たな分散コンピューティングのスタンダードであるKubernetesが登場し、Sparkも2.3からサポートを開始した。Kubernetesと連携する大規模データ処理基板のスタンダードとしての地位を目指し、2.4以降も継続的にブラッシュアップをしている」と語り、Kubernetesとの連携を重要視している姿勢を明らかにしています。
もっとも、現段階ではクラスタマネージャとしてはKubernetesよりもYARNを利用するユーザのほうが圧倒的に多く、事前アンケートでもそうした傾向が伺えます。猿田氏は「おそらく世界的にも似た傾向にあるのでは」としており、しばらくは「Kubernetesのエコシステムの成熟度合いを見ながら、適材適所でプラットフォームを選んでいく必要がある」としています。たとえば「大量の計算資源を必要とする定形バッチを実行する場合と、組織内の計算資源をシェアしてアドホックにアナリティクスジョブやサービスを字移行する場合」とでは適切なプラットフォームが異なってくるため、YARNだけではなく、Kubernetesも視野に入れたプラットフォーム選定が今後は重要になってくるでしょう。
また、Sparkに進化をもたらす3つ目の存在として猿田氏は「ハードウェアの存在」を挙げています。Sparkはバージョン1.5からスタートした「Project Tungsten」でCodegenやベクタライズなどモダンなハードウェアのリソースを"使い切る"改善が行われて話題を呼びましたが、Spark 3.0ではProject Hydrogenの取り組みにおいて、アクセラレータの活用を支援する仕組み「Accelerator Aware Scheduling」が検討されているとのこと。猿田氏は「ハードウェアトレンドが変われば活用の常識も変わる。コミュニティとして現状動きがあるわけではないが、今後はパーシステントメモリなど新しいタイプのハードウェアの普及とともにSparkどう進化するかがポイントになるだろう」と語っており、モダンなハードウェアへのアプローチを続けていく姿勢を示しています。
そしてSparkに進化をもたらす4つ目の存在として挙げられたのが「ユーザ」です。猿田氏はSparkがオープンソースソフトウェアである点をあらためて強調、「誰に対しても開かれ、維持されているコミュニティであり、誰でもさまざまな手段で要望を伝える権利がある。開発に直接参加しなくてもSparkを"つくる"ことができる。運用性やトラブルシューティングなど、プロダクトの使いやすさはユーザにしかわからず、ユーザの声もまたSparkに進化をもたらす」(猿田氏)と語り、幅広いユーザ層からのリクエストがSparkの発展に欠かせないとしています。
トレンド、ハードウェア、そしてユーザとともに成長していくオープンソースプロダクトとして、Hadoopとともに大きな変化を迎えているSpark。さまざまな"存在"に触発されたSpark3.0の登場が待たれます。
バズワード的に持ち上げられた技術は、過度な期待のピークが過ぎると「終わった」と言われるケースがよくあります。Hadoopもそうした傾向が少なからず伺えることは否めません。また、MapReduceが処理エンジンとしての役割を終えたことに加え、パブリッククラウドとクラウドストレージの普及により、オンプレミスの大規模なデータレイク構築が前提だったHadoopが勢いを失ってしまったことも事実でしょう。ClouderaとHortonworksという二大Hadoopベンダが合併したことも、そうした事情が強く影響しています。鯵坂氏や猿田氏が指摘するように、Kubernetesの存在もHadoopにとって小さくないといえます。
しかしそうしたネガティブに捉えられる変化があったとしても、プロダクトをより良くしていこう、コミュニティを発展させていこうと真摯に取り組む開発者やユーザがいる限り、Hadoopのようなプロダクトは"終わる"ことはなく、基盤技術として別のフェーズに向けて成熟していくように思えます。だとすれば、2019年はHadoop/Sparkが本当の意味で、並列分散処理技術のコモデティとなれるかどうかが、試されているのかもしれません。