支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • HBaseとは?詳しく解説させていた

HBaseとは?

ビッグデータとは事業に役立つ知見となるデータを蓄積し、 それを社会や経済、業務の付加価値を向上させるために活用することを指します。 ビッグデータのとらえ方は非常に広義でありビッグデータを構成するデータは実に様々な種類を 扱うことになります。 また、ビッグデータ自体に突入したことにより、膨大な数や種類のデータを企業がどのように取り扱うかという点においても様々な議論が起こりそれを支えるIT技術にも注目が集まっております。 従来のRDBMS(リレーショナルデータベース)だけでなくビッグデータと相性の良いNoSQLを 導入する企業が増加していることは大きな変化であり、ITエンジニアとしては今後の動向を抑えておきたいところです。 NoSQLはデータベースの分類の一つであり、高速な処理やシステムの拡張性が高くビッグデータとの相性が高いことで知られております。 HBase(Apache HBase)はNoSQLを代表するデータベース管理システムとなります。 HBase(Apache HBase)はオープンソースであり列指向の分散データベースという点が特徴となりJavaで記述されております。 Hadoop(Apache Hadoop)上に構築され、GoogleBitableを参考に設計されております。 そのため、Hadoop(Apache Hadoop)とHBase(Apache HBase)は一つのセットのような形で説明されることも多く、ビッグデータを語る上ではHadoop(Apache Hadoop)とHBase(Apache HBase)の知識は欠かせません。 こういったビッグデータのような大規模データの処理に適しているHBase(Apache HBase)について詳しく解説させていただきますので、是非参考にしていただけましたら幸いです。

HBaseとApache

HBaseとApacheについて説明させていただきます。 HBaseはPowerset社において自然言語処理と大規模データ処理を実行するための プロジェクトとして歴史が始まりました。Powerset社は2005年にアメリカで創業されました。 現在はApacheのトッププロジェクトの一つとなっております。 Apacheソフトウェア財団(Apache Software Foundation)はオープンソースを支援する団体であり、 1999年にアメリカで設立されて以来、多くのテクノロジーに対して影響を与えております。 世界で最も有名かつ成功しているオープンソースコミュニティーの一つとして有名です。 また、先日Apache20周年を記念して「革新的なApacheプロジェクト」として 20のプロジェクトが紹介されました。 HBaseはこの中には含まれておりませんが、Apacheが注力し成功を収めている プロジェクトの参考として紹介させていただきます。 「Apache HTTPサーバー」はWebサーバソフトウェアとして世界で最も有名なサービスであることは知られております。 オープンソース・OSを選ばない・処理速度などが特徴であります。 同様にWebサーバソフトウェアとして知られているのがIIS(Internet Information Services)となります。 「Apache Kafka」 はLinkedInが開発と公開を行ったオープンソースの分散メッセージングシステムであり、 主にビッグデータの処理に活用されることが多く大きな注目を浴びております。 Apache Kafkaの特徴は高機能なAPIに高いパフォーマンスを実現することができる点となります。 以上が簡単ではありますがHBaseとApacheに関する説明とさせていただきます。

HBaseの特徴

HBase(Apache HBase)の特徴について説明させていただきます。 ポイントを3つに絞り紹介させていただきますので、 是非参考にしていただけましたら幸いです。

拡張性

HBase(Apache HBase)の特徴の一点目が拡張性となります。 拡張性が高いことは従来のRDBMS(リレーショナルデータベース)と比較した際にNoSQLが優れている点の一つと言えます。 特にNoSQLにおいては、サーバーの数を増やすなどのスケールアウトが容易である点は大きな特徴として抑えておきたいところです。 HBase(Apache HBase)も同様の特徴を持ち、システムの拡張性に優れておりユーザーやアプリケーションの増加に対して柔軟に処理することが 可能となります。 このように臨機応変にサーバーを追加することで柔軟にユーザーのニーズに対応することができる点は HBase(Apache HBase)の大きなメリットになります。

リアルタイムスピード

HBase(Apache HBase)の特徴の二点目がリアルタイムスピードとなります。 例えばネットオークション、広告、災害時などの情報処理など、 リアルタイムでのデータ処理の正確性が求められる際にHBase(Apache HBase)の技術が活躍します。 実際に大手企業のオークションサイトやECサイトなどでHBase(Apache HBase)が実績されている 事例を目にすることは少なくありません。

柔軟性

HBase(Apache HBase)の特徴の三点目が柔軟性となります。 構造化、半構造化、非構造化された多種多様なデータを保存することが可能です。 また、こういったデータをいつでも取得し分析を行うことも可能となります。

HBaseとHadoop

HBase(Apache HBase)とHadoop(Apache Hadoop)について解説させていただきます。 HBase(Apache HBase)とHadoop(Apache Hadoop)は関連性が高いため、紹介させていただきます。 Hadoop(Apache Hadoop)は大規模データ分散処理システムを行うオープンソースのフレームワークであり、 Javaで記述されております。 HadoopはApacheのトップレベルプロジェクトとして運営されております。 Hadoop(Apache Hadoop)はビッグデータ向けの処理基盤としては標準的な環境とされており、 Hadoop Common、Hadoop Distributed File System (HDFS)、Hadoop YARN、Hadoop MapReduceのモジュールにより構成されております。 HBase(Apache HBase)はこのコーポネントの中の一つであるHadoop Distributed File System (HDFS)上に データベースを構築することで機能の補完性を持たせることが可能となり、大量のデータ処理を実現します。

HBaseとFacebook

HBaseとFacebookについて説明させていただきます。 2010年にFacebookは「Facebook Messages」のデータベースとしてHBaseを導入することを決定しました。 Facebookと言えば同社が開発したNoSQLデータベースのCassandraが有名であり、MySQLも 同社で実績があり信頼性の高いデータベースです。 そういった競合のデータベースと比較しHBaseが採用された理由としてはリアルタイムデータの処理能力にあるようです。 「Facebook Messages」においては毎月3億5000万のユーザーが150億通のメッセージを送り、3億のユーザーが1200億回のチャットを利用状況であり、そのデータベースは大規模かつ大量な処理を要求されリアルタイムでの処理能力が要求されることは言うまでもありません。 技術的な理由としてFacebookのソフトウェアエンジニアであるKannan Muthukkaruppan氏 によると「MySQLはロングテールなデータをうまく扱えず、データとインデックスが増加すると性能が落ちていく」「CassandraのEventual Consistency(結果整合性)モデルは、新しいメッセージインフラにうまく適合させるのが困難だった」というのがMySQLとCassandraが落選した理由になります。 また、「HBaseは、負荷に対して非常に高いスケーラビリティと性能を発揮した。 CassandraよりもシンプルなConsistency Model(一貫性モデル)を備えている。」 との評価を与えております。 同氏の評価からHBaseの性能とリアルタイム処理の能力の高さを知ることができるのではないでしょうか。

HBaseの導入事例

HBaseの導入事例について説明させていただきます。 HBaseの導入事例として有名なのがアドビ社です。 アドビ社は1982年にアメリカで創業された企業であり、 デザイン、イメージングおよびパブリッシング用ソフトウェアの提供として 世界的に有名な企業であることは周知の通りです。 現在は30台のHDFSノードにおいてHBaseを導入しており、 内部構造化データと非構造化外部データの両方にHBaseを使用しています。 また、LINE株式会社もHBaseを有効活用している事例として知られております。 2021年にLINE株式会社によるエンジニア向け技術カンファレンス「LINE DEVELOPER DAY 2021」の中で HBaseとKafkaのデータパイプラインの活用例について詳しく説明が行われました。 同社のHBaseクラスターには、LINE Messaging Platformのユーザー情報や、ユーザーのデバイス情報、設定情報、ユーザー間の友だち関係や、ユーザー間のチャットやグループのメタ情報、そしてユーザーが送受信するメッセージなどが保存される仕組みとなっております。 また、HBaseとKafkaのパイプラインを構築し活用していることも同カンファレンスの中で説明がありました。 以上がHBaseの導入事例についての説明となります。

まとめ

いかがでしたでしょうか?HBase(Apache HBase)について詳しく解説させていただきましたので、 参考にしていただけましたら幸いです。