一、前言:
安装完impala之后,是不是出现所有的集群命令不能使用?或是出现hiveserver2服务能正常启动,但是监测不但端口?或是启动hive出现NoClassDefFoundError错误的情景。。那么,我们一起来分析并解决吧!!
二、案例背景:
(1) 在我安装完成impala之后,需要启动元数据与hiveserver2服务,元数据服务可以正常启动,但是hiveserver服务启动的时候出现,服务正常启动了,但是监测10000端口却不存在。
(2) 于是百度查找资料,很多作者说可能是集群进入安全模式了,于是我使用hdfs dfsadmin -safemode get 这个命令来确认集群是否真正进入安全模式了,结果发现集群不能识别该指令。。。于是我尝试使用hdfs dfs -ls / 来查看下hdfs的目录,结果还是不能识别该指令。。。
(3) 查看hdfs的配置文件,一切均正确,想着反正元数据服务启动了,先启动hive吧,结果出现如下图所示错误(看错误提示:貌似版本不一致导致):
(4) 使用命令which hive 与which hdfs 查看安装的位置,结果打印出的路径是 /usr/bin/..,
(5) 顿时反应到:安装impala使用的是yum源,yum源会自动下载与impala相关的构件(包括hadoop、hdfs、hive、hbase等),很可能会在/usr/bin/目录下面配置好环境变量,以至于在使用命令的时候会优先使用/usr/bin/下的命令
(6) 嗯嗯! 猜想不错~于是有了以下解决方案
三、解决方案:
(1) 先删除 /usr/bin/ 目录下对应的命令,部分如下:
rm -rf /usr/bin/hadoop
rm -rf /usr/bin/hdfs
rm -rf /usr/bin/hive
rm -rf /usr/bin/beeline
rm -rf /usr/bin/hiveserver2
(2) 然后使用命令 source /etc/profile 刷新配置文件即可
四、结果
(1) hiveserver2服务可以正常启动,端口号也可以正常监测到
(2) hive 也可以正常启动
五、结尾:
如果有什么问题或者不足,欢迎大家来指正哦~