尤其是这个:chattr 属性会阻止任何修改

🐛 完整错误历程

1️⃣ 环境变量问题

bash

ERROR: JAVA_HOME is not set and could not be found.
  • 原因:没有配置 Java 环境

  • 解决:设置 JAVA_HOME

2️⃣ Hadoop 目录丢失

bash

/usr/local/hadoop 存在但 ls 没有文件
  • 原因:之前配置把 Hadoop 搞坏了

  • 解决:完全重装 Hadoop 3.1.3

3️⃣ SSH 连接失败

bash

ssh: connect to host localhost port 22: Connection refused
  • 原因:SSH 服务未启动

  • 解决:安装并启动 openssh-server,配置免密登录

4️⃣ MySQL 未安装

bash

找不到命令 “mysql”
  • 原因:系统没有 MySQL

  • 解决sudo apt install mysql-server

5️⃣ MySQL 密码认证失败

bash

ERROR 1698 (28000): Access denied for user 'root'@'localhost'
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  • 原因:MySQL 密码策略、auth_socket 插件、密码不匹配

  • 解决:使用 sudo mysql 免密登录,或改用 hive 用户

6️⃣ MySQL 密码策略太严格

bash

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
  • 原因:密码不符合复杂度和长度要求

  • 解决:降低策略 SET GLOBAL validate_password.policy = LOW

7️⃣ MySQL JDBC 驱动缺失

bash

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
  • 原因mysql-connector-java.jar 不在 Hive lib 目录

  • 解决:下载驱动到 /usr/local/hive/lib/

8️⃣ Hive 使用 Derby 而非 MySQL

bash

Metastore connection URL: jdbc:derby:;databaseName=metastore_db
  • 原因hive-site.xml 配置未生效

  • 解决:确保配置文件在正确位置且格式正确

9️⃣ Guava 版本冲突

bash

java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
  • 原因:Hadoop 的 Guava 11.0.2 与 Hive 需要的 Guava 27.0+ 冲突

  • 解决:统一替换为 guava-27.0-jre.jar

🔟 Hive 启动卡住

bash

Logging initialized... (长时间无 hive> 提示符)
  • 原因:Hadoop 未启动或 MySQL 连接问题

  • 解决start-dfs.sh 确保 Hadoop 运行

1️⃣1️⃣ Public Key Retrieval 错误

bash

Public Key Retrieval is not allowed
  • 原因:MySQL 8.0 的认证插件问题

  • 解决:连接 URL 添加 allowPublicKeyRetrieval=true

1️⃣2️⃣ 配置文件只读无法修改

bash

(vim 保存失败,cat 显示内容未变)
  • 原因:文件被 chattr +i 设置 immutable 属性

  • 解决sudo chattr -i hive-site.xml

1️⃣3️⃣ schemaTool 反复失败

bash

Access denied for user 'root'@'localhost' (using password: YES/NO)
  • 原因hive-site.xml 中的用户名/密码与 MySQL 不一致

  • 解决:统一使用 hive / hive123

更多推荐