This is really not an HBase issue but rather hadoop metrics issue (and it may 
not be that either) but I'll just post here to see if someone knows why this is 
happening.
I've created  a new Metrics2 Sink which will send the metrics over http to some 
server.

I can test this locally with no issues. However as soon as we place this in 
HBase, we get the following error:


2017-02-14 12:03:01,407 ERROR [main] master.HMasterCommandLine: Master exiting

java.lang.RuntimeException: Failed construction of Master: class 
org.apache.hadoop.hbase.master.HMaster.

            at 
org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2422)
...

Caused by: java.lang.NoSuchFieldError: INSTANCE

            at 
org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)

            at 
org.apache.http.impl.conn.BasicHttpClientConnectionManager.getDefaultRegistry(BasicHttpClientConnectionManager.java:117)

            at 
org.apache.http.impl.conn.BasicHttpClientConnectionManager.<init>(BasicHttpClientConnectionManager.java:161)

            at 
com.bing.hadoop.metrics.MdmServiceClient.<init>(MdmServiceClient.java:30)

            at com.bing.hadoop.metrics.MdmSink.init(MdmSink.java:37)

I have not even set the URL yet and my url is plain http and not https. I don't 
want SSL at all in this case.
Here's my construction code:

public MdmServiceClient(String server, int port) throws Exception {
    HttpClientConnectionManager connectionManager = new 
BasicHttpClientConnectionManager();
    _httpClient = 
HttpClientBuilder.create().setConnectionManager(connectionManager).build();
    _uri = new 
URIBuilder().setScheme("http").setHost(server).setPort(port).setPath("/metrics").build();
}

Line 30 refers to new BasicHttp...

This is line 37 in MdmSink:

_mdmClient = new MdmServiceClient(server, port);

thanks

Reply via email to