Hive Server启动失败求助:已启动HiveServer2与Metastore服务
从你的错误日志可以直接定位核心问题:你尝试启动的是旧版HiveServer(早期的Thrift服务端),但这个服务在较新的Hive版本中已经被彻底移除,所以才会抛出ClassNotFoundException: org.apache.hadoop.hive.service.HiveServer。
具体原因
Hive在0.11版本之后就主推HiveServer2作为新一代Thrift服务端,旧版HiveServer被标记为废弃,后续版本直接删除了对应的org.apache.hadoop.hive.service.HiveServer类。而你已经成功启动了HiveServer2,说明你的环境是基于支持HiveServer2的Hive版本,自然找不到旧服务的类文件。
解决步骤
替换为正确的启动命令
停止使用旧的启动命令,改用HiveServer2的专属启动方式:# 如果系统配置了service管理脚本 sudo service hive-server2 start如果没有配置service脚本,也可以直接后台启动:
nohup hiveserver2 > /var/log/hive/hiveserver2.log 2>&1 &验证服务运行状态
用beeline工具连接测试HiveServer2是否正常:beeline -u jdbc:hive2://master:10000 -n hive能成功进入beeline交互界面,就说明服务正常运行。
清理旧服务配置(可选)
如果你的系统中存在hive-server的service配置文件(比如/etc/init.d/hive-server),可以考虑删除或禁用它,避免后续误操作。
补充说明
你已经成功启动了HiveServer2和Metastore,说明hive-site.xml中的核心配置(元数据库连接、Metastore URI等)是没问题的,只是启动命令用错了版本对应的服务。
内容的提问来源于stack exchange,提问作者Avinash Askar

