互联网及企业客户业务系统有大量的埋点日志数据实时生成,这些日志数据往往需要长期保存并有离线计算或者实时计算的需求。本文为您介绍日志数据采集与大数据存储实践方案。
背景
一些客户会选择将日志数据存储在自建的HDFS中,使用flume、kafka等中间件作为数据通道进行采集传输,由spark等大数据引擎做进一步的加工处理,然后与一些BI系统集成做分析展示。很多用户在使用这套架构过程中面临显著的痛点。
日志数据分散,无法形成具备实时查询、离线分析、统一监控告警的日志中枢平台。
当hadoop集群较大时,文件量级达到数亿以上时,namenode 性能会成为一个潜在的瓶颈点。
HDFS往往采用3副本的方式创建,存储空间利用率低。
80%左右的数据为温冷数据,HDFS集群缺少自动化的冷热分层机制
容灾备份困难,一但集群挂掉意味着数据全部丢失。如果构建数据容灾集群,需要在另一个机房搭建同样的一套hadoop集群。
Hadoop架构迭代难,兼容性很差,业务低谷时计算资源利用率低,缺少弹性,需要进行村算分离改造。
优化步骤1:存算分离改造,数据写入OSS数据湖(兼容原有自建flume、kafka等)
兼容原有自建flume、kafka架构,可以通过flume将数据写入OSS,以OSS数据湖为存储核心,实现存算分离。阿里云OSS支持原生的OSS-HDFS接口,通过OSS-HDFS服务,无需对现有的Hadoop、Spark大数据分析应用做任何修改即可实原生的HDFS协议兼容。OSS对象存储作为大数据存算分离方案的核心存储方案,在元数据操作管理能力上深度优化,为大数据场景提供海量数据的存储管理能力、超高的吞吐带宽性能,解决用户自建HDFS存储的扩展性瓶颈和管理难题。
OSS支持多种数据源的写入,也可以和阿里云EMR Jindo FS SDK集成来对接中间件的数据接入。OSS存储支持海量的数据存储,高达Tbps级别的吞吐能力,可以避免HDFS的Namenode性能瓶颈问题。此架构优势如下:
高可靠 OSS可以提供高达12个9的数据可靠性,保障数据不丢不坏,通过开通多版本和跨区域复制,可以进一步实现数据的备份和容灾。
兼容性原生HDFS OSS支持原生的OSS-HDFS接口,用户无需改造即可实原生的HDFS协议兼容,OSS可以无缝对接客户自建开源的 spark、hive 等引擎。
成本节约 OSS采用了纠删码机制,相比自建HDFS可以实现大幅的成本节约。OSS的生命周期管理策略,可以将用户访问不频繁数据转入低频存储,将需要长期保存的冷数据自动转入归档类型存储。
完善的生命周期管理 OSS通过生命周期策略实现数据冷热分层,整体存储成本大幅降低。并且JindoFS与OSS生命周期进行了集成,在Hadoop端即可以进行存储类型指定以及冷数据解冻。
数据写入及数据迁移工具支持--EMR JindoFS
JindoFS SDK是一个简单易用面向Hadoop/Spark生态的OSS客户端,为阿里云OSS提供高度优化的Hadoop FileSystem,提升了用户的现有架构软件版本的兼容性。 Jindo DistCp(分布式文件拷贝工具)是用于大规模集群内部和集群之间拷贝文件的工具, 它使用MapReduce实现文件分发,错误处理和恢复,支持hdfs->OSS,hdfs->hdfs,OSS->hdfs,OSS->OSS的数据拷贝场景,提供多种个性化拷贝参数和策略。重点优化了hdfs到OSS的数据拷贝,通过定制化CopyCommitter,实现No-Rename拷贝,提高数据copy性能并保证数据拷贝落地的一致性。 Jindo DistCp vs Hadoop DistCp 性能测试对于table 类型数仓数据,可以使用阿里云专为迁移数仓数据而设计的MoveTo 工具。MoveTo底层调用了jindo distcp,当拷贝成功后自动更新 Metastore 元数据,实现完整的迁移过程。对于分区表,该工具支持分区过滤表达式,可实现大量分区的同时拷贝,支持设置存储类型、覆盖写等选项,满足多种需求。Jindo SDK与OSS无缝兼容,可以在竞争中带来技术差异化上的补充。
优化步骤2:使用日志服务SLS进行数据采集及投递OSS
对于日志数据的采集、处理和分析的场景,阿里云日志服务(SLS)是一款性能优越、易用性强,并且具有较低成本的产品,使用日志服务SLS替代flume作为数据管道以及通过日志服务进行数据加工清洗的方案具有诸多优势。
SLS支持包括服务器与应用、开源软件、物联网、移动端、标准协议、阿里云产品等多种来源在内的可观测数据(Log/Metric/Trace)的统一采集存储。支持40+成熟接入方案,支持包括服务器与应用、开源软件、物联网、移动端、标准协议、阿里云产品等在内的多端采集。
使用日志服务替代用户自建ES,可以形成统一的日志采集、分析、计算的日志统一中枢平台。日志服务采集数据后可以直接进行实时的查询、BI、数据加工、报表等,日志服务提供了成熟完善的AIOPS方案,帮助用户打造智能运维平台。
在实时计算场景日志服务可以对接实时计算引擎进行消费
离线计算场景日志服务可以将数据投递到OSS,通过OSS-HDFS原生HDFS协议打通离线计算生态体系。