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的常用操作命令,这些命令是管理员和数据分析师日常工作中不可或缺的工具。 实验开始时,通过执行`start-dfs.sh`命令启动HDFS服务。这是在Hadoop集群中启动所有DataNode和NameNode节点的关键...
Hadoop-HDFS常用命令
HDFS常用Shell命令,基础篇
通过本实验,我们学习了HDFS的基本概念和常用的操作命令,熟悉了HDFS在Hadoop体系结构中的角色,并且掌握了HDFS的Java API。这些知识将帮助我们更好地理解和使用HDFS在数据存储和处理中的应用。
2. **Shell命令的掌握**:熟练掌握了HDFS常用Shell命令后,可以在日常运维或数据处理过程中快速高效地执行任务。 3. **Java API的应用**:Java API提供了更高级的功能支持,如并发处理、错误恢复等,对于开发高性能...
在深入分析Hadoop HDFS的源代码之前,我们先对Hadoop HDFS的基本架构和功能进行概述。HDFS,即Hadoop分布式文件系统,是一个高度容错性的系统,旨在存储和处理大规模数据。HDFS的核心组件包括NameNode和DataNode。 ...
接下来,我们逐一探讨这些基本操作的Java代码实现。 1. **创建目录** 使用`FileSystem`类的`mkdirs()`方法创建目录。例如: ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop...
实验二:“熟悉常用的HDFS操作”旨在帮助学习者深入理解Hadoop分布式文件系统(HDFS)在大数据处理中的核心地位,以及如何通过Shell命令和Java API进行高效操作。HDFS在Hadoop架构中扮演着存储大数据的核心角色,为...
从本地上传文件到HDFS上的代码!使用hadoop的API操作,使本地文件的代码上传到HDFS上!!!
3. **连接到HDFS**:生成的PHP代码会包含一个HDFS服务客户端类,你可以实例化这个类,并通过它建立到HDFS服务器的连接。在for_test.php文件中,可能会有类似以下的代码: ```php $transport = new TSocket('...
在Hadoop中HDFS源代码分析方面,主要功能组件、体系结构、NameNode和DataNode的实现方法是关键。HDFS的主要功能组件包括HDFS的核心类和接口,体系结构涉及HDFS的整体设计,NameNode是HDFS的核心,负责管理文件系统的...
Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119379055
【大数据HDFS常用操作】 Hadoop分布式文件系统(HDFS)是大数据处理中的核心组件,提供了高容错、高吞吐量的数据存储能力。本文将详细介绍HDFS的一些常见操作,帮助用户更好地理解和使用HDFS。 1. **列出文件列表*...
"厦门大学-林子雨-大数据技术基础-第3章 分布式文件系统HDFS-上机练习-熟悉常用的HDFS操作" HDFS(Hadoop Distributed File System)是Hadoop生态系统中的核心组件之一,它是基于分布式存储技术的文件系统,旨在...
本示例代码集合涵盖了Hadoop MapReduce、HDFS以及Hive的基本操作和应用,对于学习和理解Hadoop生态系统的实际运作具有重要价值。 1. **Hadoop MapReduce**:MapReduce是一种编程模型,用于大规模数据集的并行计算。...
Shell命令和java两种方式完成了常用的HDFS操作,有源代码及运行结果截图 (1)向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,则由用户来指定是追加到原有文件末尾还是覆盖原有的文件 (2)从HDFS中...
【Hadoop大数据技术与应用】-HDFS常用方法和MapReduce程序 Hadoop是一个开源的分布式计算框架,它包括两个核心部分:HDFS(Hadoop Distributed File System)和MapReduce。本实验主要围绕HDFS的基本操作和MapReduce...
这些实验步骤旨在帮助学生掌握HDFS的常用操作,包括文件系统的交互、数据读写以及高级功能,如文件追加和目录管理。同时,通过使用Java API,学生将加深对Hadoop生态系统和文件系统API的理解,为后续的大数据处理和...
实验内容不仅让学习者了解HDFS的基本操作,还要求他们能够编写代码与HDFS进行交互,这有助于提升对大数据处理的实际操作能力和问题解决能力。通过实验,学生可以更好地理解Hadoop如何在分布式环境中处理大量数据,并...