Sfoglia il codice sorgente

HADOOP-4572. Can not access user logs - Jetty is not configured by default to serve aliases/symlinks (ahmed via tucu)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1376753 13f79535-47bb-0310-9956-ffa450edef68
Alejandro Abdelnur 12 anni fa
parent
commit
fc1fab9084

+ 3 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -428,6 +428,9 @@ Branch-2 ( Unreleased changes )
 
 
     HADOOP-8632. Configuration leaking class-loaders (Costin Leau via bobby)
     HADOOP-8632. Configuration leaking class-loaders (Costin Leau via bobby)
 
 
+    HADOOP-4572. Can not access user logs - Jetty is not configured by default 
+    to serve aliases/symlinks (ahmed via tucu)
+
   BREAKDOWN OF HDFS-3042 SUBTASKS
   BREAKDOWN OF HDFS-3042 SUBTASKS
 
 
     HADOOP-8220. ZKFailoverController doesn't handle failure to become active
     HADOOP-8220. ZKFailoverController doesn't handle failure to become active

+ 6 - 0
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeys.java

@@ -172,6 +172,12 @@ public class CommonConfigurationKeys extends CommonConfigurationKeysPublic {
   public static final String DEFAULT_HADOOP_HTTP_STATIC_USER =
   public static final String DEFAULT_HADOOP_HTTP_STATIC_USER =
     "dr.who";
     "dr.who";
 
 
+  /** Enable/Disable aliases serving from jetty */
+  public static final String HADOOP_JETTY_LOGS_SERVE_ALIASES =
+    "hadoop.jetty.logs.serve.aliases";
+  public static final boolean DEFAULT_HADOOP_JETTY_LOGS_SERVE_ALIASES =
+    true;
+
   /* Path to the Kerberos ticket cache.  Setting this will force
   /* Path to the Kerberos ticket cache.  Setting this will force
    * UserGroupInformation to use only this ticket cache file when creating a
    * UserGroupInformation to use only this ticket cache file when creating a
    * FileSystem instance.
    * FileSystem instance.

+ 6 - 0
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/HttpServer.java

@@ -330,6 +330,12 @@ public class HttpServer implements FilterContainer {
       Context logContext = new Context(parent, "/logs");
       Context logContext = new Context(parent, "/logs");
       logContext.setResourceBase(logDir);
       logContext.setResourceBase(logDir);
       logContext.addServlet(AdminAuthorizedServlet.class, "/*");
       logContext.addServlet(AdminAuthorizedServlet.class, "/*");
+      if (conf.getBoolean(
+          CommonConfigurationKeys.HADOOP_JETTY_LOGS_SERVE_ALIASES,
+          CommonConfigurationKeys.DEFAULT_HADOOP_JETTY_LOGS_SERVE_ALIASES)) {
+        logContext.getInitParams().put(
+            "org.mortbay.jetty.servlet.Default.aliases", "true");
+      }
       logContext.setDisplayName("logs");
       logContext.setDisplayName("logs");
       setContextAttributes(logContext, conf);
       setContextAttributes(logContext, conf);
       defaultContexts.put(logContext, true);
       defaultContexts.put(logContext, true);

+ 9 - 0
hadoop-common-project/hadoop-common/src/main/resources/core-default.xml

@@ -1088,4 +1088,13 @@
   </description>
   </description>
 </property>
 </property>
 
 
+<property>
+  <name>hadoop.jetty.logs.serve.aliases</name>
+  <value>true</value>
+  <description>
+    Enable/Disable aliases serving from jetty
+  </description>
+</property>
+
+
 </configuration>
 </configuration>