初始化hive时的小问题

./schematool -dbType mysql -initSchema

jdbc:mysql://hadoop:3306/hive> CREATE TABLE IF NOT EXISTS BUCKETING_COLS ( SD_ID bigint(20) NOT NULL, BUCKET_COL_NAME varchar(256) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL, INTEGER_IDX int(11) NOT NULL, PRIMARY KEY (SD_ID,INTEGER_IDX), KEY BUCKETING_COLS_N49 (SD_ID), CONSTRAINT BUCKETING_COLS_FK1 FOREIGN KEY (SD_ID) REFERENCES SDS (SD_ID) ) ENGINE=InnoDB DEFAULT CHARSET=latin1
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
Underlying cause: java.io.IOException : Schema script failed, errorcode 2
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
	at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:594)
	at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:567)
	at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1517)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.hadoop.util.RunJar.run(RunJar.java:323)
	at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
Caused by: java.io.IOException: Schema script failed, errorcode 2
	at org.apache.hive.beeline.HiveSchemaTool.runBeeLine(HiveSchemaTool.java:1226)
	at org.apache.hive.beeline.HiveSchemaTool.runBeeLine(HiveSchemaTool.java:1204)
	at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:590)

尝试在mysql中修改hive数据库的字符集,alter database hive character set latin1;

修改之后,重新格式化,还是报错?????????

发现错误

Error: Table 'CTLGS' already exists (state=42S01,code=1050)
Closing: 0: jdbc:mysql://hadoop:3306/hive?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false

删除数据库试下呢?

drop database hive;
 

重新初始化,成功了!

初始化Hive Metastore之前,需要确保以下条件已满足: 1.已安装Hadoop和Hive。 2.已创建HDFS用户和组。 以下是初始化Hive Metastore的步骤: 1.创建Hive Metastore数据库。可以使用MySQL或PostgreSQL作为Hive Metastore的数据库。使用以下命令创建MySQL数据库: ``` mysql -u root -p create database metastore; grant all privileges on metastore.* to 'hiveuser'@'localhost' identified by 'password'; flush privileges; exit; ``` 2.在Hive配置文件hive-site.xml中设置Hive Metastore的JDBC连接URL和数据库用户名和密码。 ``` <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hiveuser</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> <description>password to use against metastore database</description> </property> ``` 3.运行Hive Metastore初始化脚本。使用以下命令运行脚本: ``` schematool -dbType mysql -initSchema ``` 4.启动Hive服务,并测试Hive Metastore是否能正常工作。 ``` hive --service metastore & ``` 以上是初始化Hive Metastore的基本步骤。可以根据实际情况进行调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值