HDFS 数据流:
1.文件读取:
客户端通过调用FileSystem 对象的open()方法来打开希望读取的文件,对于hdfs来说,这个对象是分布式文件系统的一个实例。
DistributedFileSystem 通过rpc来调用namenode,以确定文件起始块的位置,对于每一个块,namenode返回存有该块副本的
datanode地址。datanode根据他们与客户端的距离来排序。
DistributedFileSystem 类返回一个FSDataInputStream 对象给客户端并读取数据,FSDataInputStream 类转而封装
DFSInputStream 类,DFSInputStream 管理datanode 与namenode的I/O
客户端对这个输入流调用read(),存着datanode文件起始块的DFSInputStream 随即连接距离最近的datanode,反复对数据流
read()方法,可将数据从datanode 传输到客户端,到达块的末端时,DFSInputStream 会关闭与该datanode的连接。
2.文件的写入:
DistributedFileSystem 对象的 create()来创建文件,DistributedFileSystem 对namenode RPC 调用,在文件系统命名空间中
创建一个文件,namenode则执行各种检查。通过则创建文件,DistributedFileSystem 给客户端返回一个FSDataOutputStream 对象。
FSDataOutputStream 封装了DFSoutputStream 来实现datanode之间及datanode与namenode的数据交互。
客户端写入数据时,DFSoutputStream 将数据拆分成一个个的数据包,数据包有指定的大小,写入内部队列,成为数据对列,
DataStream处理数据队列,它的责任是根据datanode列表来要求namenode分配适合的新快来存储数据备份,这一组datanode组成 一个管线,同时DFSoutputStream 也维护这一个内部队列,知道datanode返回确认存储的信息才删除内部队列
3.复本的布局
一个机架内的随机节点A
与A不同的机架的随机节点B
与B同一机架的另一不同节点
4.文件一致性
HDFS 提供一个方法来强制所有的缓存与数据节点同步,对FSDataOutputStream 调用sync()方法,sync()返回成功后则所有reader
可见
5.dictcp 并行复制
应用在两个集群见传输数据(版本一样,保持rpc版本一致)
bin/hadoop distcp hdfs://namenode1/sourcefile hdfs://namenode2/distfile
可选择override 及 update 属性
6.hadoop存档
bin/hadoop archiveName files.har /my/files my
将 /my/files 所有文件存档为 file.har 存储到 my 文件夹下
bin/hadoop fs -lsr har://my/files.har
……………………
分享到:
相关推荐
A.2实验二:熟悉常用的HDFS操作 本实验对应第4章的内容。 A.2.1 实验目的 (1)理解 HDFS在Hadoop体系结构中的角色。(2)熟练使用HDFS操作常用的 Shell命令。(3)熟悉HDFS操作常用的Java API。 A.2.2 实验平台 (1)操作...
Hadoop学习总结之二:HDFS读写过程解析
适合刚接触hadoop的学生或小白,内容包括HDFS shell操作及HDFS Java API编程 有图片有代码
一.实验内容 HDFS编程实践: 1)使用HDFS文件操作的常用Shell命令;...此外,我还学习了如何使用`hdfs dfs -copyFromLocal`和`hdfs dfs -copyToLocal`命令在HDFS之间复制文件。 (3)其次,我利用Hadoop提供的Java AP
主要是hdfs读写的代码分析。可依据该文档进行深入代码。
hdfs dfs -test -e 文件或目录名 第三步,查看检测结果: echo $? 若输出结果为0,则说明文件或目录存在,若为1,则说明文件或目录不存在。 二、Java代码实现 import org.apache.hadoop.conf.Configuration; ...
对于我这种刚开始学习Hadoop的人员,需要频繁的在本地电脑和HDFS之间上传下载以及删除文件,如果全部采用代码操作比较麻烦。 针对windows系统,有一些连接HDFS进行文档管理的工具,比如说HDFS+Explorer。 但是我的是...
HDFS客户端操作(开发重点) 1. HDFS客户端环境准备 1.1、请参考文章: Windows10下搭建eclipse开发hadoop的开发环境 其中的第一至四步骤。 1.2、请参考文章: maven的安装、路径配置、修改库文件路径和eclipse中的...
5.5 基于HDFS的数据库之二 5.6 基于HDFS的数据库之三 5.7 一种基于Hadoop的数据仓库之一 5.8 一种基于Hadoop的数据仓库之二 5.9 一种基于Hadoop的数据仓库之三 6.1 一种并行编程模型-MapReduce-之一 6.2 一种并行...
数据存储与管理:学习分布式文件系统(如HDFS)和数据库技术(如HBase、Cassandra等),了解它们在大数据存储和管理方面的优势。 数据处理与分析:熟悉批处理框架(如Apache Spark)和流处理框架(如Apache Flink)...
大数据学习路线 大数据技术栈思维导图 大数据常用软件安装指南 一、Hadoop 分散文件存储系统 —— HDFS 多元计算框架——MapReduce 集群资源管理器 —— YARN Hadoop单机伪集群环境搭建 Hadoop 云服务环境搭建 HDFS...
编写java脚本使用HDFS API把数据上传到HDFS文件系统 三、大数据处理 使用Hadoop处理大数据 (BigDataHandler) 【备注】 主要针对计算机相关专业的正在做毕设的学生和需要项目实战的Java学习者。 也可作为课程设计、...
二、Zookeeper 1.Zookeeper——Zookeeper概述 2.Zookeeper——Zookeeper单机和分布式安装 3.Zookeeper——Zookeeper客户端命令 4.Zookeeper——Zookeeper内部原理 5.Zookeeper——Zookeeper实战 三、...
二、架构篇 Flink-1.11 Hive集成与批流一体 ClickHouse在苏宁用户画像场景的实践 优酷大数据 OLAP 技术选型 阿里数据湖选型 各种系统架构图与详细说明 关于BI工具选型的参考依据 Apache Doris在京东搜索实时OLAP中的...
大数据学习路线 大数据技术栈思维导图 大数据常用软件安装指南 一、Hadoop 分布式文件存储系统 —— HDFS 分布式计算框架 —— MapReduce 集群资源管理器 —— YARN Hadoop 单机伪集群环境搭建 Hadoop 集群环境搭建 ...
目录Hadhoop框架学习(1)一、基本概念1、分布式系统2、Hadhoop简介3、TCP协议和UDP协议(1)TCP协议(2)UDP协议4、Socket原理5、RPC协议二、HDFS1、组成(1)namenode(2)secondaryNamenode(3)datanode2、读取...
一阶段:这一阶段会学习MapReduce、Hive、HDFS、Yarn、Spark等计算框架的开发技术,以及Scala编程语言。通过项目实践,你能快速掌握这些技术,获得数据开发、数据挖掘、机器学习等职位必备的基本开发能力。 第二阶段...
两种东西,其一是IBM微软数据产品为代表的,其二是Hadoop+Hive+Apache Hive数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集。 可以将结构投影到已经存储的数据上。 提供了命令行工具和...
两种东西,其一是IBM微软数据产品为代表的,其二是Hadoop+Hive+Apache Hive数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集。 可以将结构投影到已经存储的数据上。 提供了命令行工具和...