《云计算》教材配套课件8-开源云计算系统hadoop.ppt

上传人:牧羊曲112 文档编号:6526090 上传时间:2023-11-09 格式:PPT 页数:38 大小:858KB
返回 下载 相关 举报
《云计算》教材配套课件8-开源云计算系统hadoop.ppt_第1页
第1页 / 共38页
《云计算》教材配套课件8-开源云计算系统hadoop.ppt_第2页
第2页 / 共38页
《云计算》教材配套课件8-开源云计算系统hadoop.ppt_第3页
第3页 / 共38页
《云计算》教材配套课件8-开源云计算系统hadoop.ppt_第4页
第4页 / 共38页
《云计算》教材配套课件8-开源云计算系统hadoop.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《《云计算》教材配套课件8-开源云计算系统hadoop.ppt》由会员分享,可在线阅读,更多相关《《云计算》教材配套课件8-开源云计算系统hadoop.ppt(38页珍藏版)》请在三一办公上搜索。

1、Hadoop,电子工业出版社 刘鹏主编云计算教材配套课件8,主要内容,Hadoop项目简介HDFS体系结构HDFS关键运行机制Hadoop VS.Google(分布式文件系统)Hadoop APIHadoop环境搭建,Hadoop项目简介,Apache的解决方案,GFS-HDFS MapReduce-HadoopBigTable-HBase,Hadoop项目简介,HDFS为了做到可靠性(reliability)创建了多份数据块(data blocks)的复制(replicas),并将它们放置在服务器群的计算节点中(compute nodes),MapReduce就可以在它们所在的节点上处理这些

2、数据了。,HDFS体系结构,NameNodeMasterDataNodeChunksever,HDFS关键运行机制-保障可靠性的措施,一个名字节点和多个数据节点数据复制(冗余机制)-存放的位置(机架感知策略)故障检测-数据节点 心跳包(检测是否宕机)块报告(安全模式下检测)数据完整性检测(校验和比较)-名字节点(日志文件,镜像文件)空间回收机制,HDFS关键运行机制-写文件流程,客户端缓存流水线复制并发写控制流程:1.客户端把数据缓存到本地临时文件夹2.临时文件夹数据超过64M,客户端联系NameNode,NameNode分配DataNode,DataNode依照客户端的位置被排列成一个有着最

3、近物理距离和最小的序列3.与序列的第一个数据服务器建立Socket连接,发送请求头,然后等待回应,依次下传,客户端得到回包,流水线建立成功,4.正式发送数据,以4K为大小传送,HDFS关键运行机制-读文件流程,客户端联系NameNode,得到所有数据块信息,以及数据块对应的所有数据服务器的位置信息尝试从某个数据块对应的一组数据服务器中选出一个,进行连接(选取算法未加入相对位置的考虑)数据被一个包一个包发送回客户端,等到整个数据块的数据都被读取完了,就会断开此链接,尝试连接下一个数据块对应的数据服务器,整个流程,依次如此反复,直到所有想读的都读取完了为止,Hadoop VS.Google,技术架

4、构的比较数据结构化管理组件:HbaseBigTable并行计算模型:MapReduceMapReduce分布式文件系统:HDFSGFSHadoop缺少分布式锁服务Chubby,HBase,MapReduce,HDFS,BigTable,MapReduce,GFS,Hadoop云计算应用,Chubby,Google云计算应用,Hadoop VS.Google,HDFS与GFS比较中心服务器模式的差异GFS:多台物理服务器,选择一台对外服务,损坏时可选择另外一台提供服务HDFS:单一中心服务器模式,存在单点故障原因:Hadoop缺少分布式锁服务,Hadoop VS.Google,HDFS与GFS比

