close
登入會發現看不到頁面
原因:
此處被轉址 但本機端無法認到
來看看code
nn_browsedfscontent.jsp
<%@ page 2 contentType="text/html; charset=UTF-8" 3 import="java.io.*" 4 import="java.security.PrivilegedExceptionAction" 5 import="java.util.*" 6 import="javax.servlet.*" 7 import="javax.servlet.http.*" 8 import="org.apache.hadoop.conf.Configuration" 9 import="org.apache.hadoop.hdfs.*" 10 import="org.apache.hadoop.hdfs.server.namenode.*" 11 import="org.apache.hadoop.hdfs.server.datanode.*" 12 import="org.apache.hadoop.hdfs.protocol.*" 13 import="org.apache.hadoop.hdfs.security.token.delegation.*" 14 import="org.apache.hadoop.io.Text" 15 import="org.apache.hadoop.security.UserGroupInformation" 16 import="org.apache.hadoop.security.token.Token" 17 import="org.apache.hadoop.util.*" 18 import="java.text.DateFormat" 19 import="java.net.InetAddress" 20 import="java.net.URLEncoder" 21 %> 22 <%! 23 static String getDelegationToken(final NameNode nn, 24 HttpServletRequest request, Configuration conf) 25 throws IOException, InterruptedException { 26 final UserGroupInformation ugi = JspHelper.getUGI(request, conf); 27 Token<DelegationTokenIdentifier> token = 28 ugi.doAs( 29 new PrivilegedExceptionAction<Token<DelegationTokenIdentifier>>() 30 { 31 public Token<DelegationTokenIdentifier> run() throws IOException { 32 return nn.getDelegationToken(new Text(ugi.getUserName())); 33 } 34 }); 35 return token.encodeToUrlString(); 36 } 37 38 public void redirectToRandomDataNode( 39 NameNode nn, 40 HttpServletRequest request, 41 HttpServletResponse resp, 42 Configuration conf 43 ) throws IOException, InterruptedException { 44 String tokenString = null; 45 if (UserGroupInformation.isSecurityEnabled()) { 46 tokenString = getDelegationToken(nn, request, conf); 47 } 48 FSNamesystem fsn = nn.getNamesystem(); 49 String datanode = fsn.randomDataNode(); 50 String redirectLocation; 51 String nodeToRedirect; 52 int redirectPort; 53 if (datanode != null) { 54 redirectPort = Integer.parseInt(datanode.substring(datanode.indexOf(':') 55 + 1)); 56 nodeToRedirect = datanode.substring(0, datanode.indexOf(':')); 57 } 58 else { 59 nodeToRedirect = nn.getHttpAddress().getHostName(); 60 redirectPort = nn.getHttpAddress().getPort(); 61 } 62 String fqdn = InetAddress.getByName(nodeToRedirect).getCanonicalHostName(); 63 redirectLocation = "http://" + fqdn + ":" + redirectPort + 64 "/browseDirectory.jsp?namenodeInfoPort=" + 65 nn.getHttpAddress().getPort() + 66 "&dir=/" + 67 (tokenString == null ? "" : 68 JspHelper.getDelegationTokenUrlParam(tokenString)); 69 resp.sendRedirect(redirectLocation); 70 } 71 %> 72 73 <html> 74 75 <title></title> 76 77 <body> 78 <% 79 NameNode nn = (NameNode)application.getAttribute("name.node"); 80 Configuration conf = (Configuration) application.getAttribute(JspHelper.CURRENT_CONF); 81 redirectToRandomDataNode(nn, request, response, conf); 82 %> 83 <hr> 84 85 <h2>Local logs</h2> 86 <a href="/logs/">Log</a> directory 87 88 <% 89 out.println(ServletUtil.htmlFooter()); 90 %>
可以從上面的code看出他被隨機轉址至隨機個node 所以我們會在瀏覽器看到有時顯示master01 有時顯示slave01之類
至於為什麼code的設計要如此...尚未得知
試了在hdfs-site.xml裡加入
<property>
<name>dfs.datanode.http.address</name>
<value>10.0.0.234:50075</value>
</property>
失敗
目前想到的暫時解決辦法是在本機端C:\window\system32\drivers\hosts裡加入
192.168.70.101 master
192.168.70.102 slave01
暫時就可以瀏覽了
全站熱搜