Apache InLong重磅发布 0.10.0 版本,着力降低用户使用门槛

本文主要是介绍Apache InLong重磅发布 0.10.0 版本,着力降低用户使用门槛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

导语:Apache InLong 以腾讯内部使用的TDBank为原型,依托万亿级别的数据接入和处理能力,整合了数据采集、汇聚、存储、分拣数据处理全流程,拥有简单易用、灵活扩展、稳定可靠等特性。

Apache InLong(孵化中) 刚刚发布了 0.10.0 版本,该版本是升级为 InLong(中文名:应龙) 后的第二个版本,着力解决InLong应用门槛高问题。该版本吸引腾讯内外 10 多位开发者参与,关闭超过 120 个issue, 开发超过 8 个重要Feature。

Apache InLong简介

Apache InLong(应龙)是腾讯捐献给 Apache 社区的一站式数据流接入服务平台,提供自动、安全、高性能、分布式的数据发布订阅能力,基于该系统用户可以轻松构建基于流式的数据应用。InLong 项目原本叫TubeMQ ,专注高性能、低成本的消息队列服务。为了进一步释放 TubeMQ 周边生态能力,我们将项目升级为 InLong ,专注打造一站式数据流接入服务平台。

Apache InLong 以腾讯内部使用的 TDBank 为原型,依托万亿级别的数据接入和处理能力,整合了数据采集、汇聚、存储、分拣数据处理全流程,拥有简单易用、灵活扩展、稳定可靠等特性。

Apache InLong 服务于数据采集到落地的整个生命周期,按数据的不同阶段提供不同的处理模块,主要包括:

  • inlong-agent ,数据采集 Agent ,支持从指定目录或文件读取常规日志,进行逐条的数据上报。后续也将扩展 DB 采集,扩展HTTP上报等能力。
  • inlong-dataproxy ,一个基于 Flume-ng 的 Proxy 组件,支持数据发送阻塞、落盘重发,拥有将接收数据后转发到不同MQ(消息队列)的能力。
  • inlong-tubemq ,腾讯自研的消息队列服务,专注服务大数据场景下海量数据的高性能存储和传输,在海量实践和低成本方面有着比较好的核心优势。
  • inlong-sort ,从不同的 MQ 消费数据后进行 ETL 处理,然后将数据汇聚并写入 Hive、ClickHouse、Hbase、IceBerg 等。
  • inlong-manager ,提供完整的数据服务管控能力,包括元数据、OpenAPI、任务流、权限等。
  • inlong-website ,一个用于管理数据接入的前端页面,简化整个 InLong 管控平台的使用。

Apache InLong 0.10.0版本简介

我们从上个版本( 0.9.0 )始,将 TubeMQ 升级为 InLong ,第一次将全链路数据接入能力开源出来。随着 0.9.0 发布后,我们组织了一次线上 Meetup ,探讨了大家在初次尝鲜 InLong 过程当中遇到的问题,发现大多数同学反馈 InLong 的“使用门槛太高,部署难度太大”。InLong 包括 6 个模块,并且每个模块拥有单独的编译打包、配置、启停脚本,完整的使用 InLong 还依赖 MySQL、Hive、Flink 集群等第三方服务组件,真正把 InLong 用起来的社区用户寥寥无几。

为了解决社区用户反馈的”开头难“问题, 我们将 0.10.0 版本开发目标设定为“降低 InLong 使用门槛,方便社区用户用起来”,在新版本中主要完成了以下几个方面的工作,来简化 InLong 的安装和使用:

  • 所有组件 Docker 化,提供一键安装能力
  • 进一步整合 InLong 所有模块,简化模块配置
  • 提供 Example Demo ,手把手教如何使用 InLong

Apache InLong 0.10.0 版本主要特性

全面拥抱 GitHub

在之前版本,InLong 的所有 Issue 由Jira管理,提交新的 PR 需要在 Jira 和 GitHub 来回跳转。同时,由于 Jira 和 GitHub 账号不通,新的贡献者需要先单独注册 Jira 账号和配置权限。在最近发布的 0.10.0 版本中,我们将 Jira Issue 历史迁移到了 GitHub Issue ,并设置了配套的 Issue 模板,方便开发者创建 Issue 和关联 PR 。同时,我们将 CI 工具由 Travis 迁移到 GitHub Actions ,配置了独立的 Workflow 进行代码编译、UT,很大程度提高了 PR 的合入效率。

支持 Docker-Compose 一键部署

InLong 拥有超过 6 个模块,完整的使用 InLong 还依赖 MySQL、Hive、Flink 集群等第三方服务组件,为了方便新用户快速了解 InLong ,直观感受 InLong 的特性,在 0.10.0 版本中,我们将所有组件 Docker 化,借助 Docker-Compose 提供一键安装能力,感兴趣的用户可以参考InLong Standalone Using Docker Compose体验。

增加 Hive 入库 Example