5、较子服务器管理模式差异GFS:Chunk Server在Chubby中获取独占锁表示其生存状态,Master通过轮询这些独占锁获知Chunk Server的生存状态HDFS:DataNode通过心跳的方式告知NameNode其生存状态GFS中,Master损坏时,替补服务器可以快速获知Chunk Server的状态HDFS中,NameNode损坏后,NameNode恢复时需要花费一段时间获知DataNode的状态在添加数据存储节点时,GFS的伸缩性较HDFS要好原因:Hadoop缺乏分布式锁服务,Hadoop VS.Google,HDFS与GFS比较HDFS具备安全模式获知数据块副本状态,若副

6、本不足,则拷贝副本至安全数目(如3个)GFS不具备安全模式副本损坏处理:API读取副本失败时,Master负责发起拷贝任务,Hadoop VS.Google,HDFS与GFS比较HDFS具备空间回收机制文件删除时,仅删除目录结构实际数据的删除在等待一段时间后实施优点:便于恢复文件,HDFS API,Hadoop API被分成(divide into)如下几种主要的包(package):定义了系统参数的配置文件处理API。定义了抽象的文件系统API。HDFS,Hadoop的分布式文件系统实现。定义了通用的I/O API,用于针对网络,数据库,文件等数据对象做读写操作。用于网络服务端和客户端的工具

