JobClient
/**
* <code>JobClient</code> is the primary interface for the user-job to interact
* with the {@link JobTracker}.
* 翻译:JobClient是用户的作业与JobTracker进行交互的最基本接口
* <code>JobClient</code> provides facilities to submit jobs, track their
* progress, access component-tasks' reports/logs, get the Map-Reduce cluster
* status information etc.
* 翻译:JobClient提供提交作业的工具,追踪作业的进度,获取component-tasks(合成任务)的日志,获取Map-Reduce集群状态信息等等。
* <p>The job submission process involves:翻译:作业提交过程包括如下
* <ol>
* <li>
* Checking the input and output specifications of the job.翻译:检测作业的输入和输入描述
* </li>
* <li>
* Computing the {@link InputSplit}s for the job.翻译:计算作业的InputSplit
* </li>
* <li>
* Setup the requisite accounting information for the {@link DistributedCache}
* of the job, if necessary.
* 翻译:如果有必要的话,为作业的DistributedCache设置必要的accounting information
* </li>
* <li>
* Copying the job's jar and configuration to the map-reduce system directory
* on the distributed file-system.
* 翻译:拷贝作业的jar文件和配置文件到分布式文件系统里的map-reduce系统目录
* </li>
* <li>
* Submitting the job to the <code>JobTracker</code> and optionally monitoring
* it's status.
* 翻译:提交作业到JobTracker,并选择性的监控它的状态
* </li>
* </ol></p>
*
* Normally the user creates the application, describes various facets of the
* job via {@link JobConf} and then uses the <code>JobClient</code> to submit
* the job and monitor its progress.
* 翻译:通常用户创建应用程序,通过JobConf来描述作业的各个方面,并且用JobClient来提交作业,并监视它的进度
* <p>Here is an example on how to use <code>JobClient</code>:</p>翻译:这里有一个例子,教你如何使用JobClient
* <p><blockquote><pre>
* // Create a new JobConf 翻译:创建一个JobConf对象
* JobConf job = new JobConf(new Configuration(), MyJob.class);
*
* // Specify various job-specific parameters 翻译:指定各种各样的和作业有关的具体参数
* job.setJobName("myjob");
*
* job.setInputPath(new Path("in"));
* job.setOutputPath(new Path("out"));
*
* job.setMapperClass(MyJob.MyMapper.class);
* job.setReducerClass(MyJob.MyReducer.class);
*
* // Submit the job, then poll for progress until the job is complete翻译:提交作业,不停的询问进度,知道作业完成
* JobClient.runJob(job);
* </pre></blockquote></p>
*
* <h4 id="JobControl">Job Control</h4>
*
* <p>At times clients would chain map-reduce jobs to accomplish complex tasks
* which cannot be done via a single map-reduce job. This is fairly easy since
* the output of the job, typically, goes to distributed file-system and that
* can be used as the input for the next job.</p>
* 翻译:有时,clients会把许多的map-reduce作业“链”在一起,取完成一些复杂的任务,这些作业是不能通过一个单一的map-reduce作业来完成的。
这是非常容易实现的,因为作业的输出通常是在分布式文件系统,所以这些在分布式文件系统的输出可以用作下一个作业的输入。
* <p>However, this also means that the onus on ensuring jobs are complete
* (success/failure) lies squarely on the clients. In such situations the
* various job-control options are:
* 然而,这也意味着,确保作业成功或者失败的重任直接就落在了clients上。在这种情况下,job-control选项如下:
* <ol>
* <li>
* {@link #runJob(JobConf)} : submits the job and returns only after
* the job has completed.翻译:提交作业,并且只有在作业完成之后返回。
* </li>
* <li>
* {@link #submitJob(JobConf)} : only submits the job, then poll the
* returned handle to the {@link RunningJob} to query status and make
* scheduling decisions.
* 翻译:仅提交作业,此时,通过RunningJob(<p>Clients can get hold of <code>RunningJob</code> via the {@link JobClient}
* and then query the running-job for details such as name, configuration,
* progress etc.</p> )不停的请求句柄,来查询状态和调度决策
* </li>
* <li>
* {@link JobConf#setJobEndNotificationURI(String)} : setup a notification
* on job-completion, thus avoiding polling.
* 翻译:设置一个作业完成通知,因此就可以避免不停的询问进度
* </li>
* </ol></p>
*
* @see JobConf
* @see ClusterStatus
* @see Tool
* @see DistributedCache
*/
JobClient的更多相关文章
- eclipse下提交job时报错mapred.JobClient: No job jar file set. User classes may not be found.
错误信息: 11/10/14 13:52:07 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. A ...
- JobClient学习------作业提交与初始化
public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); ...
- 【Hadoop代码笔记】通过JobClient对Jobtracker的调用详细了解Hadoop RPC
Hadoop的各个服务间,客户端和服务间的交互采用RPC方式.关于这种机制介绍的资源很多,也不难理解,这里不做背景介绍.只是尝试从Jobclient向JobTracker提交作业这个最简单的客户端服务 ...
- mapred.JobClient: No job jar file set. User classes may not be found. See JobConf(Class) or JobConf#setJar(String).
报错详情: WARN mapred.JobClient: No job jar file set. User classes may not be found. See JobConf(Class) ...
- hadoop报错:WARN mapred.JobClient: Error reading task outputNo route to host
解决方案: /etc/sysconfig/network/etc/hosts$hostname 这三处的主机名都要一样. 具体参考:http://blog.itpub.net/28254374/vie ...
- mapreduce多文件输出的两方法
mapreduce多文件输出的两方法 package duogemap; import java.io.IOException; import org.apache.hadoop.conf ...
- hadoop2.7之Mapper/reducer源码分析
一切从示例程序开始: 示例程序 Hadoop2.7 提供的示例程序WordCount.java package org.apache.hadoop.examples; import java.io.I ...
- [Hadoop in Action] 第7章 细则手册
向任务传递定制参数 获取任务待定的信息 生成多个输出 与关系数据库交互 让输出做全局排序 1.向任务传递作业定制的参数 在编写Mapper和Reducer时,通常会想让一些地方可以配 ...
- [Hadoop in Action] 第6章 编程实践
Hadoop程序开发的独门绝技 在本地,伪分布和全分布模式下调试程序 程序输出的完整性检查和回归测试 日志和监控 性能调优 1.开发MapReduce程序 [本地模式] 本地模式 ...
随机推荐
- 九度oj 题目1079:手机键盘
题目描述: 按照手机键盘输入字母的方式,计算所花费的时间 如:a,b,c都在“1”键上,输入a只需要按一次,输入c需要连续按三次. 如果连续两个字符不在同一个按键上,则可直接按,如:ad需要按两下,k ...
- Java 线程池的原理与实现学习(三)
一简介 线程的使用在java中占有极其重要的地位,jdk1.4及其之前的jdk版本,关于线程池的使用是极其简陋的.在jdk1.5之后这一情况有了很大的改观,Jdk1.5之后加入了java.util.c ...
- 剑指Offer 二进制中一的个数
链接:https://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8 来源:牛客网 public class So ...
- 洛谷 P 1133 教主的花园
题目描述 教主有着一个环形的花园,他想在花园周围均匀地种上n棵树,但是教主花园的土壤很特别,每个位置适合种的树都不一样,一些树可能会因为不适合这个位置的土壤而损失观赏价值. 教主最喜欢3种树,这3种树 ...
- 标准C程序设计七---45
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- Day 21 三元表达式、生成器函数、列表解析
知识点程序: #! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "DaChao" # Date: 2017 ...
- AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 是与服 ...
- AC日记——乘积最大 洛谷 P1018
题目描述 今年是国际数学联盟确定的“2000――世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得 ...
- 牛客网 牛客小白月赛1 C.分元宵-快速幂
C.分元宵 链接:https://www.nowcoder.com/acm/contest/85/C来源:牛客网 这个题就是快速幂,注意特判,一开始忘了特判,wa了一发. 代码: 1 #inclu ...
- IDEA重新打jar包时报错MANIFEST.MF already exists in VFS
报错原因:曾经打过jar包了,把之前的包删掉无用,VFS:虚拟文件系统.即使删掉之前的包,信息依然会在此处.故删掉MANIFEST文件夹,重新打包即可解决.