乐趣区

关于apache:博文干货|Apache-InLong-使用-Apache-Pulsar-创建数据入库

对于 Apache Pulsar

Apache Pulsar 是 Apache 软件基金会顶级我的项目,是下一代云原生分布式音讯流平台,集音讯、存储、轻量化函数式计算为一体,采纳计算与存储拆散架构设计,反对多租户、长久化存储、多机房跨区域数据复制,具备强一致性、高吞吐、低延时及高可扩展性等流数据存储个性。
GitHub 地址:http://github.com/apache/pulsar/

文章转自公众号:Apache InLong,原文地址:https://mp.weixin.qq.com/s/Wg…

Apache InLong 减少了通过 Apache Pulsar 接入数据的能力,充分利用了 Pulsar 不同于其它 MQ 的技术劣势,为金融、计费等数据品质要求更高的数据接入场景,提供残缺的解决方案。在上面的内容中,咱们将通过一个残缺的示例介绍如何通过 Apache InLong 应用 Apache Pulsar 接入数据。

Apache InLong(incubating)简介

Apache InLong(应龙 https://inlong.apache.org)是腾讯募捐给 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 Pulsar

Apache Pulsar 是 Pub/Sub 模型的音讯零碎,并且从设计上做了存储和计算的拆散。Apache Pulsar 计算与存储拆散的架构,以及分片存储的设计为 Apache Pulsar 带来了相比于传统基于分区存储 MQ 的一些劣势:

  • Broker 和 Bookie 互相独立,不便实现独立的扩大以及独立的容错;
  • Broker 无状态,便于疾速上、下线,更加适宜于云原生场景;
  • 分区存储不受限于单个节点存储容量;
  • 分区数据分布平均。

筹备条件

  • 装置 Apache Pulsar,版本 2.6+
  • 装置 Apache Hive,版本 2.3+

装置 InLong

部署 InLong,能够应用 Docker Compose 实现一键部署,也能够通过二进制文件在一般机器上部署。

  • Docker Compose 部署:https://inlong.apache.org/zh-…
  • 应用安装包部署:https://inlong.apache.org/zh-…

区别于 InLong TubeMQ,如果应用 Apache Pulsar,须要在 Manager 组件装置中配置 Pulsar 集群信息,格局如下:

# Pulsar admin URL
pulsar.adminUrl=http://127.0.0.1:8080,127.0.0.2:8080,127.0.0.3:8080
# Pulsar broker address
pulsar.serviceUrl=pulsar://127.0.0.1:6650,127.0.0.1:6650,127.0.0.1:6650
# Default tenant of Pulsar
pulsar.defaultTenant=public

创立数据接入

配置数据流 Group 信息

在创立数据接入时,数据流 Group 可选用的消息中间件抉择 Pulsar,其它跟 Pulsar 相干的配置项还包含:

  • Queue module:队列模型,并行或者程序,抉择并行时可设置 Topic 的分区数,程序则为一个分区;
  • Write quorum:音讯写入的正本数;
  • Ack quorum:确认写入 Bookies 的数量;
  • retention time:已被 consumer 确认的音讯被保留的工夫;
  • ttl:未被确认的音讯的过期工夫;
  • retention size:已被 consumer 确认的音讯被保留的大小。

配置数据流

配置消息来源时,文件数据源中的文件门路,可参照 inlong-agent 中 File Agent 的具体指引。

配置数据格式

配置 Hive 集群

保留 Hive 流向,点击“提交审批”。

数据接入审批

进入审批治理页面,点击我的审批,审批下面提交的接入申请,审批完结后会在 Pulsar 集群同步创立数据流须要的 Topic 和订阅。

咱们能够在 Pulsar 集群应用命令行工具查看 Topic 是否创立胜利:

配置文件 Agent

在配置文件 Agent 时,须要依据数据接入创立时指定的目录下创立文件:

touch /data/test_file.txt;

依照创立数据流时的数据源格局,向文件中写入数据(能够按格局写入更多数据):

echo -e "1|test\n2|test\n" >> /data/test_file.txt

数据落地查看

最初,咱们登入 Hive 集群,通过 Hive 的 SQL 命令查看 test_stream 表中是否胜利插入了数据。

问题排查

如果呈现数据未正确写入 Hive 集群,能够查看 Dataproxy 和 Sort 相干信息是否同步:

  • 查看 Inlong-Dataproxy 的 conf/topics.properties 文件夹中是否正确写入该数据流对应的 Topic 信息 b_test_group/test_stream=persistent://public/b_test_group/test_stream
  • 查看 InLong Sort 监听的 ZooKeeper 中是否胜利推送了数据流的配置信息:get /inlong_hive/dataflows/{{sink_id}}

关注公众号「Apache Pulsar」,获取更多技术干货

退出 Apache Pulsar 中文交换群 👇🏻

退出移动版