《Hadoop技术讲解》PPT课件.ppt

上传人:sh****n 文档编号:6607413 上传时间:2020-02-29 格式:PPT 页数:38 大小:1.28MB
返回 下载 相关 举报
《Hadoop技术讲解》PPT课件.ppt_第1页
第1页 / 共38页
《Hadoop技术讲解》PPT课件.ppt_第2页
第2页 / 共38页
《Hadoop技术讲解》PPT课件.ppt_第3页
第3页 / 共38页
点击查看更多>>
资源描述
Hadoop 电子工业出版社刘鹏主编 云计算 教材配套课件8 主要内容 Hadoop项目简介HDFS体系结构HDFS关键运行机制HadoopVS Google 分布式文件系统 HadoopAPIHadoop环境搭建 Hadoop项目简介 Apache的解决方案 GFS HDFSMapReduce HadoopBigTable HBase Hadoop项目简介 HDFS为了做到可靠性 reliability 创建了多份数据块 datablocks 的复制 replicas 并将它们放置在服务器群的计算节点中 computenodes MapReduce就可以在它们所在的节点上处理这些数据了 HDFS体系结构 NameNode MasterDataNode Chunksever HDFS关键运行机制 保障可靠性的措施 一个名字节点和多个数据节点数据复制 冗余机制 存放的位置 机架感知策略 故障检测 数据节点心跳包 检测是否宕机 块报告 安全模式下检测 数据完整性检测 校验和比较 名字节点 日志文件 镜像文件 空间回收机制 HDFS关键运行机制 写文件流程 客户端缓存流水线复制并发写控制流程 1 客户端把数据缓存到本地临时文件夹2 临时文件夹数据超过64M 客户端联系NameNode NameNode分配DataNode DataNode依照客户端的位置被排列成一个有着最近物理距离和最小的序列3 与序列的第一个数据服务器建立Socket连接 发送请求头 然后等待回应 依次下传 客户端得到回包 流水线建立成功 4 正式发送数据 以4K为大小传送 HDFS关键运行机制 读文件流程 客户端联系NameNode 得到所有数据块信息 以及数据块对应的所有数据服务器的位置信息尝试从某个数据块对应的一组数据服务器中选出一个 进行连接 选取算法未加入相对位置的考虑 数据被一个包一个包发送回客户端 等到整个数据块的数据都被读取完了 就会断开此链接 尝试连接下一个数据块对应的数据服务器 整个流程 依次如此反复 直到所有想读的都读取完了为止 HadoopVS Google 技术架构的比较数据结构化管理组件 Hbase BigTable并行计算模型 MapReduce MapReduce分布式文件系统 HDFS GFSHadoop缺少分布式锁服务Chubby HBase MapReduce HDFS BigTable MapReduce GFS Hadoop云计算应用 Chubby Google云计算应用 HadoopVS Google HDFS与GFS比较中心服务器模式的差异GFS 多台物理服务器 选择一台对外服务 损坏时可选择另外一台提供服务HDFS 单一中心服务器模式 存在单点故障原因 Hadoop缺少分布式锁服务 HadoopVS Google HDFS与GFS比较子服务器管理模式差异GFS ChunkServer在Chubby中获取独占锁表示其生存状态 Master通过轮询这些独占锁获知ChunkServer的生存状态HDFS DataNode通过心跳的方式告知NameNode其生存状态GFS中 Master损坏时 替补服务器可以快速获知ChunkServer的状态HDFS中 NameNode损坏后 NameNode恢复时需要花费一段时间获知DataNode的状态在添加数据存储节点时 GFS的伸缩性较HDFS要好原因 Hadoop缺乏分布式锁服务 HadoopVS Google HDFS与GFS比较HDFS具备安全模式获知数据块副本状态 若副本不足 则拷贝副本至安全数目 如3个 GFS不具备安全模式副本损坏处理 API读取副本失败时 Master负责发起拷贝任务 HadoopVS Google HDFS与GFS比较HDFS具备空间回收机制文件删除时 仅删除目录结构实际数据的删除在等待一段时间后实施优点 便于恢复文件 HDFSAPI HadoopAPI被分成 divideinto 如下几种主要的包 package org apache hadoop conf定义了系统参数的配置文件处理API org apache hadoop fs定义了抽象的文件系统API org apache hadoop HdfsHDFS Hadoop的分布式文件系统实现 org apache hadoop io定义了通用的I OAPI 用于针对网络 数据库 文件等数据对象做读写操作 org apache hadoop ipc用于网络服务端和客户端的工具 封装了网络异步I O的基础模块 org apache hadoop mapreduceHadoop分布式计算系统 MapReduce 模块的实现 包括任务的分发调度等 org apache hadoop metrics定义了用于性能统计信息的API 主要用于mapred和dfs模块 org apache hadoop record定义了针对记录的I OAPI类以及一个记录描述语言翻译器 用于简化将记录序列化成语言中性的格式 language neutralmanner org apache hadoop tools定义了一些命令行的工具 org apache hadoop util定义了一些公用的API org apache hadoop Secruity用户和用户组信息 HDFSAPI org apache hadoop fs org apache hadoop fs FileSystem implementsjava io Closeable org apache hadoop fs FilterFileSystem org apache hadoop fs ChecksumFileSystem org apache hadoop fs InMemoryFileSystem org apache hadoop fs LocalFileSystem org apache hadoop fs HarFileSystem org apache hadoop fs RawLocalFileSystem抽象文件系统的基本要素和基本操作 最显著的一个特点就是 FileSystem文件系统是基于流式数据访问的 并且 可以基于命令行的方式来对文件系统的文件进行管理与操作 HDFSAPI org apche hadoop ipc org apache hadoop ipc VersionedProtocol org apache hadoop hdfs protocol ClientProtocol org apache hadoop hdfs protocol ClientDatanodeProtocol org apache hadoop hdfs server protocol NamenodeProtocol org apache hadoop hdfs server protocol DatanodeProtocol org apache hadoop hdfs server protocol InterDatanodeProtocol HDFSAPI org apache hadoop HDFS ClientProtocol协议 客户端进程与Namenode进程进行通信DataNodeProtocol协议 一个DFSDatanode用户与Namenode进行通信的协议InterDatanodeProtocol协议 Datanode之间的通信ClientDatanodeProtocol协议 客户端进程与datenode进程进行通信NamenodeProtocol协议 次级Namenode SecondaryNameNode 与Namenode进行通信所需进行的操作 Namenode主要实现了ClientProtocol DatanodeProtocol NamenodeProtocol HDFSAPI ClientProtocol 文件基本操作接口 获取到指定文件src的全部块的信息返回LocatedBlocks 包括文件长度 组成文件的块及其存储位置 所在的Datanode数据结点 publicLocatedBlocksgetBlockLocations Stringsrc longoffset longlength 在制定的文件系统命名空间中创建一个文件入口 entry 在命名空间中创建一个文件入口 该方法将创建一个由src路径指定的空文件 publicvoidcreate Stringsrc FsPermissionmasked StringclientName booleanoverwrite shortreplication longblockSize 对指定文件执行追加写操作 返回信息 可以定位到追加写入最后部分块的信息 publicLocatedBlockappend Stringsrc StringclientName 设置副本因子 为一个指定的文件修改块副本因子 publicbooleansetReplication Stringsrc shortreplication HDFSAPI ClientProtocol 文件基本操作接口 为已经存在的目录或者文件 设置给定的操作权限 publicvoidsetPermission Stringsrc FsPermissionpermission 设置文件或目录属主 publicvoidsetOwner Stringsrc Stringusername Stringgroupname 客户端放弃对指定块的操作 publicvoidabandonBlock Blockb Stringsrc Stringholder 客户端向一个当前为写操作打开的文件写入数据块 publicLocatedBlockaddBlock Stringsrc StringclientName 客户端完成对指定文件的写操作 并期望能够写完 在写完以后关闭文件 publicbooleancomplete Stringsrc StringclientName 客户端向Namenode报告corrupted块的信息 块在Datanode上的位置信息 publicvoidreportBadBlocks LocatedBlock blocks throwsIOException HDFSAPI ClientProtocol 文件基本操作接口 在文件系统命令空间中重命名一个文件或目录 publicbooleanrename Stringsrc Stringdst 删除文件或目录src publicbooleandelete Stringsrc 删除文件或目录src 根据recursive选项来执行 publicbooleandelete Stringsrc booleanrecursive throwsIOException 创建目录src 并赋予目录src指定的nasked权限 publicbooleanmkdirs Stringsrc FsPermissionmasked throwsIOException 获取指定目录src中的文件列表 publicFileStatus getListing Stringsrc throwsIOException HDFSAPI 文件读取在客户端DFSClient中 有一个DFSClient DFSInputStream类 当需要读取一个文件的时候 会生成一个DFSInputStream的实例DFSInputStream的实例调用ClientProtocol定义getBlockLocations接口 取得一个LocatedBlocks类的对象 这个对象包含一组LocatedBlock 那里面有所规定位置中包含的所有数据块信息 以及数据块对应的所有数据服务器的位置信息读取开始 DFSInputStream的Read方法如有读取时发现错误 客户端向Namenode报告corrupted块的信息publicvoidreportBadBlocks LocatedBlock blocks HDFSAPI 文件存入DFSClient也有一个DFSClient DFSOutputStream类 写入开始 会创建此类的实例DFSOutputStream会从NameNode上拿一个LocatedBlock写入开始 调用DFSOutputStream的Write方法 HDFSAPI ClientProtocol 系统管理相关接口 监听客户端 Namenode监听到某个客户端发送的心跳状态publicvoidrenewLease StringclientName 获取文件系统的状态统计数据 publiclong getStats 注 返回的数组 publicintGET STATS CAPACITY IDX 0 publicintGET STATS USED IDX 1 publicintGET STATS REMAINING IDX 2 publicintGET STATS UNDER REPLICATED IDX 3 publicintGET STATS CORRUPT BLOCKS IDX 4 publicintGET STATS MISSING BLOCKS IDX 5 安全模式开关操作publicbooleansetSafeMode FSConstants SafeModeActionaction HDFSAPI ClientProtocol 系统管理相关接口 保存FsImage映像 同时将更新同步到EditLog中 要求具有超级权限 并且在安全模式下进行 publicvoidsaveNamespace 持久化文件系统元数据 将Namenode结点上的数据结构写入到指定的文件中 如果指定文件已经存在 则追加到该文件中 metaSave Stringfilename Hadoop集群搭建 一 实验环境1 三台PC机 Linux操作系统各主机对应的ip地址 192 168 1 11ubuntu1192 168 1 12ubuntu2192 168 1 13ubuntu32 Hadoop安装包 http hadoop apache org core releases html 3 安装jdk1 5以上版本 1 在所有的机器上建立相同的用户 例如 grid 2 SSH配置 实现在机器之间执行指令的时候不需要输入密码 在ubuntu1 准备设为namenode 上生成密钥对 执行 ssh keygen trsa 然后一路回车 就会按照默认的选项将生成的密钥对保存在 ssh id rsa文件中 执行 cd ssh cpid rsa pubauthorized keys scpauthorized keysubuntu2 home grid ssh scpauthorized keysubuntu3 home grid ssh 二 Hadoop安装 3 在ubuntu1上配置Hadoop 编辑conf hadoop site xml 解压缩 执行 tar zxvf hadoop 0 19 1 tar gz 编辑conf master 修改为master的主机名 每个主机名一行 ubuntu1 编辑conf slaves 加入所有slaves的主机名ubuntu2ubuntu3 编辑所有机器的conf hadoop env sh文件 将JAVA HOME变量设置为各自JDK安装的根目录 不同机器可以使用不同的JAVA版本 4 其它机器上的配置 三 Hadoop运行 1 格式化分布式文件系统 2 启动Hadoop守护进程 3 停止Hadoop守护进程 HDFS实验 观察数据块在Datanode上的分布 三个Datanode 文件副本个数为2 文件f zip的数据块分布情况 关掉一个Datanode时数据块分布情况 此时文件仍然可用 关掉两个Datanode时数据块的分布情况 此时文件不可用 重新启动另外两个Datanode时数据块分布情况 欢迎访问中国云计算网站欢迎使用 云计算 教材电子工业出版社刘鹏主编 本讲到此结束
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!