0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kafka + HDFS + IcebergでOSS版レイクハウスを構築してみた

0
Last updated at Posted at 2026-04-14

はじめに

近年、データ分析基盤としてレイクハウスアーキテクチャが注目されています。

特にDatabricksは、

  • Delta Lake
  • Spark
  • Notebook
  • SQL Warehouse

などを統合した強力なプラットフォームとして広く利用されています。

一方で、

  • 利用コストが高い
  • オンプレミス環境では導入しにくい
  • 学習用途には規模が大きすぎる

といった課題もあります。

そこで今回は、OSSのみを利用してDatabricks風のレイクハウス基盤を構築してみました。


レイクハウスとは

従来のデータ基盤は大きく2種類ありました。

データレイク

  • HDFS
  • S3

などに生データを蓄積する仕組みです。

メリット

  • 安価
  • 大量データ保存可能

デメリット

  • 更新や削除が苦手
  • テーブル管理が難しい

データウェアハウス

  • Redshift
  • BigQuery
  • Snowflake

などです。

メリット

  • SQL分析が容易
  • 高速

デメリット

  • 保存コストが高い
  • ベンダーロックイン

レイクハウス

レイクとDWHの利点を組み合わせた仕組みです。

代表例

  • Databricks + Delta Lake
  • Apache Iceberg
  • Apache Hudi

なぜOSSで構築するのか

Databricksは非常に優れたプラットフォームですが、

  • ライセンス費用
  • クラウド利用料
  • オンプレミス利用の制約

などを考えると、個人学習や社内検証用途では導入ハードルが高いケースがあります。

そこで今回はOSSのみを利用し、

  • fluentd
  • Kafka
  • HDFS
  • Hive
  • Spark
  • Flink
  • Iceberg
  • Trino
  • Grafana
  • Zeppelin

を組み合わせてレイクハウス基盤を構築しました。


今回の構成


構成全体


各OSSの役割

fluentd

ログ収集基盤です。

SyslogやAuthlogを受信し、データ整形し後続システムへ配信します。

fluentdを利用することで、

  • データの整形
  • 後続へのデータ送付先整理

が可能になります。


Apache Kafka

ログ配信基盤です。

整形済データを受信し、後続システムへ配信します。

Kafkaを利用することで、

  • バッファリング
  • スケールアウト
  • 再処理

が可能になります。


HDFS

データレイクです。

Kafkaから受信したログを生データのまま保存します。

特徴

  • 安価なスケールアウト
  • 大容量保存
  • Hadoopエコシステムとの高い親和性

Hive

メタデータ管理を担当します。

データはHDFS上に保存され、Hive Metastoreがテーブル定義を管理します。


Apache Iceberg

今回のレイクハウス構成の中心です。

従来のHiveテーブルでは難しかった

  • ACIDトランザクション
  • UPDATE
  • DELETE
  • Snapshot管理

を実現できます。


Apache Spark

バッチ処理エンジンです。

主に

  • HDFS → Iceberg
  • データ変換
  • 集計処理

を担当します。


Apache Flink

リアルタイム処理エンジンです。

Kafkaからデータを取得し、

  • ストリーミング集計
  • リアルタイム分析

を実現します。


Trino

高速分散SQLエンジンです。

Iceberg上のデータに対して高速な分析SQLを実行できます。


Grafana

可視化基盤です。

Trino経由でIcebergを参照し、

  • 時系列分析
  • 集計結果表示
  • ダッシュボード化

を行います。


Zeppelin

分析用Notebookです。

Databricks Notebookの代替として利用しています。

  • Spark SQL
  • Scala
  • Python

などを利用できます。


Databricksとの比較

項目 Databricks OSS構成
ストレージ Delta Lake Iceberg
メタデータ Unity Catalog Hive Metastore
ETL Spark Spark / Flink
SQL分析 Databricks SQL Trino
Notebook Databricks Notebook Zeppelin
ダッシュボード Databricks Dashboard Grafana
ライセンス 商用 OSS
オンプレミス 制限あり 可能

なぜIcebergを選んだのか

レイクハウスを実現するテーブルフォーマットには、

  • Iceberg
  • Delta Lake
  • Hudi

があります。

今回はIcebergを採用しました。


エンジン非依存

Icebergは

  • Spark
  • Flink
  • Trino
  • Hive

から共通利用できます。


Time Travel

過去のスナップショットを参照できます。

SELECT *
FROM logs.syslog_iceberg
FOR VERSION AS OF 123456789;

Schema Evolution

スキーマ変更が容易です。

ALTER TABLE logs.syslog_iceberg
ADD COLUMN severity INT;

Partition Evolution

長期運用後でもパーティション設計を変更できます。


実際にできること

Syslog分析

SELECT
  host,
  COUNT(*)
FROM logs.syslog_events
GROUP BY host;

Authlog分析

SELECT
  host,
  COUNT(*)
FROM logs.authlog_events
WHERE message LIKE '%Failed%'
GROUP BY host;

リアルタイム分析

SELECT
  window_start,
  host,
  cnt
FROM logs.syslog_host_1m;

Flinkで集計した結果を即座に参照できます。


ダッシュボード化

Grafanaで

  • ログ件数推移
  • ホスト別アクセス数
  • 認証失敗件数
  • 異常検知

などを可視化できます。


この構成のメリット

OSSのみ

ライセンス費用不要です。


オンプレミス対応

インターネット接続不要環境でも利用できます。


拡張性

将来的に

  • fluentd増設
  • Kafka増設
  • Spark増設
  • Flink増設

が容易です。


ベンダーロックイン回避

クラウドサービスへ依存しません。


検証環境

以下の構成で建てました。

コンポーネント 台数
fluentd 1
Kafka(KRaft/Brocker/Connect) 8
HDFS(master/slave) 5
Hive(Hive/Metastore) 4
postgresql(Hive用) 2
Spark 3
Flink 1
Trino 1
Grafana 1
Zeppelin 1
ope(運用ホスト) 1
trino 1

課題

Databricksと比較すると、

  • 構築作業が必要
  • 運用設計が必要
  • 統合管理機能が弱い
  • ワンクリック導入できない

といった課題があります。

一方でOSS構成を理解することで、レイクハウスの内部構造を深く学べます。


今後の展望

今後はさらに以下を追加予定です。

  • Kerberos認証
  • TLS暗号化

まとめ

今回は

  • Kafka
  • HDFS
  • Hive
  • Spark
  • Flink
  • Iceberg
  • Trino
  • Grafana
  • Zeppelin

を組み合わせて、OSSのみでDatabricks風レイクハウスを構築してみました。

Databricksのような統合サービスと比較すると構築や運用の手間は増えますが、

  • OSSのみで構築可能
  • オンプレミス対応
  • ベンダーロックインなし
  • 学習用途に最適

という大きなメリットがあります。

レイクハウスを学びたい方や、オンプレミスでデータ分析基盤を構築したい方の参考になれば幸いです。

以下の記事にて具体的なシステム構成について提示します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?