7、,封装了网络异步I/O的基础模块。Hadoop分布式计算系统(MapReduce)模块的实现,包括任务的分发调度等。定义了用于性能统计信息的API,主要用于mapred和dfs模块。定义了针对记录的I/O API类以及一个记录描述语言翻译器,用于简 化将记录序列化成语言中性的格式(language-neutral manner)。定义了一些命令行的工具。定义了一些公用的API。org.apache.hadoop.Secruity 用户和用户组信息,HDFS API-org.apache.hadoop.fs,org.apache.hadoop.fs.FileSystem(implements j

8、ava.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文件系统是基于流式数据访问的,

9、并且,可以基于命令行的方式来对文件系统的文件进行管理与操作。,HDFS API,。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.a

10、pache.hadoop.hdfs.server.protocol.InterDatanodeProtocol,HDFS API,ClientProtocol协议:客户端进程与Namenode进程进行通信DataNodeProtocol协议:一个DFS Datanode用户与Namenode进行通信的协议InterDatanodeProtocol协议:Datanode之间的通信ClientDatanodeProtocol协议:客户端进程与datenode进程进行通信NamenodeProtocol协议:次级Namenode(Secondary NameNode)与Namenode进行通信所需进

11、行的操作,Namenode主要实现了ClientProtocol,DatanodeProtocol,NamenodeProtocol,HDFS API-ClientProtocol(文件基本操作接口),获取到指定文件src的全部块的信息返回LocatedBlocks,包括文件长度、组成文件的块及其存储位置(所在的Datanode数据结点)-publicLocatedBlocksgetBlockLocations(Stringsrc,longoffset,longlength)在制定的文件系统命名空间中创建一个文件入口(entry),在命名空间中创建一个文件入口。该方法将创建一个由src路径指定

12、的空文件-publicvoidcreate(Stringsrc,FsPermissionmasked,StringclientName,booleanoverwrite,shortreplication,longblockSize)对指定文件执行追加写操作,返回信息,可以定位到追加写入最后部分块的信息-publicLocatedBlockappend(Stringsrc,StringclientName)设置副本因子,为一个指定的文件修改块副本因子-publicbooleansetReplication(Stringsrc,shortreplication),HDFS API-ClientPr

13、otocol(文件基本操作接口),为已经存在的目录或者文件,设置给定的操作权限-public void setPermission(String src,FsPermission permission)设置文件或目录属主-public void setOwner(String src,String username,String groupname)客户端放弃对指定块的操作-public void abandonBlock(Block b,String src,String holder)客户端向一个当前为写操作打开的文件写入数据块-public LocatedBlock addBlock(S

14、tring src,String clientName)客户端完成对指定文件的写操作,并期望能够写完,在写完以后关闭文件-public boolean complete(String src,String clientName)客户端向Namenode报告corrupted块的信息(块在Datanode上的位置信息)-public void reportBadBlocks(LocatedBlock blocks)throws IOException,HDFS API-ClientProtocol(文件基本操作接口),在文件系统命令空间中重命名一个文件或目录-public boolean ren

15、ame(String src,String dst)删除文件或目录src-public boolean delete(String src)删除文件或目录src,根据recursive选项来执行-public boolean delete(String src,boolean recursive)throws IOException;创建目录src,并赋予目录src指定的nasked权限-public boolean mkdirs(String src,FsPermission masked)throws IOException;获取指定目录src中的文件列表-public FileStatu

16、s getListing(String src)throws IOException;,HDFS API,文件读取在客户端DFSClient中,有一个 DFSClient.DFSInputStream类。当需要读取一个文件的时候,会生成一个DFSInputStream的实例DFSInputStream的实例调用 ClientProtocol定义getBlockLocations接口,取得一个 LocatedBlocks类的对象,这个对象包含一组LocatedBlock,那里面有所规定位置中包含的所有数据块信息,以及数据块对应的所有数据服务器的位置信息读取开始,DFSInputStream的Re

17、ad方法如有读取时发现错误,客户端向Namenode报告corrupted块的信息publicvoidreportBadBlocks(LocatedBlockblocks),HDFS API,文件存入DFSClient也有一个 DFSClient.DFSOutputStream类,写入开始,会创建此类的实例DFSOutputStream会从NameNode上拿一个 LocatedBlock写入开始,调用DFSOutputStream的Write方法,HDFS API-ClientProtocol(系统管理相关接口),监听客户端,Namenode监听到某个客户端发送的心跳状态publicvoid

18、renewLease(StringclientName)获取文件系统的状态统计数据-publiclonggetStats()注:返回的数组: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;安全模式开关操作p

19、ublicbooleansetSafeMode(FSConstants.SafeModeActionaction),HDFS API-ClientProtocol(系统管理相关接口),保存FsImage映像,同时将更新同步到EditLog中,要求具有超级权限,并且在安全模式下进行。-publicvoidsaveNamespace()持久化文件系统元数据,将Namenode结点上的数据结构写入到指定的文件中,如果指定文件已经存在,则追加到该文件中-metaSave(Stringfilename),Hadoop集群搭建,一、实验环境1、三台PC机,Linux操作系统 各主机对应的ip地址:192.

20、168.1.11 ubuntu1 192.168.1.12 ubuntu2 192.168.1.13 ubuntu32、Hadoop安装包()3、安装jdk 1.5以上版本,1、在所有的机器上建立相同的用户,例如:grid。,2、SSH配置,实现在机器之间执行指令的时候不需要输入密码。,在ubuntu1(准备设为namenode)上生成密钥对,执行$ssh-keygen-t rsa,然后一路回车,就会按照默认的选项将生成的密钥对保存在.ssh/id_rsa文件中。执行:$cd/.ssh$cp id_rsa.pub authorized_keys$scp authorized_keys ubun

21、tu2:/home/grid/.ssh$scp authorized_keys ubuntu3:/home/grid/.ssh,二、Hadoop安装,3、在ubuntu1上配置Hadoop。,编辑conf/hadoop-site.xml,解压缩,执行:$tar,编辑conf/master,修改为master的主机名(每个主机名一行)ubuntu1,编辑conf/slaves,加入所有slaves的主机名 ubuntu2 ubuntu3,编辑所有机器的conf/hadoop-env.sh文件,将JAVA_HOME变量设置为各自JDK安装的根目录,不同机器可以使用不同的JAVA版本。,4、其它机器上的配置,三、Hadoop运行,1、格式化分布式文件系统,2、启动Hadoop守护进程,3、停止Hadoop守护进程,HDFS实验:观察数据块在Datanode上的分布,三个Datanode,文件副本个数为2,文件f.zip的数据块分布情况,关掉一个Datanode时数据块分布情况,此时文件仍然可用,关掉两个Datanode时数据块的分布情况,此时文件不可用,重新启动另外两个Datanode时数据块分布情况,欢迎访问中国云计算网站 欢迎使用云计算教材 电子工业出版社 刘鹏 主编,本讲到此结束,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号