SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Metastore connection URL: jdbc:mysql://tencent203:3306/metastore?characterEncoding=UTF8&useSSL=false&createDatabaseIfNotExist=true
Metastore Connection Driver : com.mysql.jdbc.Driver
Metastore connection User: root
Starting metastore schema initialization to 3.1.0
Initialization script hive-schema-3.1.0.mysql.sql
Error: Unknown system variable 'tx_isolation' (state=HY000,code=1193)
Error: Could not retrieve transation read-only status server (state=S1000,code=0)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
Underlying cause: java.io.IOException : Schema script failed, errorcode 2
Use --verbose for detailed stacktrace.
解决问题:
由于放在 ../hive-3.1.2/lib 下的mysql-connector-java.jar 是mysql的3.1.0版本导致。
更换为自己所有的mysql版本的即可,我的mysql是8.0 所有我用的是mysql-connector-java-8.0.11.jar
重新执行
schematool -dbType mysql -initSchema
成功:

文章描述了在使用Hive时遇到的元数据初始化失败的问题,原因是使用的mysql-connector-java.jar版本与实际MySQL数据库版本不匹配。具体表现为SLF4J的日志绑定问题和对tx_isolation系统变量的未知错误。解决方案是更换与当前MySQL版本(这里是8.0)兼容的驱动jar包,如mysql-connector-java-8.0.11.jar,然后重新运行初始化脚本,最终成功完成元数据初始化。
2293

被折叠的 条评论
为什么被折叠?



