Support Questions

Find answers, ask questions, and share your expertise

dashboard stack trace after reconfiguring WebHDFS role for service Hue

avatar
Guru

Hi,

 

service Hue reported one concerning setting. It was the assignment of the WebHDFS role shall be HTTPFS instead of using a namenode (or similar to this...).

In the related configuration entry I clicked "reset to default value" and after that I received a stack trace which I shall send to Cloudera 😉

Here it is:

 

Error

1 ACCEPTED SOLUTION

avatar

When I tried this out (removing the WebHDFS configuration in Hue), then I was still able to navigate to the hue configuration page and set it to a legal value. I didn't get these stack traces.

 

Do you have HA or security enabled? Trying to figure out how to reproduce your issue.

 

You should be able to use the REST API to set this value.

 

First, use your web browser to figure out the name of your NameNode or HTTPFS role (assuming your cluster name is "Cluster 1" and service name is "hdfs"):
http://<host>:7180/api/v6/clusters/Cluster%201/services/hdfs/roles

 

Then set the configuration in hue via command-line curl (or any other REST tool you like). Replace admin:admin with your username and password. Replace the value with the role name in the previous step. Replace host, clustername, and service name as needed in the URL.

curl -X PUT -u "admin:admin" -i \
-H "content-type:application/json" \
-d '{ "items": [
{
"name": "hue_webhdfs",
"value": "HDFS-1-NAMENODE-8f4f1f5bac54d4060e695300fac67949"
}
] }' \
http://<host>:7180/api/v6/clusters/Cluster%201/services/hue/config

View solution in original post

5 REPLIES 5

avatar
Guru

and these are the entries from /var/log/cloudera-scm-server/cloudera-scm-server.log:

...

2014-05-06 15:34:35,618 INFO [WebServerImpl:mortbay.log@67] Started SelectChannelConnector@0.0.0.0:7180
2014-05-06 15:34:35,619 INFO [WebServerImpl:cmf.WebServerImpl@292] Started Jetty server.
2014-05-06 15:34:36,820 INFO [SearchRepositoryManager-0:components.SearchRepositoryManager@411] Num docs:3110
2014-05-06 15:34:36,826 INFO [SearchRepositoryManager-0:components.SearchRepositoryManager@352] Constructing repo:2014-05-06T13:34:36.826Z
2014-05-06 15:34:41,445 INFO [SearchRepositoryManager-0:components.SearchRepositoryManager@354] Finished constructing repo:2014-05-06T13:34:41.445Z
2014-05-06 15:34:42,055 INFO [454109838@scm-web-5:cmf.AuthenticationSuccessEventListener@32] Authentication success for user: admin
2014-05-06 15:34:44,776 INFO [JvmPauseMonitor:debug.JvmPauseMonitor@236] Detected pause in JVM or host machine (e.g. a stop the world GC, or JVM not scheduled): paused approximately 1913ms: GC pool 'PS MarkSweep' had collection(s): count=1 time=1851ms, GC pool 'PS Scavenge' had collection(s): count=1 time=183ms
2014-05-06 15:34:44,776 INFO [JvmPauseMonitor:debug.JvmPauseMonitor@236] Detected pause in JVM or host machine (e.g. a stop the world GC, or JVM not scheduled): paused approximately 1700ms: GC pool 'PS MarkSweep' had collection(s): count=1 time=1851ms, GC pool 'PS Scavenge' had collection(s): count=1 time=183ms
2014-05-06 15:34:46,063 INFO [791948358@scm-web-8:common.JFrameException@167] Exception report generated accessing http://hadoop-pg-5:7180/cmf/services/landingPageStatusContent
com.cloudera.enterprise.JsonUtil$JsonRuntimeException: org.codehaus.jackson.map.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: com.google.common.collect.RegularImmutableList[6]->com.cloudera.server.web.cmf.actionables.Actionable["details"])
at com.cloudera.enterprise.JsonUtil.valueAsString(JsonUtil.java:168)
at com.cloudera.enterprise.JsonUtil.valueAsString(JsonUtil.java:155)
at com.cloudera.server.web.cmf.LandingPageController.servicesTable(LandingPageController.java:301)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
at org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:78)
at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:131)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at com.jamonapi.http.JAMonServletFilter.doFilter(JAMonServletFilter.java:48)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at com.cloudera.enterprise.JavaMelodyFacade$MonitoringFilter.doFilter(JavaMelodyFacade.java:109)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.handler.StatisticsHandler.handle(StatisticsHandler.java:53)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: org.codehaus.jackson.map.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: com.google.common.collect.RegularImmutableList[6]->com.cloudera.server.web.cmf.actionables.Actionable["details"])
at org.codehaus.jackson.map.JsonMappingException.wrapWithPath(JsonMappingException.java:218)
at org.codehaus.jackson.map.JsonMappingException.wrapWithPath(JsonMappingException.java:183)
at org.codehaus.jackson.map.ser.SerializerBase.wrapAndThrow(SerializerBase.java:131)
at org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:183)
at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:142)
at org.codehaus.jackson.map.ser.ContainerSerializers$IndexedListSerializer.serializeContents(ContainerSerializers.java:304)
at org.codehaus.jackson.map.ser.ContainerSerializers$IndexedListSerializer.serializeContents(ContainerSerializers.java:254)
at org.codehaus.jackson.map.ser.ContainerSerializers$AsArraySerializer.serialize(ContainerSerializers.java:142)
at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:600)
at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:280)
at org.codehaus.jackson.map.ObjectMapper._configAndWriteValue(ObjectMapper.java:2267)
at org.codehaus.jackson.map.ObjectMapper.writeValueAsString(ObjectMapper.java:1836)
at com.cloudera.enterprise.JsonUtil.valueAsString(JsonUtil.java:163)
... 72 more
Caused by: java.lang.NullPointerException
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:191)
at com.cloudera.server.web.common.I18n.t(I18n.java:174)
at com.cloudera.server.web.common.I18n.t(I18n.java:120)
at com.cloudera.server.web.cmf.actionables.Actionable.getDetails(Actionable.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.jackson.map.ser.BeanPropertyWriter.get(BeanPropertyWriter.java:467)
at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:402)
at org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:175)
... 81 more

