Hadoopはどのように動くのか ─並列・分散システム技術から読み解くHadoop処理系の設計と実装

第22回[最終回] まとめと本連載で解説できなかったこと

連載を終えて

本連載では、これまで21回に渡り、HadoopやSparkなどのソフトウェアを並列データ処理系と称して、前半においてはおもに当該処理系のアーキテクチャやデータ処理方法の原理を説明し、後半においては当該処理系の実装における技術的特徴を概観してきました。

前半では、いくつかの教科書や古い文献をベースに説明をしましたが、近年の発展が著しいと考えられている並列データ処理系においても、過去に深く研究された技術の組み合わせや応用である場合が多いことを感じていただけたかと思います。技術全般において言えることですが、最先端の技術を理解するには、基礎を丁寧に押さえることが最も重要だと思います。多くの参考文献を載せましたので、このような技術に興味がある方や今回を機に興味をもった方は、さらに理解を深めていっていただけると幸いです。

また、後半においては、近年の並列データ処理系が、過去の技術を基礎としつつ、新たな需要やハードウェアの進化により、どのように進展しているかの一端を感じていただけかと思います。技術的な課題を解決するうえにおいて、多くの場合、既存の技術を用いて足りない部分は運用でカバーするアプローチや、または既存の複数の技術をうまく組み合わせて問題を一時的に解決するアプローチがとられることが多いと思いますが、新たな技術を生み出し、技術をさらに一歩先に進めることにより問題を本質的に解決することも(特に今の日本においては)大事だと思います。本連載により、単に並列データ処理系に関する技術の理解が深まったことに加えて、考え方や研究開発の重要性を考え直すきっかけとなれば幸いです。

本連載では解説できなかったこと

本連載においては、おもに二次記憶などからのデータの読み出しを主体とした1つの問い合わせに焦点を当ててきました。つまり、1つの問い合わせにおいて、問い合わせ内の並列性第5回を活用し、複数の計算機や計算機内の複数のプロセッサや二次記憶装置を活用する方法の解説が本連載の主題であり、問い合わせ間の並列性についてはほとんど議論しませんでした。

従前のデータウェアハウスにおける用途では、問い合わせのレイテンシを重視することが多かったため、このような説明に絞りましたが、一方で、近年ではクラウド環境において並列データ処理系をマルチテナントで運用するケースや、1つの企業においても大量のクエリを同時に処理系に投入することが広く見受けられつつあります。すなわち、現在の並列データ処理系においては、各問い合わせのレイテンシを低下を狙いつつ、全体のスループットの最大化を目指すこと、もしくはその逆(スループットの向上をある程度狙いつつ、レイテンシを最小化を目指す)が求められています。

当該トピックは、とてもホットな分野であり、興味がある方は、本連載で基礎を押さえた後に、考えてみても(理解を深めてみても)良いかもしれません。問題設定は必ずしも同じではありませんが、同様の議論は以前からされており、学術界においても広く議論が行われてきました。

たとえば、古いものでは以下のような文献があります。

最近のものでは以下のような文献があります。

また、本連載においては、データの書き込みについてもほとんど議論しませんでした。データ処理においては、トランザクション処理と呼ばれる、書き込み処理を重視するものもあります。当該分野も、かなり長い歴史において研究開発が進められてきており、近年においても、特に分散環境や新たなハードウェア環境における技術の進展は著しいです。

たとえば、分散環境におけるトランザクションにおいては以下のような文献があります。

マルチコア環境においては、以下のような文献があります。

おわりに

長い間お付き合いいただき、ありがとうございました。

本連載に対して、⁠こういう話題があったほうがが良かった」⁠ここをさらに深堀してほしかった」などのご意見がありましたら、なんなりとお問い合わせください。

おすすめ記事

記事・ニュース一覧