Hadoop 是由 Apache 基金会开发的一个分布式系统基础架构,使用户无需深入了解底层的分布式细节即可编写分布式程序。它充分利用集群的能力来进行高速的数据处理和存储。
Hadoop 生态系统非常丰富,包含了许多重要的组件。下面列出了一些常见的组件,你可能熟悉其中的几个:
分布式分析引擎 Kylin
Apache Kylin 是一个开源的分布式分析引擎,能够在 Hadoop 和 Spark 上提供 SQL 查询接口和多维分析(OLAP)功能,支持处理海量数据,包括 TB 级甚至 PB 级的数据。Kylin 能够在亚秒级别内查询巨大的 Hive 表,并且支持高并发访问。
Kylin 的工作原理
Kylin 的核心理念是预计算(以空间换时间)。它预先计算出所有可能的度量组合,并将结果存储为 Cube,以便在查询时直接访问。这种预计算方法将复杂的聚合运算和多表连接转换为简单的查询操作,从而实现快速响应和高并发性能。
Kylin 的应用场景
Kylin 可作为 SQL 加速层,连接各种数据源(如 Hive 或 Kafka),并与多种商业智能工具(如 Tableau 和 PowerBI)无缝对接,也支持灵活的即席查询。当面对需要加快查询速度、提高并发性能、减少资源消耗,同时完整支持 SQL 语法并能与 BI 工具无缝集成的需求时,Kylin 是一个理想的选择。
列存储格式 Parquet
Apache Parquet 是 Hadoop 生态系统中的一种新型列式存储格式,兼容大部分计算框架(如 Hadoop 和 Spark),并获得多种查询引擎的支持(如 Hive、Impala 和 Drill)。Parquet 最初由 Twitter 和 Cloudera 合作开发,并于 2015 年 5 月成为 Apache 顶级项目。
MongoDB:文档型数据库
MongoDB 是一种基于分布式文件存储的开源非关系型数据库系统,由 C++ 编写而成。它具有高性能、无模式的特点,非常适合存储和查询文档化的数据格式。MongoDB 支持二级索引,虽然在某些情况下会比较耗费内存,但它提供了强大的查询功能,采用类似于 JSON 的格式存储数据,通常用于存放半结构化数据。
MongoDB 中的数据存储在一个文档中,每个文档都是由键值对组成的。文档结构与 JSON 对象类似,可以包含其他文档、数组及其组合。
MongoDB 的基本概念
如果你对 Skywalking 的入门、集群部署、监控目标详解及与 Spring Cloud 微服务框架的整合感兴趣,可以参考 Skywalking 技术专栏。