Greenplum PXF 是不是支持 HDFS 短路读取?

Posted

技术标签:

【中文标题】Greenplum PXF 是不是支持 HDFS 短路读取?【英文标题】:Does Greenplum PXF support HDFS short circuit read?Greenplum PXF 是否支持 HDFS 短路读取? 【发布时间】:2020-04-22 06:44:54 【问题描述】:

我想知道当我们将 pxf 和 datanode 放在同一主机上时,Greenplum PXF 是否可以利用 HDFS 短路读取。 但是,我们进行了初步测试,似乎 pxf 没有利用短路读取。谷歌搜索后几乎什么都没有,所以我们不确定我们是否错过了什么。 我们使用 Greenplum 6.4(社区版)、pxf 5.11.2 和 CDH 6.3。

非常感谢任何参考、建议或 cmets。

【问题讨论】:

【参考方案1】:

正如 Sung Yu Wei 所说,要使用短路 hdfs 读取,客户端(在本例中为 pxf jvm)必须与存放块的数据节点位于同一位置。 hawq 就是这种情况,因为段与数据节点位于同一位置,而对于 gpdb,其最可能的段没有部署在 hadoop 集群中。

此外,hawq/pxf 使用的工作分配算法考虑了数据局部性,以将工作(在本例中为读取 hdfs 块)分配给位于同一位置的 hawq 段/pxf 代理,从而最大限度地提高 hdfs 读取短路的可能性。 gpdb/pxf 使用的工作分配不再这样做,而是将hdfs 数据块随机分配到segments/pxf。

如果您的部署架构有 gpdb 段和 hdfs 块并置,则可能值得修改工作分配以考虑数据局部性以最大化 hdfs 短路读取。

【讨论】:

【参考方案2】:

感谢 Stanley 和 Shivram。我们正在考虑将来为 Greenplum PXF 恢复此功能。但目前不支持。

【讨论】:

【参考方案3】:

旧版本的带有 hawq 的 PXF 实际上驻留在数据节点中并利用短路读取。 当前的 PXF 已更改为驻留在 Greenplum 段主机中,并且充当 hdfs 客户端。 我认为您可以调整 pxf 源代码并在具有短路读取的数据节点上设置 pxf。但是,你加快了 hdfspxf 通信,却减慢了 pxfgreenplum 段通信。

【讨论】:

以上是关于Greenplum PXF 是不是支持 HDFS 短路读取?的主要内容,如果未能解决你的问题,请参考以下文章

在greenplum pxf外部表中,从对象的json数组中获取元素时获取空字符串

PXF JSON 插件错误

如何使用greenplum外部表访问hadoop hdfs

是否可以使用 GPHDFS 从 Greenplum 一次指向多个 Hadoop 集群?

greenplum中的greenplum hadoop如何配置生成gphdfs.so

Greenplum 4.3 不支持这种“使用”语法