HBase 数据同步到 ES 的最佳操作是怎样的?

2023-11-22 17:53:56 +08:00
 grittiness

公司有个项目,现有的数据都是直接存 HBase 里,现在新来了个需求是需要根据字段内容查询数据给用户展示的功能(类似一般关系型数据库那样的查询),直接用 HBase 查询等于是全表扫描了,速度慢而且也对集群压力较大。

然后现在考虑让查询全部用 es 查,那么对于现有 HBase 数据导出到 ES ,以及以后 HBase 表的增量数据同步到 ES 不知是否有主流的方案?

因为新接触这块内容,有点菜,对这方面比较陌生。因此来 v 站请教下大佬们 谢谢!

1016 次点击
所在节点    程序员
4 条回复
JerryMouse
2023-11-23 08:34:47 +08:00
对于将现有的 HBase 数据导出到 Elasticsearch ( ES )并进行增量同步的问题,有一些主流的方案可供考虑。

1. **HBase MapReduce 导出到 Elasticsearch:**
- 利用 HBase 的 MapReduce 作业将数据导出到中间格式(如 JSON 或 Avro )。
- 将导出的数据通过 Elasticsearch 的 Bulk API 加载到 ES 中。
- 对于增量同步,可以定期运行这个作业,只导出最近更新的数据。

2. **使用 Apache Nifi 或 Kafka Connect:**
- Apache Nifi 或 Kafka Connect 可以用作数据流处理工具,从 HBase 抓取数据并将其发送到 Elasticsearch 。
- 配置定期拉取并同步,以处理增量数据更新。

3. **使用 Logstash:**
- Logstash 是一个数据处理工具,可以从 HBase 读取数据,并将其发送到 Elasticsearch 。
- 通过配置 Logstash 管道,可以实现定期的全量或增量同步。

4. **HBase Coprocessor:**
- 利用 HBase 的 Coprocessor 功能,可以在 HBase 数据更新时触发事件,并将相应的数据同步到 Elasticsearch 。
- 这需要编写自定义的 Coprocessor 来处理数据变更事件。

选择方案时需要考虑数据一致性、性能、可靠性和实现难度。根据具体需求和技术栈,选择适合项目的方案。


——

以上来自把你问题复制到 gpt3 后他给的回复
JNian
2023-11-23 09:12:15 +08:00
Debezium
howfree
2023-11-23 09:16:48 +08:00
finkcdc 不知道支不支持 Hbase,mysql 是可以同步到 es 的
grittiness
2023-11-23 11:50:51 +08:00
@JNian 谢谢我参考下
@JerryMouse 看着方案太多我菜鸟一个个试时间太久了,所以我才来 v 站请教大佬们有没正在用比较可行的方案
@howfree 谢谢我参考下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/994255

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX