-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/60098/
-----------------------------------------------------------

Review request for Ambari, Aravindan Vijayan, Dmytro Sen, and Robert Levas.


Summary (updated)
-----------------

Add Kerberos HTTP SPNEGO authentication support to Accumulo


Bugs: AMBARI-21230
    https://issues.apache.org/jira/browse/AMBARI-21230


Repository: ambari


Description (updated)
-------

This is a subtask of AMBARI-14384 "Ambari Metrics doesn't use SPNEGO to 
authenticate".

In a Kerberos enabled cluster with SPNEGO enabled on Hadoop APIs, Ambari 
Metrics Collector web-console will be Kerberos HTTP SPNEGO enabled too. But 
Accumulo sinks, clients of Ambari Metrics Collector, currently do not support 
Kerberos HTTP SPNEGO authentication.

e.g., /var/log/accumulo/tserver_<tserver-host>.debug.log:
2017-06-06 23:07:39,918 [timeline.HadoopTimelineMetricsSink] INFO : Received 
WWW-Authentication header:Negotiate, for URL: 
http://<metrics-collector-host>:6188/ws/v1/timeline/metrics
2017-06-06 23:07:39,927 [timeline.HadoopTimelineMetricsSink] INFO : No live 
collector to send metrics to. Metrics to be sent will be discarded. This 
message will be skipped for the next 20 times.

In addition, this JIRA is going to fix the following sink connection exception 
which will lead to miss one metrics submission right after WWW-
Authentication negociate:

2017-06-06 14:30:19,722 ERROR [timeline] impl.MetricsSinkAdapter: Got sink 
exception, retry in 602ms
java.lang.IllegalStateException: Already connected
        at 
sun.net.www.protocol.http.HttpURLConnection.setRequestProperty(HttpURLConnection.java:3053)
        at 
org.apache.hadoop.metrics2.sink.timeline.AbstractTimelineMetricsSink.emitMetricsJson(AbstractTimelineMetricsSink.java:201)
        at 
org.apache.hadoop.metrics2.sink.timeline.AbstractTimelineMetricsSink.emitMetrics(AbstractTimelineMetricsSink.java:302)
        at 
org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink.putMetrics(HadoopTimelineMetricsSink.java:352)
        at 
org.apache.hadoop.metrics2.impl.MetricsSinkAdapter.consume(MetricsSinkAdapter.java:186)
        at 
org.apache.hadoop.metrics2.impl.MetricsSinkAdapter.consume(MetricsSinkAdapter.java:43)
        at 
org.apache.hadoop.metrics2.impl.SinkQueue.consumeAll(SinkQueue.java:87)
        at 
org.apache.hadoop.metrics2.impl.MetricsSinkAdapter.publishMetricsFromQueue(MetricsSinkAdapter.java:134)
        at 
org.apache.hadoop.metrics2.impl.MetricsSinkAdapter$1.run(MetricsSinkAdapter.java:88)
2017-06-06 14:30:28,781 INFO  [timeline] timeline.HadoopTimelineMetricsSink: 
Using cached app cookie for 
URL:http://<metrics-collector-host>:6188/ws/v1/timeline/metrics


Diffs (updated)
-----

  
ambari-metrics/ambari-metrics-common/src/main/java/org/apache/hadoop/metrics2/sink/timeline/AbstractTimelineMetricsSink.java
 644d978 
  
ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/configuration/accumulo-env.xml
 1e5eb54 
  
ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_configuration.py
 f65b68a 
  
ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/params.py
 5d21514 
  
ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/templates/accumulo_jaas.conf.j2
 PRE-CREATION 


Diff: https://reviews.apache.org/r/60098/diff/1/


Testing (updated)
-------

The fix has passed the existing testcases. 
The fix has been manually tested via HDP/trunk.


Thanks,

Qin Liu

Reply via email to