Hadoop's Introduction
来源:互联网 发布:怎么开启dx优化 编辑:程序博客网 时间:2024/06/02 07:52
致Rita。
hadoop的执行路径。
通常我们在自己编写的Job 代码中会调用JobClient.runJob(job)方法来启动任务的真正执行,我们的介绍就从这个命令开始(在调用这个api之前,我们已经设计并且在程序中指定好自己的mapper函数和reducer函数了)
1,JobClient.runJob(job)静态方法会实例化一个JobClient实例,然后用该实例的submitJob(job)方法向master提交作业,此方法返回一个RunningJob对象,用来跟踪作业的状态,作业提交完毕,JobClient会轮训作业的进度
2,submitJob内部是通过JobSubmitter的submitJobInternal(job)完成实质性的作业提交。submitJobInternal会先向haodoop文件系统上传3个文件:job.jar, job.split, job.xml这三个文件位置由mapreduce系统路径mapred.system.dir属性决定,写完这三个文件之后,此方法使用RPC调用master节点的JobTracker.submitJob(job)方法。
3,JobTracker收到JobClient提交的作业后,即在JobTracker.submitJob()方法中,首先生成一个JobInProgress对象,此对象代表一个作业,它的作用是维护这道作业的所有信息,包括作业剖析JobProfile和JobStatus,并登记所有Task进任务表中。随后JobTracker会将此JobInProgress对象通过listener.jobAdd(job)方法加入作业调度队列,并用一个成员Jobs来表示所有的作业
4,Hadoop默认的调度器是FIFO的JobQueueTaskScheduler。它有2个成员变量JobQueueJobInProgressListener和eagerTaskInitializationListener。后者负责任务初始化。作法为:listerner初始化时,开启JobInitThread线程,当作业通过JobAdd(job)加入初始化队列jobInitQueue时,根据作业优先级排序,之后该线程调用JobInProgress的initTasks()来初始化所有的任务。
5, initTasks()过程比较复杂,在这里面会根据原先对输入任务的分解,来创建对应数目的Map执行管理对象TaskInProgress。
之后即是TaskTracker请求任务的过程,容以后再议~
- Hadoop's Introduction
- Hadoop YARN - Introduction to the web services REST API’s
- Hadoop Introduction
- hadoop -- introduction
- Apache Hadoop introduction
- Note on Hadoop Tutorial : Introduction
- the introduction of the hadoop
- MASM Programmer's Guide---Introduction
- Yahoo! Hadoop Module 1: Tutorial Introduction
- A Beginner's Introduction to POE
- The Software Architect's Profession :An Introduction
- Spring Framework : Introduction to Spring's jars
- A Programmer's Introduction to C#
- iPhone developer's Cookbook -- Chapter 1 Introduction
- Introduction to Lucene's analysis API
- Introduction to the S/MIME Toolkit
- Using Hadoop’s DistributedCache
- hadoop's ecosystem
- 经验
- 学生信息管理系统V0.2(使用文件存储数据)【MVC模式、DAO模式、Factory模式】
- flex List 控件多选
- Spring依赖注入方式
- C# winform读取页面相关数据的方法
- Hadoop's Introduction
- 详解Office 外接程序 COM Add In的LoadBehavior及其妙用
- 学生信息管理系统V0.3(优化文件存取、增加修改删除功能)
- 乔布斯
- 组合键(Ctrl+E,Ctrl+D)不是命令
- c# 邮件发送
- DATABASE LINK
- linux的free命令中,cached和buffers的区别
- java 查询可用域名