c语言sscanf函数的用法是什么
278
2022-11-24
Hadoop详解
Hadoop
hadoop主要包括:hdfs(存储)/MapReduce(计算)/Yarn(资源调度) 1.HDFS hdfs是hadoop分布式文件存储系统,采用master/slave架构,主要包括:NameNode,DataNode,客户端需要关注的原理:NN和DN之间是怎么工作联系的?NN和2NN之间的关系和联系?以及整个读写数据的流程图?
1-2 NNNameNode作为master服务,主要负责管理文件系统的元数据以及客户端对文件的访问(文件被分割成块的信息+块归属DN的信息)1-3 DNDateNode作为slave,每个物理节点对应一个DN,管理块信息,并通过心跳定时发送到NN,主要负责处理客户端的读写请求。1-4 文件读写请求流程-文件写入客户端请求写入文件->NN根据文件块大小和配置,返回给客户端它们要写入的DN的信息->客户端划分block->按照顺序写入dn1-5 文件读写请求流程-文件读取客户端向NN发送文件读取请求->NN向客户端返回block信息以及其所在的DN信息->客户端读取文件。1-6 备份数据存放HDFS采用机架感知的策略决定备份数据存放。1-7 副本的选择HDFS会尽量读取近的副本,降低整体的宽带消耗和读取延时。
2.MapReduce
MR的重要过程:job提交/inputformat/map/shuffle/reduce/outputformat/
2-1 job提交流程
结合源码分析: 1. job.waitForCompletion(true);//提交Job -->进入wait方法--> 判断状态,进入submit方法 -->submit(){ 1.ensureState(JobState.DEFINE); //再次确认Job的状态 2.setUseNewAPI(); //设置使用新的API 3.connect(); --> 进入connect{ //确定使用的是LocalJobRunner 还是 YarnRunner 1.return new Cluster(getConfiguration()); //1.创建Cluster对象 2.initialize(jobTrackAddr, conf); 3.clientProtocol = provider.create(conf); //创建ClientProtocol --> LocalJobRunner | YarnRunner//这里是local } 4.getJobSubmitter(cluster.getFileSystem(), cluster.getClient());//获取提交对象 5.return submitter.submitJobInternal(Job.this, cluster); // 提交Job { 1 checkSpecs(job); //确认输出路径是否存在 2 JobSubmissionFiles.getStagingDir(cluster, conf);//获取临时工作目录 3 submitClient.getNewJobID(); //获得job提交真正路径 4 Path submitJobDir = new Path(jobStagingArea, jobId.toString()); 5 copyAndConfigureFiles(job, submitJobDir); --> FileSystem.mkdirs(jtFs, submitJobDir, mapredSysPerms); //在文件系统上创建Job的提交目录 6 int maps = writeSplits(job, submitJobDir); //生成切片个数 7 conf.setInt(MRJobConfig.NUM_MAPS, maps); //根据切片的个数设 置MapTask的个数 8 writeConf(conf, submitJobFile); //将job相关的信息写到job提交目录中 9 submitClient.submitJob( xxxx ); //真正的提交Job去执行 10 jtFs.delete(submitJobDir, true); //删除Job的工作目录 } }
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~