accumulo:基于 Apache Accumulo 的架构模板项目

A software platform for processing vast amounts of data

分支1Tags0
文件最后提交记录最后更新时间
5 年前
5 年前
5 年前
8 个月前
5 年前
5 年前
5 年前
5 年前
5 年前
5 年前
5 年前
1 年前
4 年前
5 年前
5 年前

Accumulo

介绍

Apache Accumulo是一款基于Google Bigtable的分布式键值存储系统,专为大规模数据处理而设计。它由美国国家安全局(NSA)开发并贡献给Apache软件基金会,拥有高度的安全性和可扩展性。Accumulo Instamo 架构模板是Apache Accumulo的一个重要组件,旨在简化新项目的搭建过程。

Accumulo Instamo 架构模板提供了标准的项目结构和配置,以帮助开发者快速创建符合Accumulo规范的应用程序。通过此架构模板,可以避免从头开始构建项目基础框架的时间成本,从而将更多精力聚焦于业务逻辑和功能实现上。

软件架构

软件架构说明 一个 Accumulo 实例(Instance)由以下进程和组件构成:

  • TabletServer (TS):工作节点,负责处理数据的读写请求、内存管理、文件刷写与合并(Compaction)、Tablet 的分裂与迁移等核心任务。
  • Master:主控节点,负责集群管理,如 Tablet 的负载均衡、故障转移、表的创建与删除等。支持多 Master 实现高可用。
  • ZooKeeper:分布式协调服务,用于管理集群配置、服务发现、Master 选举和 Tablet 位置信息等。
  • HDFS:底层分布式文件系统,用于存储 Tablet 数据文件、预写日志(WAL)等持久化数据,提供高容错能力。
  • Garbage Collector (GC):垃圾回收进程,定期清理 HDFS 上已失效的数据文件和 WAL,释放存储空间。
  • Monitor:Web 监控服务,提供集群读写速率、Compaction 状态、Tablet 分布等丰富的监控信息,是排查问题的首选入口。
  • Tracer:分布式追踪服务,用于收集和展示系统内部操作的耗时,辅助性能调优。
  • Client:客户端库,应用程序通过它与集群交互,执行数据的增删改查操作

Accumulo 通过 Tablet 实现数据的分布式存储与管理。

  • Tablet:表的逻辑分片(Shard),包含一段连续的 Row ID 区间。所有属于同一行的数据都存储在同一 Tablet 内,这简化了行级事务的实现。
  • 自动分裂与合并:
  1. 分裂 (Splitting):当 Tablet 增长到阈值时,会自动按 Row ID 分裂成两个新的 Tablet,并可能迁移到其他 TabletServer 以实现负载均衡。
  2. 合并 (Merging):当数据删除导致 Tablet 过小过多时,会自动合并,以减少管理开销。 元数据管理:所有 Tablet 的位置和范围信息都存储在特殊的元数据表(!METADATA)中,由 Master 和 TabletServer 共同维护.

安装教程

  1. accumulo部署指南

项目介绍

A software platform for processing vast amounts of data

定制我的领域