tips:早上同事用sqoop脚本拉取mysql的数据导入hbase发现一直卡住在Running job,没办法继续,用了重启大数据环境服务大法,没有解决,证明没有那么简单,开始掉头发了,所以花了整个下午来解决这个问题
报错截图如下:
一直卡在最后一行 Running job: job_1639470099841_0021
破案方案如下,请仔细观看:
- 进入yarn web后台管理页面 http://ip:端口/cluster
刚开始进去发现存在大量正在等待执行的job(可以看progress那一列空心的就代表没有执行,实心的代表执行完了),回想起来之前启动过很多次sqoop脚本,会不会是因为前面提交的job没执行完导致后面提交的都在等待(Queue),因为上午确实运行过一个数据量特别大的脚本,然后发现hbase的数据量过一会儿会变多,更加让我怀疑就是上午那个提交的job卡在了队头,导致后面提交的job根本没办法继续,接着继续往下破案。。。
2.去服务器查看下提交的job并且kill(我是这么想的 也不确定能不能行)
hadoop job -list
查看所有的job列表hadoop job -kill id
强制结束job
发现了整个屏幕的job 正在等待执行,正在查找kill all命令,发现没有这么强大的命令,只能挥舞双手一顿操作猛如虎kill这几十个job
在kill job的过程中,发现有些job的progress正在变化,然后发现hbase的数据量也在慢慢增加,更加证实了我的猜想,于是把卡住的job全部kill掉了
3.kill完job之后继续执行sqoop脚本
继续执行sqoop脚本,发现完美运行成功
终于看见了map reduce的进度从0%到100%,那么熟悉的画面(长叹一口真气),打开了hbase看了一下数据,终于拉进来了,终于破案了。。。。。接着加班ing