0.9.0 版本我们只开放了 InLong 入库Hive的能力,为了指导大家快速将采集的数据分拣到 Hive ,我们增加Hive入库Example,Step by Step帮助用户快速开始使用 InLong 。

InLong Manger 整合 OpenAPI 和 API

InLong Manager 为 WebSite 提供了统一的访问 API ,为了方便其它模块获取元数据信息提供了统一的 OpenAPI 。在之前的版本中, API 和 OpenAPI 分别有两个独立的项目管理,安装时需要单独配置和启动,使用不同的端口提供服务。在 0.10.0 版本中,我们整合了 OpenAPI 和 API ,使用不同 URL Path 进行区分,通过一个项目来管理两套 API ,实现 Manager 只用部署一次的效果。

InLong Sort 增加 Pulsar 分拣能力

TubeMQ 的架构在性能和成本上拥有天然的优势,但没有多副本机制,可能会丢数据,而 Apache Pulsar 可以弥补这方面的不足。同时,为了实现 InLong 能够快速复用已有的消息队列服务,我们计划全链路支持 Pulsar ,在 0.10.0 版本中,InLong Sort 优先支持了 Pulsar 数据源的分拣能力,在后续版本中会完善 DataProxy->Pulsar、Manager->Pulsar ,实现 InLong 全链路支持 Apache Pulsar 。当然,我们也希望在未来全链路支持 Kafka 。

InLong Sort 支持指标系统

InLong Sort 中需要统计各个阶段数据条数的指标数据,如读入数据的条数,解析阶段失败/成功的数据条数,入库条数。指标系统用来统计系统各个阶段的数据条数,为了保证指标和数据语义的一致,我们通过 Flink 的 side output stream 输出指标。同时配合flink的窗口机制对指标进行预聚合,保证输出指标的量级不会太大。在 0.10.0 版本中,首先支持了通过日志的方式输出指标(At-least-once),后续我们计划扩展输出指标的系统,如 MySQL ,HBase 等,同时支持输出指标的 Exactly-once 。

InLong WebSite 国际化

上个版本重点是整合所有 InLong 所有模块,前端国际化没有来得及做,在这个版本一起优化了。InLong 当前还有很多待翻译的文档,计划在后续版本一起完善,期待英语不错的社区爱好者加入翻译大军。

InLong TubeMQ 优化 Web API

该特性将以往元数据变更后需要外部被动、批量的加载调整为 由 Master 自动的分批加载,并且数据加载与后续的配置变更同步进行。

InLong Agent 重构 DataProxy 配置获取方式

InLong Agent 采集到数据后,会将数据发送到 DataProxy ,所以 DataProxy 的配置信息需要 Agent 提前拿到。在上个版本的实现中,我们在每个接入任务的Agent配置文件中指定 DataProxy 的地址等信息。而在 0.10.0 版本中,我们重构了这部分实现,交由 Manager 管理 DataProxy 地址等信息,Agent 中配置的接入任务直接通过 Manager OpenAPI 获取。

进一步整合 InLong 各模块

在上个版本,InLong 各个模块编译后的二进制文件分散在不同目录,启停配置、命名、端口使用等也不统一,InLong 给人一种“拼凑”的印象。在 0.10.0 版本中,为了进一步强化 InLong 整体性,我们将各个模块编译结果输出到统一目录,增加Maven编译 InLong WebSite ,并规范了目录、脚本等名称,重新整理了安装部署文档,使所有模块更加统一。

Apache InLong 后续规划

在 InLong 后续版本规划中,我们会进一步释放 InLong 的能力,覆盖更多的使用场景,主要包括

  • 支持 Apache Pulsar 全链路数据接入能力
  • 支持 ClickHouse、Apache Iceberg、Apache HBase 等数据流向
  • InLong on Kubernetes

Apache InLong 贡献者招募

Apache InLong目前还处在项目孵化的初期,还有很多工作需要做,包括社区运营、文档翻译、Feature 开发等,期待更多的开源爱好者一起共建。在过去的一个版本,Apache InLong 新增国内外贡献者 6 名,实现快速增长。当前社区重于代码,我们急需更多的贡献者加入快速发展的项目社区,努力将 InLong 打造成 Apache 顶级项目,以下为 InLong 重要发展时间点:

  • 2019年9月12日,TubeMQ 对外开源并捐献给 Apache 社区;
  • 2019年11月3日,进入 Apache 社区孵化;
  • 2020年5月30日,按照 Apache 社区规范发布第一个社区版本;
  • 2020年12月20日,进行项目改名讨论和投票;
  • 2021年2月11日,发起社区改名变更申请;
  • 2021年4月11日,完成社区改名,调整为 Apache InLong;
  • 2021年7月12日,发起更名后第一个版本 0.9.0 投票。

Apache InLong项目官方网站:

Apache InLong

Apache InLongGitHub地址:

https://github.com/apache/incubator-inlong

这篇关于Apache InLong重磅发布 0.10.0 版本,着力降低用户使用门槛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/839189

相关文章

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri