云计算(第三版)配套之19第5章Hadoop20主流开源云架构(五)_第1页
云计算(第三版)配套之19第5章Hadoop20主流开源云架构(五)_第2页
云计算(第三版)配套之19第5章Hadoop20主流开源云架构(五)_第3页
云计算(第三版)配套之19第5章Hadoop20主流开源云架构(五)_第4页
云计算(第三版)配套之19第5章Hadoop20主流开源云架构(五)_第5页
已阅读5页,还剩31页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.1引例5.2Hadoop2.0简述5.3Hadoop2.0部署5.4Hadoop2.0体系架构5.5Hadoop2.0访问接口5.6Hadoop2.0编程接口5.5Hadoop2.0访问接口5.5.1访问接口综述5.5.2浏览器接口5.5.3命令行接口Hadoop2.0每个模块访问方式可分为:浏览器接口Shell接口编程接口5.5Hadoop2.0访问接口5.5.1访问接口综述5.5.2浏览器接口5.5.3命令行接口5.5Hadoop2.0访问接口浏览器接口Web地址配置文件配置参数HDFShttp://NameNodeHostName:50070hdfs-site.xml{node.http-address}Yarnhttp://ResourceManagerHostName:8088yarn-site.xml{yarn.resourcemanager.webapp.address}MapReducehttp://JobHistoryHostName:19888mapred-site.xml{mapreduce.jobhistory.webapp.address}在Hadoop2.0里,MapReduce是Yarn不可缺少的模块,这里的JobHistory是一个任务独立模块,用来查看历史任务,和MapReduce并行处理算法无关。55.5Hadoop2.0访问接口5.5.1访问接口综述5.5.2浏览器接口5.5.3命令行接口1.HDFS

以tar包方式部署时,其执行方式是HADOOP_HOME/bin/hdfs,当以完全模式部署时,使用HDFS用户执行hdfs即可2.Yarn以tar包方式部署时,其执行方式是HADOOP_HOME/bin/yarn,当以完全模式部署时,使用Yarn用户执行yarn即可每一条命令都包含假设干条子命令Yarn的Shell命令也主要分为用户命令和管理员命令3.Hadoop以tar包方式部署时,其执行方式是HADOOP_HOME/bin/Hadoop,当以完全模式部署时,在终端直接执行hadoop这个脚本既包含HDFS里最常用命令fs〔即HDFS里的dfs〕,又包含Yarn里最常用命令jar,可以说是HDFS和Yarn的结合体。此外,distcp用mapreduce来实现两个Hadoop集群之间大规模数据复制。5.5Hadoop2.0访问接口命令行接口4.其他常用命令sbin/目录下的脚本主要分为两种类型:启停效劳脚本和管理效劳脚本。其中,脚本hadoop-daemon.sh可单独用于启动本机效劳,方便本机调试,start/stop类脚本适用于管理整个集群,读者只要在命令行下直接使用这些脚本,它会自动提示使用方法。105.1引例5.2Hadoop2.0简述5.3Hadoop2.0部署5.4Hadoop2.0体系架构5.5Hadoop2.0访问接口5.6Hadoop2.0编程接口5.6Hadoop2.0编程接口5.6.1HDFS编程5.6.2Yarn编程HadoopHDFSYarn5.6Hadoop2.0编程接口135.6Hadoop2.0编程接口HDFS编程新建File类使用File类方法对文件句柄进行相关操作针对这个File新建各种流对文件内容进行操作使用Java处理文件编写HDFS代码操作HDFS里的文件时,也是这个思路,只不过HDFS须先加载配置文件,在进行任何操作之前,我们都要实例化配置文件141.HDFS编程实例16请编写一简单程序,要求实现在HDFS里新建文件myfile,并且写入内容“chinacstorcstorcstorchina〞。5.6Hadoop2.0编程接口HDFS编程请编写一简单程序,要求输出HDFS里刚写入的文件myfile的内容。请编写一简单代码,要求输出HDFS里文件myfile相关属性〔如文件大小、拥有者、集群副本数,最近修改时间等〕。【例1】【例2】【例3】2.HDFS编程基础185.6Hadoop2.0编程接口HDFS编程1〕Hadoop统一配置文件类ConfigurationHadoop的每一个实体〔Common,HDFS,Yarn〕都有与其相对应的配置文件,Configuration类是联系几个配置文件的统一接口。Hadoop各模块间传递的一切值都必须通过Configuration类实现,其他方式均无法获取程序设置的参数,假设想实现参数最好使用Configuration类的get和set方法。在Hadoop源代码中,HDFS相关代码大都存放在包里。但是,我们编写代码操作HDFS里的文件时,不可以调用这些代码,而是通过包里的FileSystem类实现。FileSystem类是Hadoop访问文件系统的抽象类,它不仅可以获取HDFS文件系统效劳,也可以获取其他文件系统〔比方本地文件系统〕效劳,为程序员访问各类文件系统提供统一接口。org.apache.Hadoop.hdfsorg.apache.Hadoop.fscommon5.6Hadoop2.0编程接口HDFS编程2〕取得HDFS文件系统接口19Common还提供了一些处理HDFS文件的常用流:5.6Hadoop2.0编程接口HDFS编程3〕HDFS常用流和文件状态类用户可以和Java流相互配合使用fs包下的FSDataInputStreamio包下的缓冲流DataInputBufferutil包下的LineReader……205.6Hadoop2.0编程接口5.6.1HDFS编程5.6.2Yarn编程5.6Hadoop2.0编程接口Yarn编程Yarn资源管理框架ResourceManager〔RM〕NodeManager〔NM〕不参与计算逻辑逻辑实体由ApplicationMaster和Client组成的处理逻辑相同的一类任务定义Map型MapReduce型MapReduceMap型CPU密集型任务225.6Hadoop2.0编程接口概念和流程资源管理框架RM负责资源分配NodeManager负责管理本地资源计算框架Client负责提交任务RM启动任务对应的ApplicationMaster23245.6Hadoop2.0编程接口概念和流程1〕编程时使用的协议〔1〕ApplicationClientProtocolClient<-->ResourceManager。Client通知RM启动任务〔如要求RM启动ApplicationMaster〕,获取任务状态或终止任务时使用的协议。〔2〕ApplicationMasterProtocolApplicationMaster<-->ResourceManager。ApplicationMaster向RM注册/注销申请资源时用到的协议。〔3〕ContainerManagerApplicationMaster<-->NodeManager。ApplicationMaster启动/停止获取NM上的Container状态信息时所用的协议。5.6Hadoop2.0编程接口概念和流程2〕一个Yarn任务的执行流程简析Client提交任务时,通过调用ApplicationClientProtocol#getNewApplication从RM获取一个ApplicationId,然后再通过ApplicationClientProtocol#submitApplication提交任务。RM会选定一个Container来启动ApplicationMaster。ApplicationMaster那么负责此次任务的处理全过程调用ApplicationMasterProtocol#RegisterApplication-Master向RM完成注册ApplicationMaster须向RM注销自己ApplicationMaster会通过心跳包与RM保持通信255.6Hadoop2.0编程接口概念和流程3〕编程步骤小结DistributedShellunmanaged-am-launcherMapReduceClient端ApplicationMaster端步骤1:获取ApplicationId步骤2:提交任务步骤1:注册步骤2:申请资源步骤3:启动Container步骤4:重复步骤2、3,直至任务完成步骤5:注销Yarn提供了三个Application-Master实现:2627DistributedShell是Yarn自带的一个应用程序编程实例,相当于Yarn编程中的“HelloWorld〞,它的功能是并行执行用户提交的Shell命令或Shell脚本。5.6Hadoop2.0编程接口实例分析Client主要向RM提交任务ApplicationMaster向RM申请资源,并与NM协商启动Container完成任务从Hadoop官方网站下载〔Hadoop源码包〕并解压后,依次进入Hadoop-yarn-project\Hadoop-yarn\Hadoop-yarn-applications,下面就是Yarn自带的两个Yarn编程实例。285.6Hadoop2.0编程接口代码执行方式默认情况下Yarn包里已经有分布式Shell的代码了,可以使用任何用户执行如下命令:$Hadoopjar/usr/lib/Hadoop-yarn/Hadoop-yarn-applications-distributedshell.jar>org.apache.Hadoop.yarn.applications.distributedshell.Client>-jar/usr/lib/Hadoop-yarn/Hadoop-yarn-applications-distributedshell.jar>-shell_command'/bin/date'-num_containers100295.6Hadoop2.0编程接口实例分析-MapReduceInputFormatMapCombinePartitionerGroupingComparatorReduceOutputFormatRecordReaderInputSplitRecoderWriterOutputCommitter实例化配置文件类实例化Job类编写输入格式编写Map类编写Partitioner类编写Reduce类编写OutputFormat类提交任务InputFormatTextInputFormatRecordReaderLineRecordReaderInputSplitFileSplitMapIdentityMapperCombine不使用PartitionerHashPartitionerGroupCompatator不使用ReduceIdentityReducerOutputFormatFileOutputFormatRecordWriterLineRecordWriterOutputCommitterFileOutputCommitterYarn框架处理MR程序时默认类1.简述Hadoop1.0与Hadoop2.0的优缺点,并比较二者区别与联系。2.简述解压包方式部署Hadoop的弊端。3.简述Hadoop2.0平安机制,试分析其优缺点。4.简述Yarn编程过程,再简述MR编程过程,说明二者有何关系。5.试从架构上分析Hadoop的优缺点。习题:百度排名首位的大数据资料和交流中心百度排名首位的云计算资料和交流中心终生免费的智能硬件大数据托管平台扫一扫,进入万物云终生免费的环境大数据共

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论