gpt4 book ai didi

java - 谁执行 HBase 过滤器?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:08:27 26 4
gpt4 key购买 nike

哪台机器执行org.apache.hadoop.hbase.filter.Filter

根据 documentation ,当使用 Get 或 Scan 操作从 HBase 读取数据时,您可以使用自定义过滤器将结果的子集返回给客户端。虽然这不会减少服务器端的 IO,但它确实会减少网络带宽并减少客户端需要处理的数据量。

据我所见,spark 执行器机器正在 hbase 客户端的后台线程中进行远程调用以查询 HBase 数据。而且这些调用很少是针对本地机器的 hbase 区域服务器的。

所以我想知道我的自定义过滤器是否在 Spark 执行器机器上执行,具有巨大的网络开销,与文档保证的内容相矛盾,或者它以某种方式通过网络传输并在 HBase 机器上执行?
我怀疑 Filter 不是可序列化的。那么下一个问题是是否可以在这里优化任何东西?

最佳答案

过滤器在区域服务器进程中执行。如果将带有代码的 jar 文件放入 HBase 配置中由参数 hbase.dynamic.jars.dir 指定的目录,HBase 可以动态加载它。 Filter接口(interface)没有实现Serializable接口(interface),但是它有方法

static Filter    parseFrom(byte[] pbBytes)

从序列化表单创建过滤器。在应该用于自定义过滤器创建的类 FilterBase 中存在方法

abstract byte[] toByteArray()

用于将过滤器序列化为字节数组。

关于java - 谁执行 HBase 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50278540/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com