当运行hive命令报错:command not found时,如何排查问题

作业调度界面运行一个shell脚本,内容如下:


前端日志报错:




分析步骤:

(1)进入nfs查看到机器上脚本内容,并进行执行。执行同样报错:hive:command not found。

(2)在安装了hive的客户端执行:hive,可以进行hive。

执行一条hive语句:show tables ;命令行正确执行,可得hive正常。

执行一条select语句检查mapreduce是否存在问题。

Select count(*) from table_name;

发现命令行卡住。初步确认mapreduce异常。

(3)通过命令行打开:http://172.20.78.90:50030/cluster

发现界面一直处于加载状态。可以暂定yarn异常。

(4)登录机器,切到hadoop账号,jps可以查看hadoop下的进程

发现ResourceManager进程不在了

(5)查看yarn日志,查看进程异常原因

Yarn的日志位于哪个路径呢?通过以下命令可以找到。



是的,就是这个路径:YARN_LOG_DIR

执行:tail –fn 500 /data/hadoop/hadoop/yarn_logs/yarn-hadoop-resourcemanager.log

查看到是与zookeeper之间的联系丢失导致的。

(6)查看zookeeper的进程状态是否正常

发现该节点zk的状态有点异常,这有可能是服务真的问题,java命令显示的问题(类似与jps查看不到进程)

测试环境zk有三个节点,发现zk的状态有一个是leader、一个是fellow是正常的。

因此不是zk问题导致的。

(7)启动yarn的服务

整体启动命令,在resourceManager角色的机器执行:/data/cdh/hadoop-2.6.0-cdh5.8.3/sbin/start-yarn.sh(如果是集群中resourceManager部署了两台,另外一台如果也挂掉了,需要登录到那台机器,也执行一下该命令)

启动后,可以看到,打印的日志正在启动resourceManager,及其他的nodemanager。

(8)再次执行/data/cdh/hadoop-2.6.0-cdh5.8.3/sbin/start-yarn.sh命令

判断进程是否启动成功。

发现每次启动都需要启动n5这个节点上的namenode。证明该节点启动失败。

(9)登录到该节点,并进入nodemanager的日志,查看发现/data目录的权限有问题,发现该目录的权限被修改为777。Hadoop底层因为租户的原因对该目录权限进行判断,必须为755,修改权限后,重启正常。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Zookeeper用于集群主备切换。 YARN让集群具备更好的扩展性。 Spark没有存储能力。 Spark的Ma...
    Yobhel阅读 7,395评论 0 34
  • 说明:不少读者反馈,想使用开源组件搭建Hadoop平台,然后再部署Kylin,但是遇到各种问题。这里我为读者部署一...
    大诗兄_zl阅读 2,127评论 0 2
  • 一、系统参数配置优化 1、系统内核参数优化配置 修改文件/etc/sysctl.conf,添加如下配置,然后执行s...
    张伟科阅读 3,823评论 0 14
  • 前言: Hadoop的课程已经告一段落,基本上在零基础课程里不会再出现了,接下来的课程由若总来上,第一讲Have。...
    ly稻草阅读 3,883评论 1 9
  • 饱醉豚事件事件让我心寒,结果今天看“简叔”对饱醉豚评论的一篇文章使我对简书彻底心寒,文章中所提到的老饱的作品是具有...
    天谴残魂阅读 390评论 2 2