V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
grittiness
V2EX  ›  程序员

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

  •  
  •   grittiness · 2023-11-22 17:53:56 +08:00 · 1021 次点击
    这是一个创建于 400 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    4 条回复    2023-11-23 11:50:51 +08:00
    JerryMouse
        1
    JerryMouse  
       2023-11-23 08:34:47 +08:00 via iPhone
    对于将现有的 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
        2
    JNian  
       2023-11-23 09:12:15 +08:00
    Debezium
    howfree
        3
    howfree  
       2023-11-23 09:16:48 +08:00
    finkcdc 不知道支不支持 Hbase,mysql 是可以同步到 es 的
    grittiness
        4
    grittiness  
    OP
       2023-11-23 11:50:51 +08:00
    @JNian 谢谢我参考下
    @JerryMouse 看着方案太多我菜鸟一个个试时间太久了,所以我才来 v 站请教大佬们有没正在用比较可行的方案
    @howfree 谢谢我参考下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3605 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:04 · PVG 13:04 · LAX 21:04 · JFK 00:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.