最近参加的面试,一面问了HDFS写文件流程,完了之后把《Hadoop权威指南》上的流程配合源码简单的看了一遍。二面又问到了这个问题,一些细节还是漏了,对这部分还是专门记个笔记吧。稍微梳理了一下,发现感觉这个问题确实太适合作为面试题了,有细节还适合引申到其它的点。写数据流程大体流程如图(来自《Hadoop权威指南》)客户端通过DistributedFileSystem的create()创建文件,中间            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-14 20:55:33
                            
                                15阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            上一篇 博客中介绍了 HDFS 读取文件的流程,这篇文章趁热打铁,介绍一下 HDFS 文件写入的流程,整个流程如下:通过 FileSystem.get 方法获取文件系统 FileSystem,HDFS 文件系统实例为 DistributedFileSystem。通过 DistributedFileSystem.create 调用 namenode 的服务,请求在 namenode 的命名空间中创建            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-15 06:02:06
                            
                                35阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            启动Hadoop过程中遇到的namenode节点启动失败的问题:(logs中的namenode日志中报错txid启动错误)——>原因:
Hadoop NN中的元数据包括:
fsimage:包含某个时间点的文件系统的完整状态
edit logs:包含在最近的fsimage之后进行的每个文件系统更改(文件创建/删除/修改)
当NN启动时,Hadoop将加载fsimage并应用所有编辑日志,同时            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-26 12:59:51
                            
                                43阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Hadoop分布式文件系统(HDFS)下载文件的Java实现
Hadoop分布式文件系统(Hadoop Distributed File System,简称HDFS)是一个高度可靠的存储系统,用于处理大量数据。它允许应用程序以流的形式访问文件系统中的数据。在Java中,我们可以使用Hadoop API来实现对HDFS文件的下载。
## 环境准备
在开始之前,确保你已经安装了Hadoop,            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-07-19 08:04:46
                            
                                18阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            
            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-07 14:57:41
                            
                                128阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一:准备工作 1.新建class类 2.开启HDFS服务 3.将配置文件拷贝进resources路径 方便了Configuration的读取配置。 二:读出HDFS文件系统中的文件到控制台 4.读出在路径中的文件,显示在控制台上 5.分别解析,获取文件系统(两种方式) (方式一) (方式二) 这种方            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2016-09-27 11:18:00
                            
                                106阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            Hadoop下载安装及HDFS配置教程前言Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-12 14:46:25
                            
                                43阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录1.使用url方式访问数据(了解)2.使用文件系统方式访问数据(掌握)(1)涉及的主要类(2)获取FileSystem的几种方式a. 第一种方式b. 斜体样式第二种方式c. 第三种方式d. 第四种方式3.遍历HDFS中所有文件使用API遍历4.HDFS上创建文件夹5.HDFS文件下载方式1:方式2:6.文件上传7.HDFS的权限访问控制(1)通过配置文件进行权限控制(2)通过伪装用户进行            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-18 15:08:53
                            
                                69阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            基于JavaAPI对hdfs的操作通过Java API来访问HDFS,首先介绍HDFS中的文件操作主要涉及的几个类。·Configuration类:该类的对象封装了客户端或者服务器的配置。·FileSystem类:该类的对象是一个文件系统对象,可以用该对象的一些方法对文件进行操作。FileSystem fs=FileSystem.get(conf);通过FileSystem的静态方法get获得该对            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-01 17:02:37
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            从本地下载HDFS文件1)客户端向namenode请求下载文件,namenode通过查询元数据,找到文件块所在的datanode地址。2)挑选一台datanode(就近原则,然后随机)服务器,请求读取数据。3)datanode开始传输数据给客户端(从磁盘里面读取数据放入流,以packet为单位来做校验)。4)客户端以packet为单位接收,先在本地缓存,然后写入目标文件。首先调用FileSyste            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-05 18:13:20
                            
                                504阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            HDFS结构介绍  HDFS是Hadoop提供的基于分布式的文件存储系统。全称为Hadoop Distributed File System。主要由NameNode、DataNode两类节点构成。其中NameNode节点的主要功能是管理系统的元数据,负责管理文件系统的命令空间,记录文件数据块在DataNode节点上的位置和副本信息,协调客户端对文件系统的访问,以及记录命名空间的改动和本身属性的变动            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-29 09:56:26
                            
                                49阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            HDFS:是将客户端的大文件存放在很多节点的数据块中。    NameNode:NameNode的作用是管理文件目录结构,是管理数据节点的。     NameNode维护两套数据,一套是文件目录与数据块之间的关系(数据是静态,放在磁盘上,通过fsimage和edits文件来维护),     另一套是数据块与            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-30 19:20:09
                            
                                199阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录客户端读getLocatedBlocks(String src, long start, long length)DFSInputStream.read(byte[] buffer, int offset, int length)客户端写写流程Packet(DFSPacket)的构成DataStream与Datanode交互客户端读hdfs客户端读会先调用open方法,open会调用先getB            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-07 13:32:36
                            
                                30阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            本文我们学习Hadoop中HDFS架构、优缺点、文件块大小、通过shell命令文件上传下载1. HDFS使用场景适合一次写入,多次读取。一个文件经过创建、写入和关闭之后就不需要改变2. HDFS优缺点2.1 HDFS优点高容错性 
  数据自动保存多个副本。通过增加副本的形式,提高容错性某一个副本丢失后可以自动恢复适合处理大数据 
  数据规模:能够处理数据规模达到GB、TB、甚至PB级别的数据文            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-27 16:03:53
                            
                                123阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
