`
zoutm
  • 浏览: 96393 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

hadoop中的NullpointException

 
阅读更多

在做一个hadoop项目中,利用HDFS存储日志文件。为了将未关闭的文件进行恢复,我们需要判断一个文件是否为正在打开的状态。fs.getClient().namenode.getBlockLocations(path.toUri().getPath(), 0,

fs.getFileStatus(path).getLen()).isUnderConstruction();通过这个调用可以获取是否在打开。再调用fs.recoverLease(path)去强制关闭该文件。由于我们在getBlockLocations中最初用path.toString方法去调,结果导致以下NullPointException

org.apache.hadoop.ipc.RemoteException: java.io.IOException: java.lang.NullPointerException

       at org.apache.hadoop.ipc.Client.call(Client.java:1107)
       at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226)
       at $Proxy0.getBlockLocations(Unknown Source)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
       at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
       at $Proxy0.getBlockLocations(Unknown Source)
       at com.webex.da.hdc.web.DFSServlet.isOpen(DFSServlet.java:272)
       at com.webex.da.hdc.web.DFSServlet.rename(DFSServlet.java:255)
       at com.webex.da.hdc.web.DFSServlet.handleRename(DFSServlet.java:182)
       at com.webex.da.hdc.web.DFSServlet.doPost(DFSServlet.java:93)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)

 经过仔细调查,发现是path的问题,path.toString将会有hdfs://namenode前缀,而这个接口不应该包含这个前缀。因此我们在调用HDFS接口时一定要消息,如果要传递path为字符串,不应该包含前缀

  


  
分享到:
评论

相关推荐

    Hadoop2.7.1中文文档

    Hadoop2.7.1是Hadoop发展中的一个重要版本,它在前一个版本的基础上进行了一系列的优化和改进,增强了系统的稳定性和性能。这个压缩包文件包含的是Hadoop2.7.1的中文文档,对于学习和理解Hadoop的运作机制、配置以及...

    hadoop几个实例

    Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在大规模集群中高效处理和存储海量数据。这个压缩包文件包含的"hadop实用案例"很可能是为了帮助初学者理解和应用Hadoop技术。以下是关于Hadoop的一些...

    实战hadoop中的源码

    《实战Hadoop中的源码》一书,由刘鹏教授编写,旨在引领读者深入理解Hadoop这一开源大数据处理框架的内部机制,为通往云计算的道路上提供一条清晰的路径。Hadoop是Apache软件基金会的重要项目,它以其分布式计算模型...

    hadoop 中文手册

    hadoop 中文手册 Hadoop文档 下面的文档是一些概念介绍和操作教程,可帮助你开始使用Hadoop。如果遇到了问题,你可以向邮件列表求助或者浏览一下存档邮件。 Hadoop快速入门 Hadoop集群搭建 Hadoop分布式文件系统...

    hadoop2.6.5中winutils+hadoop

    在Hadoop生态系统中,Windows平台上的开发和运行通常比Linux环境更为复杂,因为Hadoop主要设计为在Linux上运行。然而,随着Hadoop的普及,开发者们也找到了在Windows上搭建和测试Hadoop环境的方法。标题提到的"hadop...

    Hadoop权威指南-Hadoop中文文档-第三版本

    这份中文文档为广大的Hadoop学习者提供了宝贵的资源,旨在帮助读者理解和掌握分布式存储与计算的基础知识,以及如何在实际项目中有效利用Hadoop。 Hadoop是Apache软件基金会开发的一个开源框架,主要设计用于处理和...

    hadoop2.7中文文档

    hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文...

    hadoop权威指南第三版 中文 pdf

    书中还涵盖了Hadoop生态系统中的其他关键组件,如YARN(Yet Another Resource Negotiator),它是Hadoop的资源管理系统,负责调度和管理集群中的计算资源。还有HBase,一个基于Hadoop的分布式NoSQL数据库,用于实时...

    hadoop2.6.5中winutils.exe+hadoop.dll

    本文将深入探讨Hadoop 2.6.5版本中与Windows环境相关的两个关键组件:winutils.exe和hadoop.dll,以及它们在Hadoop安装和运行过程中的作用。 Hadoop最初是为Linux操作系统设计的,但在Windows环境中运行Hadoop需要...

    Hadoop 2.7.1 中文文档

    3. **YARN(Yet Another Resource Negotiator)**:在Hadoop 2.x版本中引入,作为资源管理器,负责集群中的任务调度和资源分配,将原本在MapReduce中的资源管理和计算任务分离,提高了系统的灵活性和效率。...

    hadoop2.7.3 Winutils.exe hadoop.dll

    在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。Hadoop 2.7.3是这个框架的一个稳定版本,它包含了多个改进和优化,以提高性能和稳定性。在这个版本中,Winutils.exe和hadoop.dll是两...

    hadoop的dll文件 hadoop.zip

    在提供的信息中,我们关注的是"Hadoop的dll文件",这是一个动态链接库(DLL)文件,通常在Windows操作系统中使用,用于存储可由多个程序共享的功能和资源。Hadoop本身是基于Java的,因此在Windows环境下运行Hadoop...

    hadoop/bin/hadoop.dll

    标题中的"hadoop/bin/hadoop.dll"指出这是一款与Hadoop框架相关的动态链接库(DLL)文件,它位于Hadoop安装目录的"bin"子目录下。在Windows操作系统中,DLL文件是程序运行所必需的组件,它们包含了可执行文件在运行...

    hadoop.dll & winutils.exe For hadoop-2.7.1

    本文将详细探讨与"Hadoop.dll"和"winutils.exe"相关的知识点,以及它们在Hadoop-2.7.1版本中的作用。 Hadoop.dll是Hadoop在Windows操作系统上的一个关键组件,它是Apache Hadoop对Windows平台的适配部分。由于...

    hadoop的hadoop.dll和winutils.exe下载

    在Hadoop生态系统中,`hadoop.dll`和`winutils.exe`是两个关键组件,尤其对于Windows用户来说,它们在本地开发和运行Hadoop相关应用时必不可少。`hadoop.dll`是一个动态链接库文件,主要用于在Windows环境中提供...

    hadoop2.7.3的hadoop.dll和winutils.exe

    在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。Hadoop 2.7.3是Hadoop发展中的一个重要版本,它包含了众多的优化和改进,旨在提高性能、稳定性和易用性。在这个版本中,`hadoop.dll`...

    【免费】Hadoop权威指南(第3版) 修订版(带目录书签) 中文高清晰PDF

    书中首先介绍了Hadoop的起源和基本概念,包括分布式计算的基本原理,以及Hadoop是如何解决大数据挑战的。Hadoop的核心组件包括HDFS(Hadoop分布式文件系统)和MapReduce,这两部分是Hadoop处理数据的基础。HDFS为大...

    Hadoop官方中文文档

    在文档描述中提到,文档是一本中文手册,内容包括Hadoop的快速入门指南、集群搭建步骤、Hadoop分布式文件系统(HDFS)的架构设计、使用方法、权限管理以及配额管理等。由此,我们可以知道文档内容非常丰富,覆盖了从...

    hadoop.dll & winutils.exe For hadoop-2.6.0

    在Hadoop生态系统中,`hadoop.dll`和`winutils.exe`是两个关键组件,尤其对于Windows用户来说。本文将详细介绍这两个文件以及它们在Hadoop 2.6.0版本中的作用。 `hadoop.dll`是Hadoop在Windows环境下运行所必需的一...

    hadoop安装过程中的问题

    (这是Hadoop的基础) 2.必须ssh无密码登录 3./etc/host 里配置 master和slaves 4.修改/etc/hostname 主机名 5、/etc/profile的java和Hadoop配置路径 6.hadoop namenode format 7./hadoop/etc/slaves这个文件里必须...

Global site tag (gtag.js) - Google Analytics