hive server2启动报错

我用beeline方式启动hive server2时报如下错误
Cannot find hadoop installation: $HADOOP_HOME or $HADOOP_PREFIX must be set or hadoop must be in the path
可是我的HADOOP_HOME已经配置好了
这是/etc/profile文件
hive.png

这是hive_env.sh文件
hive2.png

不知道是什么原因,哪还需要配置吗?

fish - Hadooper

赞同来自:

Cannot find hadoop installation: $HADOOP_HOME or $HADOOP_PREFIX must be set or hadoop must be in the path 是执行什么的时候报的错?

mengmeng - 大数据工程师

赞同来自:

你这个meta放在哪里!?

ycyzlp

赞同来自:

执行service hive-metastore start时虽然显示OK,我看日志也报这个错,执行service hive-server2 start也报这个错
123.png
234.png
345.png
456.png
   

fish - Hadooper

赞同来自:

你的这段错误信息是/usr/lib/hive/bin/hive中打印出来的,你可以在其中加些log,看命令执行到这里的是有,相应的这些环境变量都是什么值。   另外,不使用service hive-server2 start,改成/etc/init.d/hive-server2 start试试情况又是如何的?   可以搜索一下用service以及/etc/init.d方式启动服务区别是什么。

ycyzlp

赞同来自:

我试了下用/etc/init.d/hive-server2 start启动,还是报那个错,我也打了log 环境变量的值也都正常,但还是会报那个错
hive1.png
hive2.png
 

fish - Hadooper

赞同来自:

既然跑到了test2,这个/home/hadoop/hadoop-2.6.0-cdh5.4.5/bin/hadoop是个file么,怎么会使[ ! -f ${HADOOP} ]成立的?

fish - Hadooper

赞同来自:

是不是你的文件权限有问题?

ycyzlp

赞同来自:

hive4.png
[ ! -f ${HADOOP} ]这句执行的条件不是非文件才成立么,可hadoop确实不是文件啊,是个脚本
hive3.png
权限有什么问题?

ycyzlp

赞同来自:

hive5.png
 

fish - Hadooper

赞同来自:

你su成hive用户能访问到hadoop这个文件么?

ycyzlp

赞同来自:

hive6.png
访问不了,这个应该怎么修改?

ycyzlp

赞同来自:

我对hadoop安装目录做了chmod -R 755操作后,不报那个错了,但是又报新的错误,说我的JAVA_HOME没有设置 可我的etc/profile里JAVA_HOME是设置了的
hive7.png
hive8.png
   

fish - Hadooper

赞同来自:

错误应该是执行hadoop version命令没正确返回吧? 你的hadoop是手动拷贝到这个目录上的?是否将hadoop的执行路径也放到path中使hadoop version生效了?   这个错误应该还是在脚本中,你看看这些脚本怎么写的能直接得到答案啊。

ycyzlp

赞同来自:

我执行hadoop version可以正常返回啊,可在脚本里确实执行有问题,实在是不知道是哪的问题,以下是相关截图
hive3.png
hive1.png
hive2.png
 

fish - Hadooper

赞同来自:

你先su - hive 然后再执行hadoop version,有什么结果?

小心巴

赞同来自:

您好,我也遇到了同样问题,你最后是怎么解决的?

GXHLW

赞同来自:

遇到同样的问题,有解决方法吗@fish

ljc520313

赞同来自:

hive_env.sh文件中再配置一下HADOOP_HOME,试试

要回复问题请先登录注册