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號