3,4-hdfs体系结构.ppt

上传人:灯火****19 文档编号:134973693 上传时间:2020-06-10 格式:PPT 页数:29 大小:424.50KB
返回 下载 相关 举报
3,4-hdfs体系结构.ppt_第1页
第1页 / 共29页
3,4-hdfs体系结构.ppt_第2页
第2页 / 共29页
3,4-hdfs体系结构.ppt_第3页
第3页 / 共29页
3,4-hdfs体系结构.ppt_第4页
第4页 / 共29页
3,4-hdfs体系结构.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《3,4-hdfs体系结构.ppt》由会员分享,可在线阅读,更多相关《3,4-hdfs体系结构.ppt(29页珍藏版)》请在金锄头文库上搜索。

1、深入浅出hadoop 培训讲师 吴超blog 课程安排 分布式文件系统与HDFSHDFS体系结构与基本概念 HDFS的shell操作 java接口及常用api 加深拓展 RPC调用 HDFS的分布式存储架构的源码分析 DistributedFileSystem 数据量越来越多 在一个操作系统管辖的范围存不下了 那么就分配到更多的操作系统管理的磁盘中 但是不方便管理和维护 因此迫切需要一种系统来管理多台机器上的文件 这就是分布式文件管理系统 是一种允许文件通过网络在多台主机上分享的文件系统 可让多机器上的多用户分享文件和存储空间 通透性 让实际上是通过网络来访问文件的动作 在程序与用户看来 就像

2、是访问本地的磁盘一般 容错 即使系统中有某些节点脱机 整体来说系统仍然可以持续运作而不会有数据损失 分布式文件管理系统很多 hdfs只是其中一种 适用于一次写入多次查询的情况 不支持并发写情况 小文件不合适 HDFS的Shell 调用文件系统 FS Shell命令应使用bin hadoopfs的形式 所有的FSshell命令使用URI路径作为参数 URI格式是scheme authority path HDFS的scheme是hdfs 对本地文件系统 scheme是file 其中scheme和authority参数都是可选的 如果未加指定 就会使用配置中指定的默认scheme 例如 paren

3、t child可以表示成hdfs namenode namenodePort parent child 或者更简单的 parent child 假设配置文件是namenode namenodePort 大多数FSShell命令的行为和对应的UnixShell命令类似 HDFSfs命令 help cmd 显示命令的帮助信息 ls r 显示当前目录下所有文件 du s 显示目录中所有文件大小 count q 显示目录中文件数量 mv 移动多个文件到目标目录 cp 复制多个文件到目标目录 rm r 删除文件 夹 put 本地文件复制到hdfs copyFromLocal 同put moveFromL

4、ocal 从本地文件移动到hdfs get ignoreCrc 复制文件到本地 可以忽略crc校验 getmerge 将源目录中的所有文件排序合并到一个文件中 cat 在终端显示文件内容 text 在终端显示文件内容 copyToLocal ignoreCrc 复制到本地 moveToLocal mkdir 创建文件夹 touchz 创建一个空文件 HDFS的Shell命令练习 hadoopfs ls 查看HDFS根目录 hadoopfs mkdir test在根目录创建一个目录test hadoopfs mkdir test1在根目录创建一个目录test1 echo e hadoopseco

5、ndlesson test txt hadoopfs put test txt test或 hadoopfs copyFromLocal test txt test cd hadoopfs get test test txt 或 hadoopfs getToLocal test test txt hadoopfs cp test test txt test1 hadoopfs rm test1 test txt hadoopfs mv test test txt test1 hadoopfs rmr test1 Namenode 是整个文件系统的管理节点 它维护着整个文件系统的文件目录树 文件

6、 目录的元信息和每个文件对应的数据块列表 接收用户的操作请求 见源码 文件包括 fsimage 元数据镜像文件 存储某一时段NameNode内存元数据信息 备份使用到上面红色中的文件edits 操作日志文件 类似于数据库中事务操作 要么全部执行成功 要么什么都不执行 定期由secondaryNamenode整合到fsimage中 fstime 保存最近一次checkpoint的时间以上这些文件是保存在linux的文件系统中 hdfs site xml的dfs name dir属性 Datanode 提供真实文件数据的存储服务 见源码 文件块 block 最基本的存储单位 对于文件内容而言 一个

