hive 异常问题汇总
问题1:创建数据库时报错
ERROR : FAILED: Execution Error, return code 40000 from org.apache.hadoop.hive.ql.ddl.DDLTask. MetaException(message:Failed to create external path hdfs://192.168.197.130:9000/user/hive/warehouse/test.db for database test. This may result in access not being allowed if the StorageBasedAuthorizationProvider is enabled: null)
查看hdfs 下是否存在/user/hive/warehouse 目录
hdfs dfs -ls /user/hive/warehouse
如果没有就通过hdfs创建一个目录
hdfs dfs mkdir -p /user/hive/warehouse
再次排查hdfs 的/user/hive/warehouse 目录的权限
hdfs dfs -ls -d hdfs://192.168.197.130:9000/user/hive/warehouse

最终确认由于没有权限,导致无法写入hdfs 下的/user/hive/warehouse 目录
设置hdfs的/user/hive/warehouse 目录权限
hdfs dfs -chmod 777 hdfs://192.168.197.130:9000/user/hive/warehouse
在hive模式下,再次执行创建数据库:create database test;
终于可以创建数据库成功,如下:

通过hive创建数据库成功后,再次去查询hdfs 目录/user/hive/warehouse 目录下是否生成数据库文件test.db,显示文件生成成功,说明刚才是因为没有写入权限导致创建数据库失败。

问题2:在启动hiveserver2 时,启动到一半后就不动了

查看hive的日志显示如下:ugi的ip地址不可用,然后就一直在这里循环获取地址信息
2025-03-25T14:43:48,101 INFO [NotificationEventPoll 0] HiveMetaStore.audit: ugi=hadoop ip=unknown-ip-addr cmd=get_config_value: name=metastore.batch.retrieve.max defaultValue=50 2025-03-25T14:43:48,125 INFO [Scheduled Query Poller] HiveMetaStore.audit: ugi=hadoop ip=unknown-ip-addr cmd=scheduled_query_poll 2025-03-25T14:44:48,003 INFO [NotificationEventPoll 0] HiveMetaStore.audit: ugi=hadoop ip=unknown-ip-addr cmd=get_config_value: name=metastore.batch.retrieve.max defaultValue=50 2025-03-25T14:44:48,239 INFO [Scheduled Query Poller] HiveMetaStore.audit: ugi=hadoop ip=unknown-ip-addr cmd=scheduled_query_poll
解决方式:
需要编辑hive-site.xml,找到hive.metastore.uris属性,并配置上对应的地址,然后先启动metastore 服务,再启动hiveserver2 服务
# 启动metastore 服务 hive --service metastore # 启动hiveserver2 服务 hive --service hiveserver2

如果不启动metastore服务的话,在日志会报另一个错误:也就是找不到metastore客户端,如下
2025-03-25T15:09:07,764 ERROR [main] session.SessionState: Error setting up authorization: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
org.apache.hadoop.hive.ql.metadata.HiveException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
日志中显示下面这些信息,说明已经再启动成功了。

尝试能正常连接hive

问题3:在使用insert into 插入数据时报错
Error: Error while compiling statement: FAILED: RuntimeException Cannot create staging directory 'hdfs://192.168.197.130:9000/user/hive/warehouse/test.db/company/.hive-staging_hive_2025-03-25_15-49-46_318_3563320804533594068-1': Permission denied: user=-u, access=WRITE, inode="/user/hive/warehouse/test.db/company":anonymous:supergroup:drwxr-xr-x
权限不足,增加权限
# 添加读写执行权限 hdfs dfs -chmod -R 777 /user/hive/warehouse # 更改所属用户和所属用户组 hdfs dfs -chown -R hadoop:hadoop /user/hive/warehouse

浙公网安备 33010602011771号