hive命令启动出现classnotfound

环境:ambari集群三个节点node104、node105和node106,其中node105上有hiveserver2,并且三个节点均有HIVE CLIENT

注意:“./”指hive安装目录

        其中装有hiveserver2的node105节点,由于某种需要向lib目录下上传了某些jar包,并且通过ambari web修改了此项参数的值

        做完以上变更后,发现在node104和node106上的hive安装目录下启动./bin/hive,进入hive命令行执行hive sql会出现classNotFoundexception的问题,而node105上启动./bin/hive则不会:

hive命令启动出现classnotfound_第1张图片

        这个错误信息提示很明显, 该类无法被找到,发现无法找到的这个类和我之前修改的配置项的值相同,初步怀疑是./bin/hive在启动时会读取配置文件,当读取到此项配置项时,而lib目录下没有对应的jar包(上文中我提过,我仅在node105上lib目录下上传了某些jar包,而node104和node106上均未上传)

        通过vim ./bin/hive查看hive命令,发现其中有两处可以支持我的猜想

hive命令启动出现classnotfound_第2张图片

 解决办法:在node104、node106上启动./bin/hive命令时,通过-hiveconf来规避参数变动带来的影响
hive.exec.post.hooks的默认值为空,所以设置“hive.exec.post.hooks=”

./bin/hive -hiveconf hive.exec.post.hooks=

成功进入执行./bin/hive命令

你可能感兴趣的:(hive,数据仓库)