7、文件的长度大小是size 那么从文件的 偏移开始 按照固定的大小 顺序对文件进行划分并编号 划分好的每一个块称一个Block HDFS默认Block大小是64MB 以一个256MB文件 共有256 64 4个Block 不同于普通文件系统的是 HDFS中 如果一个文件小于一个数据块的大小 并不占用整个数据块存储空间Replication 多复本 默认是三个 hdfs site xml的dfs replication属性 SecondaryNameNode HA的一个解决方案 但不支持热备 配置即可 见源码 执行过程 从NameNode上下载元数据信息 fsimage edits 然后把二者合并

8、 生成新的fsimage 在本地保存 并将其推送到NameNode 同时重置NameNode的edits 默认在安装在NameNode节点上 但这样 不安全 Shell命令练习 验证块大小 方法 上传小于64MB的文件 观察块大小验证 使用http hadoop0 50070观察 HDFS的JavaAPI 读文件 URIorg apache hadoop conf Configurationorg apache hadoop fs FileSystemorg apache hadoop fs Pathorg apache hadoop io IOUtils URLorg apache hado

9、op io IOUtilsorg apache hadoop fs FsUrlStreamHandlerFactory hdfs 192 168 200 128 9000 test test txt HDFS的java访问接口 FileSystem 写文件create读取文件open删除文件delete创建目录mkdirs删除文件或目录delete列出目录的内容listStatus显示文件系统的目录和文件的元数据信息getFileStatus HDFS的FileSystem读取文件 privatestaticFileSystemgetFileSystem throwsURISyntaxExce

10、ption IOException Configurationconf newConfiguration URIuri newURI hdfs hadoop240 9000 finalFileSystemfileSystem FileSystem get uri conf returnfileSystem HDFS的FileSystem读取文件 读取文件 调用fileSystem的open path throwsException privatestaticvoidreadFile throwsException FileSystemfileSystem getFileSystem FSDat

11、aInputStreamopenStream fileSystem open newPath hdfs itcast0106 9000 aaa IOUtils copyBytes openStream System out 1024 false IOUtils closeStream openStream HDFS的FileSystem目录 创建目录 调用fileSystem的mkdirs path throwsException privatestaticvoidmkdir throwsException FileSystemfileSystem getFileSystem fileSyst

12、em mkdirs newPath hdfs itcast0106 9000 bbb 删除目录 调用fileSystem的deleteOnExit path throwsException privatestaticvoidrmdir throwsException FileSystemfileSystem getFileSystem fileSystem delete newPath hdfs itcast0106 9000 bbb HDFS的FileSystem遍历目录 遍历目录 使用FileSystem的listStatus path 如果要查看file状态 使用FileStatus对象

13、 throwsException privatestaticvoidlist throwsException FileSystemfileSystem getFileSystem FileStatus listStatus fileSystem listStatus newPath hdfs itcast0106 9000 for FileStatusfileStatus listStatus StringisDir fileStatus isDir 目录 文件 Stringname fileStatus getPath toString System out println isDir na

14、me FileSystem 用户代码操作HDFS时 是直接调用FileSystem的子类完成的 RemoteProcedureCall RPC 远程过程调用协议 它是一种通过网络从远程计算机程序上请求服务 而不需要了解底层网络技术的协议 RPC协议假定某些传输协议的存在 如TCP或UDP 为通信程序之间携带信息数据 在OSI网络通信模型中 RPC跨越了传输层和应用层 RPC使得开发包括网络分布式多程序在内的应用程序更加容易 RPC采用客户机 服务器模式 请求程序就是一个客户机 而服务提供程序就是一个服务器 首先 客户机调用进程发送一个有进程参数的调用信息到服务进程 然后等待应答信息 在服务器端

15、 进程保持睡眠状态直到调用信息的到达为止 当一个调用信息到达 服务器获得进程参数 计算结果 发送答复信息 然后等待下一个调用信息 最后 客户端调用进程接收答复信息 获得进程结果 然后调用执行继续进行 hadoop的整个体系结构就是构建在RPC之上的 见org apache hadoop ipc RPC示例 publicinterfaceBizableextendsVersionedProtocol publicabstractStringhello Stringname classBizimplementsBizable OverridepublicStringhello Stringname

16、 System out println 被调用了 return hello name OverridepubliclonggetProtocolVersion Stringprotocol longclientVersion throwsIOException System out println Biz getProtocalVersion MyServer VERSION returnMyServer VERSION RPC示例 publicclassMyServer publicstaticintPORT 3242 publicstaticlongVERSION 23234l publicstaticvoidmain String args throwsIOException finalServerserver RPC getServer newBiz 127 0 0 1 PORT newConfiguration server start RPC示例 publicclassMyClient publicstaticvoidmain String args throwsIOExc

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号