当我们安装好并正常运行hdfs后输入http://xxxxxxxxx:50070会进入下图所示的页面。 其中Browse the filesystem 是查看文件系统的入口。

但是在发现这个链接一直无效。通过Chrome的开发工具可以看这个链接访问地址是:nn_browsedfscontent.jsp

下面是nn_browsedfscontent.jsp的代码

 <%@ page
contentType="text/html; charset=UTF-8"
import="java.io.*"
import="java.security.PrivilegedExceptionAction"
import="java.util.*"
import="javax.servlet.*"
import="javax.servlet.http.*"
import="org.apache.hadoop.conf.Configuration"
import="org.apache.hadoop.hdfs.*"
import="org.apache.hadoop.hdfs.server.namenode.*"
import="org.apache.hadoop.hdfs.server.datanode.*"
import="org.apache.hadoop.hdfs.protocol.*"
import="org.apache.hadoop.hdfs.security.token.delegation.*"
import="org.apache.hadoop.io.Text"
import="org.apache.hadoop.security.UserGroupInformation"
import="org.apache.hadoop.security.token.Token"
import="org.apache.hadoop.util.*"
import="java.text.DateFormat"
import="java.net.InetAddress"
import="java.net.URLEncoder"
%>
<%!
static String getDelegationToken(final NameNode nn,
HttpServletRequest request, Configuration conf)
throws IOException, InterruptedException {
final UserGroupInformation ugi = JspHelper.getUGI(request, conf);
Token<DelegationTokenIdentifier> token =
ugi.doAs(
new PrivilegedExceptionAction<Token<DelegationTokenIdentifier>>()
{
public Token<DelegationTokenIdentifier> run() throws IOException {
return nn.getDelegationToken(new Text(ugi.getUserName()));
}
});
return token.encodeToUrlString();
} public void redirectToRandomDataNode(
NameNode nn,
HttpServletRequest request,
HttpServletResponse resp,
Configuration conf
) throws IOException, InterruptedException {
String tokenString = null;
if (UserGroupInformation.isSecurityEnabled()) {
tokenString = getDelegationToken(nn, request, conf);
}
FSNamesystem fsn = nn.getNamesystem();
String datanode = fsn.randomDataNode();
String redirectLocation;
String nodeToRedirect;
int redirectPort;
if (datanode != null) {
redirectPort = Integer.parseInt(datanode.substring(datanode.indexOf(':')
+ 1));
nodeToRedirect = datanode.substring(0, datanode.indexOf(':'));
}
else {
nodeToRedirect = nn.getHttpAddress().getHostName();
redirectPort = nn.getHttpAddress().getPort();
}
String fqdn = InetAddress.getByName(nodeToRedirect).getCanonicalHostName();
redirectLocation = "http://" + fqdn + ":" + redirectPort +
"/browseDirectory.jsp?namenodeInfoPort=" +
nn.getHttpAddress().getPort() +
"&dir=/" +
(tokenString == null ? "" :
JspHelper.getDelegationTokenUrlParam(tokenString));
resp.sendRedirect(redirectLocation);
}
%> <html> <title></title> <body>
<%
NameNode nn = (NameNode)application.getAttribute("name.node");
Configuration conf = (Configuration) application.getAttribute(JspHelper.CURRENT_CONF);
redirectToRandomDataNode(nn, request, response, conf);
%>
<hr> <h2>Local logs</h2>
<a href="/logs/">Log</a> directory <%
out.println(ServletUtil.htmlFooter());
%>

从代码中可以看出实际是跳转到一台datanode的browseDirectory.jsp,如:

http://xxxxxxx:50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=/

而xxxxxxx是集群中一台datanode的主机名。

那么就可以从以下两个点出发去看为什么无效:

1.50075端口是否正常

2.使用的机器是否能通过主机面访问datanode

检查之后发现自己这两个都没有配置......

最后通过在hdfs-site.xml中添加如下配置

<property>
<name>dfs.datanode.http.address</name>
<value>10.0.0.234:50075</value>
</property>

在hosts中添加datanode的主机命和ip修复了这个问题

记录、共勉。

