Dr.Elephant遇到的问题

今天刚到公司,想跑一个复杂的mapreduce,结果刚打开电脑就傻眼了,两个datanode全挂了,原因是磁盘容量不足,20G全用完了,好家伙,之前完全没有意识到已经用了这么多了,可能最近为了测试往hdfs里面导入了大文件。服务起不起来,格式化namenode也没用,还好用的云主机,先扩容,然后重起巴拉巴拉,这里还有个hadoop的坑,就是簇群id不一致问题,这里先不谈了。
然后启动Dr.Elephant,页面还在,还是很坚挺的。然后跑了两个mr的任务,再来dre的页面一看,又傻了,怎么找到的是昨天的任务呢?今天的呢?重起服务也没用,只能老老实实来看日志了,dre的日志很有特点,服务本身是否启动看的是dr.log,也可以看logs下面的applog,但是具体的分析log在上一级目录里面才有,进来之后,内容很多,直接拉到最下面(日志很详细,好好看日志能帮助理解dre的流程),有个错误就很明显了

07-31-2019 12:58:01 ERROR [dr-el-executor-thread-2] com.linkedin.drelephant.ElephantRunner : Can't find config of job_1564544371315_0003 in neither /tmp/hadoop-yarn/staging/history/done/2019/07/30/000000/ nor /tmp/hadoop-yarn/staging/history/done_intermediate/ubuntu/

原来dre是从hadoop的jobhistory里面拿job的配置和执行的内容,一直知道这么回事但是jobhistory文件保存在哪里呢,仔细找一找,发现在这里

ubuntu@hadoop1:/usr/local/hadoop/etc/hadoop$ hdfs dfs -ls /tmp/hadoop-yarn/staging/history/done/2019/07/31/000000
Found 6 items
-rwxrwx---   3 ubuntu supergroup      97363 2019-07-31 11:49 /tmp/hadoop-yarn/staging/history/done/2019/07/31/000000/job_1564544371315_0001-1564544735492-ubuntu-wordcount-1564544940066-9-1-SUCCEEDED-default-1564544747164.jhist
-rwxrwx---   3 ubuntu supergroup     120795 2019-07-31 11:49 /tmp/hadoop-yarn/staging/history/done/2019/07/31/000000/job_1564544371315_0001_conf.xml
-rwxrwx---   3 ubuntu supergroup      98025 2019-07-31 11:57 /tmp/hadoop-yarn/staging/history/done/2019/07/31/000000/job_1564544371315_0002-1564545266252-ubuntu-wordcount-1564545458923-9-1-SUCCEEDED-default-1564545272222.jhist
-rwxrwx---   3 ubuntu supergroup     120796 2019-07-31 11:57 /tmp/hadoop-yarn/staging/history/done/2019/07/31/000000/job_1564544371315_0002_conf.xml
-rwxrwx---   3 ubuntu supergroup      98742 2019-07-31 12:55 /tmp/hadoop-yarn/staging/history/done/2019/07/31/000000/job_1564544371315_0003-1564548741261-ubuntu-wordcount-1564548930505-9-1-SUCCEEDED-default-1564548747941.jhist
-rwxrwx---   3 ubuntu supergroup     120796 2019-07-31 12:55 /tmp/hadoop-yarn/staging/history/done/2019/07/31/000000/job_1564544371315_0003_conf.xml

只要还在就好办,那问题应该出现在dre里面,而且是fetcher里面,代码应该没有问题,那就是配置的问题,修改了timezone,位置在app-conf/Fetcher.xml


    mapreduce
    com.linkedin.drelephant.mapreduce.fetchers.MapReduceFSFetcherHadoop2
    
      false
      500
      UTC
    
  

然后再启动服务~终于能看到今天的job了。
小声bb:我昨天跑了6个任务,今天跑了3个,dre告诉我它今天找到了9个任务,最下面6个的时间明明白白写着7/30,上面3个是7/31


Dr.Elephant遇到的问题_第1张图片
不同的时间出现在同一天

为啥被认为是一天了呢。。。这个问题以后再看吧。

你可能感兴趣的:(Dr.Elephant遇到的问题)