/**
 * hdfs入门程序:
 * 面向对象:一切皆对象
 * 文件系统也可以看做是一类事物、FileSystem
 * 
 * 一定有共同的行为和属性:            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-23 10:24:32
                            
                                65阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录一 客户端环境1.1 配置环境变量1.2 eclipse/IDEA准备二 HDFS的具体API操作2.1创建HDFS客户端对象并测试创建文件夹2.2 测试文件上传2.3 测试文件下载2.4 测试删除文件夹2.5 测试查看文件详情2.6 判断是文件夹还是文件一 客户端环境前面博客叙述了HDFS的shell操作,回顾一下:使用bin/hadoop   fs              
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-21 15:12:42
                            
                                18阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言HDF(Hierarchical Data File)是美国国家高级计算应用中心(National Center for Supercomputing Application,NCSA)为了满足各种领域研究需求而研制的一种能高效存储和分发科学数据的新型数据格式 。HDF是一种功能强大,广泛运用于科学领域的文件格式。研究它的组织结构特别是HDF5 的组织结构对于处理和管理地理信息系统的海量图形数            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-04 19:05:44
                            
                                69阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            上传下载hdfs文件递归删除hdfs指定文件夹目录package com.cc.api1.hdfsapi;
import java.io.IOException;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-22 18:45:52
                            
                                41阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            3.1常用类3.1.1ConfigurationHadoop配置文件的管理类,该类的对象封装了客户端或者服务器的配置(配置集群时,所有的xml文件根节点都是configuration)创建一个Configuration对象时,其构造方法会默认加载hadoop中的两个配置文件,分别是hdfs-site.xml以及core-site.xml,这两个文件中会有访问hdfs所需的参数值,主要是fs.def            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-27 10:53:43
                            
                                116阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            HDFS中 Java API 的使用文件在 Hadoop 中表示一个Path对象,通常封装一个URI,如HDFS上有个test文件,URI表示成hdfs://master:9000/test。Hadoop 中关于文件操作类基本上全部是在"org.apache.hadoop.fs"包中,这些 API 能够支持的操作包含打开文件、读写文件、删除文件等。通常MapReduce会把一个文件数据块处理成一个            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-17 01:34:44
                            
                                62阅读