You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ambari.apache.org by "Qin Liu (JIRA)" <ji...@apache.org> on 2016/06/06 05:13:59 UTC

[jira] [Updated] (AMBARI-16852) Update metrics collector pom.xml to use httpclient-4.2.5.jar

     [ https://issues.apache.org/jira/browse/AMBARI-16852?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Qin Liu updated AMBARI-16852:
-----------------------------
    Description: 
httpclient-4.0.1.jar used by AMS collector does not have method URLEncodedUtils.parse (final URI uri, final String encoding). This will cause the metrics not to be populated and the collector log to be flooded with the following exception when the user configures http authentication filter without enabling Kerberos:
 
21:54:08,215 ERROR [1831490216@qtp-1883237069-7582] log:87 - Error for /ws/v1/timeline/metrics
java.lang.NoSuchMethodError: org.apache.http.client.utils.URLEncodedUtils.parse(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/util/List;
        at org.apache.hadoop.security.authentication.server.PseudoAuthenticationHandler.getUserName(PseudoAuthenticationHandler.java:143)
        at org.apache.hadoop.security.authentication.server.PseudoAuthenticationHandler.authenticate(PseudoAuthenticationHandler.java:179)
        at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:507)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
        at org.apache.hadoop.http.HttpServer2$QuotingInputFilter.doFilter(HttpServer2.java:1224)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
        at org.apache.hadoop.http.NoCacheFilter.doFilter(NoCacheFilter.java:45)
        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)

Steps to reproduce:
1. install a cluster with default from Ambari Web UI
2. configure Ambari Metrics service in distributed mode
3. Add the following properties in Custom core-site from Ambari Web UI:
   1). hadoop.http.authentication.signature.secret.file=/etc/security/http_secret
   2). hadoop.http.filter.initializers=org.apache.hadoop.security.AuthenticationFilterInitialize
4. create /etc/security/http_secret text file on each node
5. restart HDFS, YARN, Mapreduce2, HBase, Kafka, and Ambari Metrics service
6. Metrics on dashboard and HDFS, YARN, HBase, Kafka, and Amabari Metrics will show No Data Available.


  was:
httpclient-4.0.1.jar used by AMS collector does not have method URLEncodedUtils.parse (final URI uri, final String encoding). This will cause the metrics not to be populated and the collector log to be flooded with the following exception when the user sets http authentication filter without enabling Kerberos:
 
21:54:08,215 ERROR [1831490216@qtp-1883237069-7582] log:87 - Error for /ws/v1/timeline/metrics
java.lang.NoSuchMethodError: org.apache.http.client.utils.URLEncodedUtils.parse(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/util/List;
        at org.apache.hadoop.security.authentication.server.PseudoAuthenticationHandler.getUserName(PseudoAuthenticationHandler.java:143)
        at org.apache.hadoop.security.authentication.server.PseudoAuthenticationHandler.authenticate(PseudoAuthenticationHandler.java:179)
        at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:507)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
        at org.apache.hadoop.http.HttpServer2$QuotingInputFilter.doFilter(HttpServer2.java:1224)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
        at org.apache.hadoop.http.NoCacheFilter.doFilter(NoCacheFilter.java:45)
        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)

Steps to reproduce:
Add the following properties in Custom core-site from Ambari Web UI:
1. hadoop.http.authentication.signature.secret=test
2. hadoop.http.authentication.signature.secret.file=/etc/security/http_secret
3. hadoop.http.filter.initializers=org.apache.hadoop.security.AuthenticationFilterInitializer



> Update metrics collector pom.xml to use httpclient-4.2.5.jar
> ------------------------------------------------------------
>
>                 Key: AMBARI-16852
>                 URL: https://issues.apache.org/jira/browse/AMBARI-16852
>             Project: Ambari
>          Issue Type: Bug
>          Components: ambari-metrics
>    Affects Versions: 2.1.0, 2.2.0
>            Reporter: Qin Liu
>            Assignee: Qin Liu
>             Fix For: trunk
>
>         Attachments: AMBARI-16852.patch
>
>
> httpclient-4.0.1.jar used by AMS collector does not have method URLEncodedUtils.parse (final URI uri, final String encoding). This will cause the metrics not to be populated and the collector log to be flooded with the following exception when the user configures http authentication filter without enabling Kerberos:
>  
> 21:54:08,215 ERROR [1831490216@qtp-1883237069-7582] log:87 - Error for /ws/v1/timeline/metrics
> java.lang.NoSuchMethodError: org.apache.http.client.utils.URLEncodedUtils.parse(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/util/List;
>         at org.apache.hadoop.security.authentication.server.PseudoAuthenticationHandler.getUserName(PseudoAuthenticationHandler.java:143)
>         at org.apache.hadoop.security.authentication.server.PseudoAuthenticationHandler.authenticate(PseudoAuthenticationHandler.java:179)
>         at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:507)
>         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
>         at org.apache.hadoop.http.HttpServer2$QuotingInputFilter.doFilter(HttpServer2.java:1224)
>         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
>         at org.apache.hadoop.http.NoCacheFilter.doFilter(NoCacheFilter.java:45)
>         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)
> Steps to reproduce:
> 1. install a cluster with default from Ambari Web UI
> 2. configure Ambari Metrics service in distributed mode
> 3. Add the following properties in Custom core-site from Ambari Web UI:
>    1). hadoop.http.authentication.signature.secret.file=/etc/security/http_secret
>    2). hadoop.http.filter.initializers=org.apache.hadoop.security.AuthenticationFilterInitialize
> 4. create /etc/security/http_secret text file on each node
> 5. restart HDFS, YARN, Mapreduce2, HBase, Kafka, and Ambari Metrics service
> 6. Metrics on dashboard and HDFS, YARN, HBase, Kafka, and Amabari Metrics will show No Data Available.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)