Hadoop Browse the filesystem 无效处理的更多相关文章

  1. 查看hadoop管理页面,修改本地hosts,Browse the filesystem

    问题: hadoop管理界面,ip:50070,中点击Browse the filesystem会出现网页无法访问,看地址栏,是集群中的主机名::50075/browseDirectory.jsp?n ...

  2. java使用FileSystem上传文件到hadoop文件系统

    import java.io.FileNotFoundException; import java.io.IOException; import java.net.URI; import org.ap ...

  3. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

  4. hadoop中常见的问题

    一.在root下进行格式化 这样很糟糕 这样的话,若是第一次装的话,我的建议是将生成的文件都删掉,恢复到最开始的状态, 1. 首先你需要删除 vi conf/hdfs-site.xml   配置文件的 ...

  5. VMware虚拟机中Hadoop服务的端口无法访问的问题

    今天安装了一个hadoop集群,因为已经在单个虚拟机上安装成功,所以初期安装相对顺利. 初始环境如下:       通过Vmware Esxi服务器虚拟机出来四台机器,每台机器的网络配置如下:     ...

  6. hadoop伪分布安装

    解压 将安装包hadoop-2.2.0.tar.gz存放到/home/haozhulin/install/目录下,并解压 #将hadoop解压到/home/haozhulin/install路径下,定 ...

  7. hadoop集群环境搭建之安装配置hadoop集群

    在安装hadoop集群之前,需要先进行zookeeper的安装,请参照hadoop集群环境搭建之zookeeper集群的安装部署 1 将hadoop安装包解压到 /itcast/  (如果没有这个目录 ...

  8. Hadoop的简单使用

    Hadoop的简单使用 使用Hadoop提供的命令行,向文件系统中创建一个文件. ./hadoop fs -put temp.txt hdfs://localhost:8888/ 说明: ./hado ...

  9. centos安装hadoop(伪分布式)

    在本机上装的CentOS 5.5 虚拟机, 软件准备:jdk 1.6 U26 hadoop:hadoop-0.20.203.tar.gz ssh检查配置 [root@localhost ~]# ssh ...

随机推荐

  1. LeetCode - 30. Substring with Concatenation of All Words

    30. Substring with Concatenation of All Words Problem's Link --------------------------------------- ...

  2. WPF后台设置xaml控件的样式System.Windows.Style

    WPF后台设置xaml控件的样式System.Windows.Style 摘-自 :感谢 作者: IT小兵   http://3w.suchso.com/projecteac-tual/wpf-zhi ...

  3. sql server聚合函数sum计算出来为空,怎样返回0

    通常我们计算数据库中表的数据有几个常用的聚合函数 1.count : 计数 2.sum: 计算总和 3.avg: 取平均值 4.max: 取最大值 5.min: 取最小值 6.isnull: 当返回数 ...

  4. 重新想象 Windows 8 Store Apps (36) - 通知: Tile 详解

    [源码下载] 重新想象 Windows 8 Store Apps (36) - 通知: Tile 详解 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 通知 Tile ...

  5. [moka同学笔记]bootstrap基础

    1.导航栏的制作 <nav class="nav navbar-default navbar-fixed-top" role="navigation"&g ...

  6. rabbitmq+ keepalived+haproxy高可用集群详细命令

    公司要用rabbitmq研究了两周,特把 rabbitmq 高可用的研究成果备下 后续会更新封装的类库 安装erlang wget http://www.gelou.me/yum/erlang-18. ...

  7. AJAX请求中含有数组解决办法

    当我们发送AJAX请求的数据中带有数组时,是不能像普通JSON数据一样,直接放在data里发送给后台,比如有这样一个数据需要发送给后台: { "orderId": 22, &quo ...

  8. android布局--Android fill_parent、wrap_content和match_parent的区别

    来自:http://www.cnblogs.com/nikyxxx/archive/2012/06/15/2551390.html 三个属性都用来适应视图的水平或垂直大小,一个以视图的内容或尺寸为基础 ...

  9. 在 SharePoint Server 2013 中配置建议和使用率事件类型

    http://technet.microsoft.com/zh-cn/library/jj715889.aspx 适用于: SharePoint Server 2013 利用使用事件,您可以跟踪用户与 ...

  10. 树莓派版的家用NAS服务器

    家里的文件越来越多,每个人的文件放得到处都是,需要的时候又找不到... 买个NAS服务器?太贵!太吵!太费电!... 好在我们有树莓派,自己动手,丰衣足食! 说做就做,主要分成以下三部分 加载双USB ...