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

HDFS常用代码片段备忘

    博客分类:
  • HDFS
 
阅读更多

FileSystem fs;

DistributedFileSystem dfs;

 

得到FileSystem:    fs = new Path("/").getFileSystem(conf);

RPC调用Namenode方法:    fs.getClient().namenode.XXXXX();

得到某个文件corrupt的数据块:

      LocatedBlocks locatedBlocks =

                   fs.getClient().namenode.getBlockLocations(uriPath, 0, stat.getLen());
      for (LocatedBlock b: locatedBlocks.getLocatedBlocks()) {
        if (b.isCorrupt() ||
            (b.getLocations().length == 0 && b.getBlockSize() > 0)) {
            // the block is corrupt;
        }
      }

 

      final BlockLocation[] fileBlocks =
                  dfs.getFileBlockLocations(fileStatus, 0, fileLength);

      for (BlockLocation fileBlock: fileBlocks) {
          if (fileBlock.isCorrupt() ||
            (fileBlock.getNames().length == 0 && fileBlock.getLength() > 0)) {

              // the block is corrupt;
          }
      }

 

Path->String:  String uri = path.toUri().getPath();

String->Path:  Path path = new Path(uri);

 

java.net.URI dfsUri = DistributedFileSystem.getUri();

System.out.println(dfsUri)  ------>  hdfs://namenodehostname:9000

 

DistributedFileSystem.makeQualified(new Path("/foo")));   --------->  hdfs://namenodehostname:9000/foo

                                                                    new Path(scheme+":"+"//"+authority + pathUri.getPath();

 

 

Namenode上记录了那些LOG:

static void turnOffNameNodeLogging() {
    // change log level to ERROR: NameNode.LOG & NameNode.stateChangeLog
    ((Log4JLogger)NameNode.LOG).getLogger().setLevel(Level.ERROR);
    ((Log4JLogger)NameNode.stateChangeLog).getLogger().setLevel(Level.ERROR);
    ((Log4JLogger)NetworkTopology.LOG).getLogger().setLevel(Level.ERROR);
    ((Log4JLogger)FSNamesystem.LOG).getLogger().setLevel(Level.ERROR);
    ((Log4JLogger)FSNamesystem.auditLog).getLogger().setLevel(Level.ERROR);
    ((Log4JLogger)LeaseManager.LOG).getLogger().setLevel(Level.ERROR);
  }

 

 

切换HDFS的数据块位置选择策略:conf的dfs.block.replicator.classname

 conf.set("dfs.block.replicator.classname", "org.apache.hadoop.hdfs.server.namenode.BlockPlacementPolicyRaid");

 

 

Path p = new Path("/raid"); LOG.info(p) --->  /raid

String xorPrefix = p.toUri().getPath();  LOG.info(xorPrefix);  ----->/raid

 

Path p = new Path("hdfs://0.0.0.0:3000" + "/raid");  --->hdfs://0.0.0.0:3000/raid

String xorPrefix = p.toUri().getPath();  LOG.info(xorPrefix);  ----->/raid

 

分享到:
评论

相关推荐

    大数据技术基础实验报告-HDFS常用操作命令.doc

    本实验报告主要关注HDFS的常用操作命令,这些命令是管理员和数据分析师日常工作中不可或缺的工具。 实验开始时,通过执行`start-dfs.sh`命令启动HDFS服务。这是在Hadoop集群中启动所有DataNode和NameNode节点的关键...

    Hadoop-HDFS常用命令

    Hadoop-HDFS常用命令

    HDFS常用Shell命令.md

    HDFS常用Shell命令,基础篇

    数据存储实验2-熟悉常用的HDFS操作.doc(实验报告)

    通过本实验,我们学习了HDFS的基本概念和常用的操作命令,熟悉了HDFS在Hadoop体系结构中的角色,并且掌握了HDFS的Java API。这些知识将帮助我们更好地理解和使用HDFS在数据存储和处理中的应用。

    大数据实验二-HDFS编程实践

    2. **Shell命令的掌握**:熟练掌握了HDFS常用Shell命令后,可以在日常运维或数据处理过程中快速高效地执行任务。 3. **Java API的应用**:Java API提供了更高级的功能支持,如并发处理、错误恢复等,对于开发高性能...

    Hadoop源代码分析之HDFS篇.

    在深入分析Hadoop HDFS的源代码之前,我们先对Hadoop HDFS的基本架构和功能进行概述。HDFS,即Hadoop分布式文件系统,是一个高度容错性的系统,旨在存储和处理大规模数据。HDFS的核心组件包括NameNode和DataNode。 ...

    hdfs java代码实现文件基础操作

    接下来,我们逐一探讨这些基本操作的Java代码实现。 1. **创建目录** 使用`FileSystem`类的`mkdirs()`方法创建目录。例如: ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop...

    实验二:熟悉常用的HDFS操作

    实验二:“熟悉常用的HDFS操作”旨在帮助学习者深入理解Hadoop分布式文件系统(HDFS)在大数据处理中的核心地位,以及如何通过Shell命令和Java API进行高效操作。HDFS在Hadoop架构中扮演着存储大数据的核心角色,为...

    本地文件上传到HDFS的demo代码

    从本地上传文件到HDFS上的代码!使用hadoop的API操作,使本地文件的代码上传到HDFS上!!!

    PHP操作操作hdfs是代码例子

    3. **连接到HDFS**:生成的PHP代码会包含一个HDFS服务客户端类,你可以实例化这个类,并通过它建立到HDFS服务器的连接。在for_test.php文件中,可能会有类似以下的代码: ```php $transport = new TSocket('...

    Hadoop之HDFS源代码分析 pdf

    在Hadoop中HDFS源代码分析方面,主要功能组件、体系结构、NameNode和DataNode的实现方法是关键。HDFS的主要功能组件包括HDFS的核心类和接口,体系结构涉及HDFS的整体设计,NameNode是HDFS的核心,负责管理文件系统的...

    Java API操作HDFS示例代码.rar

    Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119379055

    大数据平台实践 五.HDFS常用操作和增加节点

    【大数据HDFS常用操作】 Hadoop分布式文件系统(HDFS)是大数据处理中的核心组件,提供了高容错、高吞吐量的数据存储能力。本文将详细介绍HDFS的一些常见操作,帮助用户更好地理解和使用HDFS。 1. **列出文件列表*...

    厦门大学-林子雨-大数据技术基础-第3章 分布式文件系统HDFS-上机练习-熟悉常用的HDFS操作

    "厦门大学-林子雨-大数据技术基础-第3章 分布式文件系统HDFS-上机练习-熟悉常用的HDFS操作" HDFS(Hadoop Distributed File System)是Hadoop生态系统中的核心组件之一,它是基于分布式存储技术的文件系统,旨在...

    Hadoop_MapReduce_HDFS示例代码

    本示例代码集合涵盖了Hadoop MapReduce、HDFS以及Hive的基本操作和应用,对于学习和理解Hadoop生态系统的实际运作具有重要价值。 1. **Hadoop MapReduce**:MapReduce是一种编程模型,用于大规模数据集的并行计算。...

    实验2常用的HDFS操作.doc

    Shell命令和java两种方式完成了常用的HDFS操作,有源代码及运行结果截图 (1)向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,则由用户来指定是追加到原有文件末尾还是覆盖原有的文件 (2)从HDFS中...

    《Hadoop大数据技术与应用》-HDFS常用方法和MapReduce程序.pdf

    【Hadoop大数据技术与应用】-HDFS常用方法和MapReduce程序 Hadoop是一个开源的分布式计算框架,它包括两个核心部分:HDFS(Hadoop Distributed File System)和MapReduce。本实验主要围绕HDFS的基本操作和MapReduce...

    实验2 熟悉常用的HDFS操作

    这些实验步骤旨在帮助学生掌握HDFS的常用操作,包括文件系统的交互、数据读写以及高级功能,如文件追加和目录管理。同时,通过使用Java API,学生将加深对Hadoop生态系统和文件系统API的理解,为后续的大数据处理和...

    大数据技术原理与应用 课程实验报告 熟悉HDFS常用操作 word文件

    实验内容不仅让学习者了解HDFS的基本操作,还要求他们能够编写代码与HDFS进行交互,这有助于提升对大数据处理的实际操作能力和问题解决能力。通过实验,学生可以更好地理解Hadoop如何在分布式环境中处理大量数据,并...

Global site tag (gtag.js) - Google Analytics