avatar
Guru

Things are getting worse....

 

I stopped the Hue service to try if I can configure it afterwards. Sadly not, and now Hue doesn't start up again. At starting service Hue I receive the following error:

 

Command failed to run because service hue has invalid configuration. Review and correct its configuration. First error: Missing required value: HDFS Web Interface Role

 

**bleep**, we need Hue urgently.

 

Is it somehow possible to configure Hue via the REST API, or do I have to dive into the embedded PostgreSQL to fix the issue ?!?!

Seems like I have to assign the availble HTTPFS service to Hue's "HDFS Web Interface Role" ...

 

 

 

avatar

When I tried this out (removing the WebHDFS configuration in Hue), then I was still able to navigate to the hue configuration page and set it to a legal value. I didn't get these stack traces.

 

Do you have HA or security enabled? Trying to figure out how to reproduce your issue.

 

You should be able to use the REST API to set this value.

 

First, use your web browser to figure out the name of your NameNode or HTTPFS role (assuming your cluster name is "Cluster 1" and service name is "hdfs"):
http://<host>:7180/api/v6/clusters/Cluster%201/services/hdfs/roles

 

Then set the configuration in hue via command-line curl (or any other REST tool you like). Replace admin:admin with your username and password. Replace the value with the role name in the previous step. Replace host, clustername, and service name as needed in the URL.

curl -X PUT -u "admin:admin" -i \
-H "content-type:application/json" \
-d '{ "items": [
{
"name": "hue_webhdfs",
"value": "HDFS-1-NAMENODE-8f4f1f5bac54d4060e695300fac67949"
}
] }' \
http://<host>:7180/api/v6/clusters/Cluster%201/services/hue/config

avatar
Guru

Hi Darren,

 

thank you so much, problem is solved by setting the hue_webhdfs parameter accordingly.

Yes, I am using Namenode-HA in that cluster. Currently the service Hue doesn't show a concerning setting, but I'll try to reproduce the error (after we finished our current tasks 😉 ).

 

Also big thanks to Harsh J for replying.

 

br, Gerd

avatar
Cloudera Employee

Knowledge article 2940 has been created.