Problem description:

Metacrawl failing in replicator for IWX version 2.8.0+.


Affected Infoworks Versions

2.8.0+


Error message:


Error thrown can be seen in below mentioned location:

tail -f /opt/infoworks/RestAPI/apache-tomcat-7.0.63/logs/catalina.out

The error looks like:

java.lang.NoClassDefFoundError: org/apache/hadoop/hive/metastore/HiveMetaStoreClient 
        at infoworks.tools.hive.HiveUtils.getListofSchemasandTables(HiveUtils.java:1787) 
        at infoworks.query.service.metacrawl.HiveService.getTables(HiveService.java:111) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
        at java.lang.reflect.Method.invoke(Method.java:498) 
        at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) 
        at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185) 
        at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) 
        at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) 
        at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
        at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) 
        at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
        at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) 
        at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469) 
        at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400) 
        at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) 
        at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) 
        at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) 
        at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) 
        at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699) 
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 


Solution/Workaround:


1)We copied the hive-metastore.jar from /usr/hdp/current/hive-metastore/lib/ and pasted in 
/opt/infoworks/RestAPI/apache-tomcat-7.0.63/webapps/QueryService/WEB-INF/lib
2)We restarted the query service after adding the above-mentioned jar.
3)Triggered Metacrawl from UI and It worked fine as expected.