我们有少量的Greenplum数据库。

尝试在其中读取外部表时。
收到错误

proddb=# select count(*) from ext_table;
ERROR:  external table gphdfs protocol command ended with error. sh: java: command not found  (seg0 slice1 sdw:
40000 pid=8675)
DETAIL:
Command: 'gphdfs://path/to/hdfs External table revenuereport_stg0, file gphdfs://Path/to/hdfs

我们尝试过:

在greenplum主主机上检查了Java env。

还检查了,设置-GPDB的参数

[gpadmin @ admin〜] $ gpconfig -c gp_hadoop_home -v“'/ usr / lib / gphd'”
[gpadmin @ admin〜] $ gpconfig -c gp_hadoop_target_version -v“'gphd-2.0'”

但这是失败的错误
[gpadmin@mdw ~]$ gpconfig -c gp_hadoop_home -v "'/usr/lib/gphd'"
20170123:02:02:04:017762 gpconfig:mdw:gpadmin-[ERROR]:-failed updating the postgresql.conf files on host: sdw
20170123:02:02:04:017762 gpconfig:mdw:gpadmin-[ERROR]:-failed updating the postgresql.conf files on host: mdw
20170123:02:02:09:017762 gpconfig:mdw:gpadmin-[ERROR]:-finished with errors

因此,无法从greenplum主机测试HDFS访问。
Checked if  HDFS is accessible from any of the segment servers

[gpadmin@sdw1 ~]$hdfs dfs -ls hdfs://hdm2:8020/

任何帮助,将不胜感激!

最佳答案

对我来说似乎是一个路径问题。请在hadoop-env.sh文件中设置正确的JAVA_HOME

另外,请阅读以下文章,以更好地了解如何使用gpdb配置gphdfs。

https://discuss.pivotal.io/hc/en-us/articles/202635496-How-to-access-HDFS-data-via-GPDB-external-table-with-gphdfs-protocol

https://discuss.pivotal.io/hc/en-us/articles/203083906-Understanding-GPHDFS-Configurations

https://discuss.pivotal.io/hc/en-us/articles/221492507-One-time-HDFS-Protocol-Installation-for-GPHDFS-access-to-HDP-2-x-cluster

谢谢
Pratheesh Nair

09-26 12:43