【问题标题】:Hbase client creates thousands of connections to single serverHbase 客户端创建数千个到单个服务器的连接
【发布时间】:2015-02-20 23:49:20
【问题描述】:

我们正在使用一台主服务器和一台从服务器以完全分布式模式运行 HBase 0.94.2 和 Hadoop 1.1.2。 HBase 服务器有 7 个表。

我们有一个 Hadoop 作业,它从 HBase 表中写入和读取。似乎 HBase 客户端为每个操作创建一个到区域服务器的新连接。当一项任务正在运行时,与区域服务器的连接超过 10 000 个。绝大多数都处于 TIME_WAIT 中,但这很快就会导致在同时运行多个任务时创建更多连接时出现问题。

一项任务也有 > 500 个线程,名称为“IPC Client (47) connection to /10.4.8.101:60020 from root”

我们确实使用 HbaseSynchronizationManager.bindResource 将表绑定到线程。

任何关于为什么会发生这种情况的想法都会非常有帮助!

谢谢

更新 1

我们像这样使用spring来创建一个Configuration和HbaseTemplate

<hdp:hbase-configuration id="hbaseConfiguration" properties-location="classpath:hbase.properties"/>
<bean id="hbaseTemplate" class="org.springframework.data.hadoop.hbase.HbaseTemplate" p:configuration-ref="hbaseConfiguration"/>

从这里将使用 HbaseTemplate 执行 Put 等。 所有的 spring 配置都发生在 Mapper 的设置中。

【问题讨论】:

  • 您的 Hadoop 作业如何读取和写入 HBase?

标签: hadoop hbase


【解决方案1】:

我在描述类似问题的 Hbase jira 中发现了各种问题。它们在 0.94.7 中得到修复。在我升级到 0.94.x 系列的较新版本后,问题得到了解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 2016-08-05
    • 2021-08-17
    • 2019-02-28
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多