windows编写web程序操作HDFS

原创 2016年06月02日 17:45:06

计划编写spring程序实现windows下操作HDFS功能。其主要代码如下:

public class HdfsConnect {
// private final Map<Long, HdfsFrom> Config = new Hashtable<>();//存储user的数据结构
public FileSystem fs;

@RequestMapping(value = "hdfs/Opera", method = RequestMethod.GET)
    public String connectHdfs()
    {       
        return "hdfs/Opera";
    }

@RequestMapping(value ="hdfs/connect", method = RequestMethod.GET)
public String connectHdfs(Map<String, Object> model){
model.put("HdfsFrom", new HdfsFrom());
return "hdfs/connect";
}
// F:\hadoop\hadoop-2.5.2
@RequestMapping(value ="hdfs/connect", method = RequestMethod.POST)
public View connectHdfs(HdfsFrom hdfs) throws IOException{
System.setProperty("hadoop.home.dir", "F:\\hadoop\\hadoop-2.5.2");
Configuration conf = new Configuration();
conf.set("mapred.job.tracker", hdfs.getJobtracker());
conf.set("fs.default.name",hdfs.getNamenode());
fs = FileSystem.get(conf);
fs.mkdirs(new Path("/test"));
/*fs.copyFromLocalFile(new Path("C:\\Users\\DELL\\Documents\\申请格式.doc"), new Path("hdfs://192.168.1.121:9000/"));*/
System.currentTimeMillis();
return new RedirectView("/hdfs/Opera", true, false);
}
}

通过调试发现程序在fs.mkdir()处出现错误。错误信息为:

java.net.ConnectException: Call From DELL-PC/169.254.56.162 to Master:9000 failed on connection exception: java.net.ConnectException:

169.254.56.162该IP地址为Virtual Box的IP v4地址,将Virtual Box软件卸载,错误信息变成:

java.net.ConnectException: Call From DELL-PC/192.168.1.104 to Master:9000 failed on connection exception: java.net.ConnectException:

这时候,程序是通过本机IP发送请求去连接Hadoop集群,但是连接发生错误!具体的错误提示信息如下:

java.net.ConnectException: Call From DELL-PC/192.168.1.102 to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused: no further information; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
	sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	java.lang.reflect.Constructor.newInstance(Unknown Source)
	org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:783)
	org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:730)
	org.apache.hadoop.ipc.Client.call(Client.java:1415)
	org.apache.hadoop.ipc.Client.call(Client.java:1364)
	org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
	com.sun.proxy.$Proxy49.mkdirs(Unknown Source)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
	org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
	com.sun.proxy.$Proxy49.mkdirs(Unknown Source)

发生该错误的原因是windows连接Hadoop集群出现问题。需要在hdfs-site.xml中设置

<property>  
<name>dfs.permissions</name>  
<value>false</value>  
</property>

重新跑一遍,仍然出现错误。最后在http://blog.csdn.net/u010536377/article/details/48949247博客上找到解决方案,只需要将core-site.xml中的fs.defaultFS中的localhost改成IP即成功完成web端操作HDFS的工作


通过web页面查看HDFS文件系统

一、背景 因为做hadoop的开发,所以有些时候需要通过web对hdfs文件系统进行查看。如果开发机器是Linux系统,那么只要更改/etc/hosts文件就可以了,但是在Windows下,通过we...

Hadoop webHDFS设置和使用说明

1.配置 namenode的hdfs-site.xml是必须将dfs.webhdfs.enabled属性设置为true,否则就不能使用webhdfs的LISTSTATUS、LISTFILESTA...
  • iloveyin
  • iloveyin
  • 2014年06月03日 15:04
  • 14702

HDFS的web接口

HDFS对外提供了可供访问的http server,开放了很多端口,下面介绍常用的几个端口。 50070端口 查看NameNode状态,如图4-59所示。 图4-60 ...

HDFS-API调用-基于MVC框架实现WEB操作记录

PS:完成时间是2016年3月23日,至今已有一段时间了,功能还未完善,忙于其它事情,所以难免有bug,只做一个砖头,引引玉吧! Utils:// 判断路径是否存在 public stati...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Windows下安装Hadoop

Windows10下安装Hadoop2.6,Windows10下编译64位Hadoop2.x。详细记录了Windows10版本下对Hadoop的编译、安装步骤,以及相关包或者软件下载安装过程。 不需要...
  • dream_an
  • dream_an
  • 2016年07月08日 17:18
  • 16248

教你Windows平台安装配置Hadoop2.5.2(不借助cygwin)

刚入门hadoop,开发环境的搭建估计能把一部分人逼走。我也差点疯了。 估计能看到这篇文章的小伙伴们都饱受cygwin和各种配置文件的折磨了吧?如果你不想在linux上搭建,又不想安装cygwin。...
  • antgan
  • antgan
  • 2016年07月29日 17:56
  • 15504

Hadoop HDFS (3) JAVA访问HDFS

现在我们来深入了解一下Hadoop的FileSystem类。这个类是用来跟Hadoop的文件系统进行交互的。虽然我们这里主要是针对HDFS,但是我们还是应该让我们的代码只使用抽象类FileSystem...

数据采集之Web端导入日志文件到Hadoop HDFS

前言接上一篇《数据采集之Web端导入DB数据到Hadoop HDFS》,这一篇简单的记录一下如何在Web端控制导入日志文件到HDFS中,主要用到的技术就是Flume了。网上大多数教程都是写的配置文件,...
  • lusyoe
  • lusyoe
  • 2017年03月16日 00:19
  • 869

在 win7 64 上伪分布式部署 Hadoop 2.7.3

在 win7 64 上部署 Hadoop 2.7.3 主要参考链接: https://wiki.apache.org/hadoop/Hadoop2OnWindows 跳转到 Install 部分。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:windows编写web程序操作HDFS
举报原因:
原因补充:

(最多只允许输入30个字)