Querying PXF external tables is failing with the below error:
Errore SQL [XX000]: ERROR: remote component error (500) from '127.0.0.1:5888': {"PXFFragments":[ (libchurl.c:985) (seg0 slice1 10.1.1.1:6000 pid=102595) (libchurl.c:985)
Dove: External table external_table_name, line 1 of file pxf://path/to/externa_table_name?profile=HdfsTextMulti
On the localhost log from the segment reporting the error we can see:
SEVERE: Servlet.service() for servlet [PXF REST Service] in context with path [/pxf] threw exception [javax.servlet.ServletException: Servlet execution threw an exception] with root cause java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonGenerator.writeStartObject(Ljava/lang/Object;)V
The issue is caused by a conflicting jackson library under $PXF_BASE/lib/jackson-core-2.7.4.jar. After removing it, these are the files that should remain in the system:
/usr/local/pxf-gp6/lib/shared/jackson-annotations-2.11.0.jar /usr/local/pxf-gp6/lib/shared/jackson-core-asl-1.9.13.jar /usr/local/pxf-gp6/lib/shared/jackson-databind-2.11.0.jar /usr/local/pxf-gp6/lib/shared/jackson-mapper-asl-1.9.13.jar /usr/local/pxf-gp6/lib/shared/jackson-core-2.11.0.jar
Make sure there are no conflicting libraries and if there are, remove them and then run a pxf cluster sync & pxf cluster restart.
This should be checked on every segment host.