NTTデータさんのお話について追記しました。
前職でApache Hadoopを触っていた関係で、Hadoop関連の動向には興味があります。 日本Hadoopユーザー会さんの主催で実に3年ぶりとなるカンファレンスが開催されたので行ってきました。
参加レポートというわけではありませんが、印象に残ったことやイベントに参加して思ったことを書き綴っていきます。
分散処理界隈はひとつの変化点にきている
Hadoopは登場から10年以上が経過し、純粋なApache Hadoopの進化だけでなく、 その周辺の様々なプロダクトの登場により色んなユースケースに対応できるようになってきました。 Hadoopの登場から今日に至るまでに、分散処理基盤を取り巻く環境はかなり変化しました。
ハードウェアスペックの進歩
Hadoop登場の背景に、データ量が増加することで、処理前後のディスクI/Oやネットワークがボトルネックになるという課題がありました。 そのため、Hadoopを中心としたシステムではデータローカリティを考慮し、データがある場所で処理をするという思想が常識でした。
現在ではSSDも安価になってきましたし、ネットワークは10Gbpsに対応したNICが登場し、徐々に前提の課題が解消されてきています。 後述のクラウドストレージとの組合せもあり、Hadoopエコシステムでもストレージと計算リソースを分離する流れがきているようです。
クラウドサービスの登場と流行
AWSを初め、クラウドサービスが大流行しています。 Amazon S3やAzure Blob Storageといったクラウドネイティブなストレージの他、 IaaSで構築するHadoopクラスター、HadoopクラスターのPaaSも登場しています。
Keynoteの資料によるとまだまだオンプレミスが強いようですが、この先クラウド化はどんどん進むのではないでしょうか。
機械学習/Deep Learningの流行
AIといえば最近の流行技術の代表格です。 大量のデータを繰り返し処理するというのはHadoopの得意分野ですが、 TensorFlowなど流行の機械学習フレームワークではGPUをガンガン回して計算するのが主流だと思います。
コンテナー技術の流行
Docker、マイクロサービス、Kubernetes(k8s)…これも最近の流行りですよね。 k8sは分散処理基盤としての側面も持っており、登場の経緯や元ネタはHadoopと似ているそうです。 ではなぜ後発のk8sがここまで流行っているのか?ということを考える必要がある、とHadoopコミッターの方が仰っていました。
Sparkは2.3.0からk8sへの対応を始め、2.4.0(3.0?)からは正式にサポートしています。 処理系を必ずしもストレージと一緒にしなくてもよくなった今、k8sは処理基盤のひとつの選択肢となるでしょう。
印象に残った話
印象に残ったお話やトピックを簡単に書き留めておきます。
Hadoopに追加されるプロジェクト
Hadoop 3.2から、サブプロジェクトにオブジェクトストレージのOzoneとディープラーニング実行基盤のSubmarineが追加されます。 Ozoneは正にオンプレミス版のS3といった位置付けで、HDFSが苦手とする領域を補完する存在のようです。 SubmarineはHadoop上でTensorFlowなどを分散実行するための環境です。 YARNが3.xでGPUサポートを開始したので、その流れを汲んだもののようです。
LINEの取り組み
LINEでは運営するサービス毎にHadoopクラスターを抱えており、 サイロ化されたクラスターを横断してデータ分析するためのツールを開発した、という話でした。 まずHadoopはデータ集約と統合が大きなメリットと思っていたので、クラスターをサービス毎に抱えているという方針が驚愕でした。 サービス毎にクラスターを分けた方が、リソース分配とか管理が柔軟にできるそうです。たしかに…。 現在統合されているノード数は500台前後、データ量30PBというのも驚愕。そんなにデータあるんだ…。
で、開発したOASISという分析ツールは年内を目処にOSSとしてリリース予定だそうです。今後の展開は要チェックです。
S3とHDFSの違い
クラウドが流行っているだけあって、特にS3をストレージとする話が多かった印象です。 HDFSは分散ファイルシステムですがS3はブロックストレージでありファイルシステムではありません。 という両者の違いを考慮しなきゃいけないよ、という話がありました。
HDFSは未だ現役であり、S3もあくまでHDFSを補完する存在である、という話が印象的でした。
NTTデータがKafkaをいじめた話
Kafkaで想定される故障事例を実際にやってみて、どんな挙動を見せるか検証するという中々ロックな内容でした。 まず何より、立ち見が出るくらい聴講者がいてびっくりしました。それだけKafkaにみんな注目してるんですね。 Kafkaはシンプルだし頑丈にできてるって話は聞いたことありましたけど、思った以上に頑丈でした。 中々簡単にできない泥臭い検証をやってたのも脱帽でした。
Hadoopは時代遅れの技術なのか?
今日のKeynoteでも言われていましたが、Hadoop(の、MapReduce)はその役目を終えつつあり、 代替となる強力なプロダクトが登場しています。 この辺の話は、元Clouderaの嶋内さんのブログが大変参考になります。
前述の通りHDFSは未だ現役ですし、Hadoopにも新しいサブプロジェクトが追加されるなど、どんどん進化しています。 今後もじわじわと適用領域を広げながら、また色々なプロダクトを仲間にしながら、生きていくのではないでしょうか。
あ、Sparkの話…
Sparkも色々興味深い話があったのですが、入り切らないので割愛します…。 Sparkもどんどん進化しており、開発中の3.0で更に強力なフレームワークとなるようです。 残念ながら次職で使用する機会が今のところ無いのですが、個人的にキャッチアップし続けていこうと思います。
そんなわけで
Hadoop / Spark Conference 2019、非常に刺激的なイベントでした。 開催に携わった方々、登壇された方々、お疲れ様でした。