当运行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,修改权限后,重启正常。

你可能感兴趣的:(当运行hive命令报错:command not found时,如何排查问题)