hadoop的日志主要是MapReduce程序运行过程中,产生的一些数据日志除了系统的日志外,还包含一些我们自己在测试时候或者线上环境输出的日志,这部分日志通常会被放在userlogs这个文件夹下面我们可以在mapred-.URI; ("清空任务了。。。");
下面,我们将程序提交成hadoop集群上运行进行测试,注意在集群上运行日志信息就不会在控制台显示了,我们需要去自己定义的日志目录下找到最新提交 的那个下,然后就可以查看我们的日志信息了
其实网上就有可以借鉴董西成嘚博客,下面是内容:
Hadoop MapReduce日志分为两部分一部分是服务日志,一部分是作业日志具体介绍如下:
作业日志包括jobhistory日志和task日志两部分,其中jobhistory日志是作业运行日志,包括作业启动时间、结束时间每个任务的启动时间、结束时间,各种counter信息等用户可以从这个日志中解析出作業运行的各种信息,是非常有价值的信息默认存放位置是JobTracker所在节点的${hadoop.log.dir}/history目录下,可通过参数hadoop.job.history.location配置每个task日志存放在task运行节点上,存放位置昰${hadoop.log.dir}/userlogs/<jobid>/<attempt-id>目录下每个task包含三个日志文件,分别是stdout、stderr和syslog其中,stdout是通过标准输出打印出来的日志比如System.out.println,注意程序中通过标准输出打印的日志並不会直接显示在终端上,而是保存在这个文件中syslog是通过log4j打印的日志,通常这个日志中包含的有用信息最多也是错误调试中最关键的參考日志。
应用程序日志包括jobhistory日志和Container日志其中,jobhistory日志是应用程序运行日志包括应用程序启动时间、结束时间,每个任务的启动时间、結束时间各种counter信息等。
1.x一样每个目录下包含三个日志文件:stdout、stderr和syslog,且具体含义是一样的
版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/
1、提交任务并获取ID值
通常情况下,我们进行远程提交时都会使用.InetSocketAddress;
并且conf中需要制定ResourceManager进程的位置(id+port),因此这裏照搬了任务远程提交时的配置
当获取JobClient对象后,可以通过
函数获取相应正在执行的任务句柄然后就可以相应的再行执行的任务了。
在測试过程中发现当任务执行完成后,jobclient对象会自动去Job History Server上获取任务的执行信息如果没有早conf中指定history的地址的话,jobclient会去本地0.0.0.0:10020位置上去寻找历史垺务器因此需要在conf中指定历史服务器的位置。因此可知为何在conf中设置resoucemanager的ip+port了
如果需要停止任务的话,则使用
就可以完成对任务的终止了
RunningJob对象中也含有任务执行过程中的其他信息,可以通过job对象中的方法进行获取例如setupProgress属性是指setup程序完成的百分比,一次类推就知道mapProgress、reduceProgress、cleanupProgress的含义了其他属性用户可以自己去进行测试。