Support Questions
Find answers, ask questions, and share your expertise

Java error when updating hue_webhdfs

Highlighted

Java error when updating hue_webhdfs

New Contributor

 Using CDH 5.4.8

I removed the httpFS service from the name node and added it to another node.

Now Cloudera Manager says I have a config issue:

 

Hue: HDFS Web Interface Role

HDFS Web Interface Role refers to a Web Interface hdfs-HTTPFS-878ef3a341c87b9b0dfdeb69e1d6d5ef that does not exist in the dependency DFS service.
 
But if I try to change the setting, the web interface just hangs there.
I look in the cloudera-scm-server log and see:
 
2015-11-09 14:21:18,150 WARN 749509546@scm-web-249:org.apache.cxf.phase.PhaseInterceptorChain: Interceptor for {http://api.cloudera.com/}ApiRootResourceImpl has thrown exception, unwinding now
java.lang.NullPointerException
 
Plus LOTS of the java error spam.
 
From the old interface view, I see:
java.lang.NullPointerException:
at Preconditions.java line 187
in org.python.google.common.base.Preconditions checkNotNull()
 
Is there a way to update the HDFS Web Interface Role manually so Cloudera-Manager is aware of it?
 
Brian Andrus
1 REPLY 1
Highlighted

Re: Java error when updating hue_webhdfs

Super Collaborator

This is an issue that we've fixed in CM 5.2. But since I don't have the full error stack, I cannot confirm if this is the same. 

But since you're prompted with the message [1], and you are unable to navigate through the Configuration page in the Cloudera Manager UI.

 

A workaround is to set a new value for "hue_webhdfs" dependency using the Cloudera Manager API [2], to point it to an existing NAMENODE or HTTPFS.

 

  1. in http://[cloudera-manager-server]:7180/api/v10/cm/deployment
  2. then search for NAMENODE eg: xxx-NAMENODE-uuid or xxx-HTTPFS-uuid eg: { "name" : "hdfs-NAMENODE-deadbeefdeadbeefdeadbeef", "type" : "NAMENODE", ...
    > in this example the value is hdfs-NAMENODE-deadbeefdeadbeefdeadbeef
    Note: don't pick the xxx-XXXXX-BASE are they are irrelevant for this issue.
  3. search for your cluster name  eg: "clusters" : [ { "name" : "Cluster 1",
    > in this instance the value is Cluster 1
  4. get the hue service name. It'll be something like { "name" : "hue", "type" : "HUE", 
    > in this instance the value is hue
  5. from a linux command line use curl to update the service name
  6. $ curl -X PUT -H 'Content-Type:application/json' -u admin:admin -d '{ "items" : [ {

"name" : "hue_webhdfs",
"value" : "here goes the value from step 2"
} ]
}' "http://[cloudera-manager-server]:7180/api/v10/clusters/here goes the value from step 3/services/here goes the value from step 4/config"

 

Complete synthax referencing the example values:

$ curl -X PUT -H 'Content-Type:application/json' -u admin:admin -d '{ "items" : [ { 

"name" : "hue_webhdfs",
"value" : "hdfs-NAMENODE-deadbeefdeadbeefdeadbeef"
} ]
}' "http://[cloudera-manager-server]:7180/api/v10/clusters/Cluster 1/services/hue/config"

 

 

[1] Hue: HDFS Web Interface Role

HDFS Web Interface Role refers to a Web Interface hdfs-HTTPFS-878ef3a341c87b9b0dfdeb69e1d6d5ef that does not exist in the dependency DFS service.