文章目录 一、hive2升级到hive3步骤 1.备份hive2元数据库 2.导入到hive3对应的hive元数据表 3.更新hive_metastore数据表信息 3.1需要新增的表 3.2需要更新字段的表 3.3需要更改数据的表 4.hive3上集群需要的操作 4.1更改元数据对应的库名 4.2重启HiveMetaStore对应服务 二、hive3新特性
一、hive2升级到hive3步骤
1.备份hive2元数据库
mysqldump - h ip - u user - p hive > hive. sql
2.导入到hive3对应的hive元数据表
mysql - h ip - u litbaws - p hive3 < hive3. sql
3.更新hive_metastore数据表信息
3.1需要新增的表
序号 hive3 1 I_SCHEMA 2 MATERIALIZATION_REBUILD_LOCKS 3 METASTORE_DB_PROPERTIES 4 MIN_HISTORY_LEVEL 5 NEXT_WRITE_ID 6 REPL_TXN_MAP 7 RUNTIME_STATS 8 SCHEMA_VERSION 9 TXN_TO_WRITE_ID 10 WM_MAPPING 11 WM_POOL 12 WM_POOL_TO_TRIGGER 13 WM_RESOURCEPLAN 14 WM_TRIGGER
DROP TABLE IF EXISTS ` I_SCHEMA` ;
CREATE TABLE ` I_SCHEMA` ( ` SCHEMA_ID` bigint ( 20 ) NOT NULL , ` SCHEMA_TYPE` int ( 11 ) NOT NULL , ` NAME` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` DB_ID` bigint ( 20 ) NULL DEFAULT NULL , ` COMPATIBILITY` int ( 11 ) NOT NULL , ` VALIDATION_LEVEL` int ( 11 ) NOT NULL , ` CAN_EVOLVE` bit ( 1 ) NOT NULL , ` SCHEMA_GROUP` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` DESCRIPTION` varchar ( 4000 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , PRIMARY KEY ( ` SCHEMA_ID` ) USING BTREE , INDEX ` DB_ID` ( ` DB_ID` ) USING BTREE , INDEX ` UNIQUE_NAME` ( ` NAME` ) USING BTREE , CONSTRAINT ` I_SCHEMA_ibfk_1` FOREIGN KEY ( ` DB_ID` ) REFERENCES ` DBS` ( ` DB_ID` ) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` MATERIALIZATION_REBUILD_LOCKS` ;
CREATE TABLE ` MATERIALIZATION_REBUILD_LOCKS` ( ` MRL_TXN_ID` bigint ( 20 ) NOT NULL , ` MRL_DB_NAME` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` MRL_TBL_NAME` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` MRL_LAST_HEARTBEAT` bigint ( 20 ) NOT NULL , PRIMARY KEY ( ` MRL_TXN_ID` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` METASTORE_DB_PROPERTIES` ;
CREATE TABLE ` METASTORE_DB_PROPERTIES` ( ` PROPERTY_KEY` varchar ( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` PROPERTY_VALUE` varchar ( 1000 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` DESCRIPTION` varchar ( 1000 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , PRIMARY KEY ( ` PROPERTY_KEY` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` MIN_HISTORY_LEVEL` ;
CREATE TABLE ` MIN_HISTORY_LEVEL` ( ` MHL_TXNID` bigint ( 20 ) NOT NULL , ` MHL_MIN_OPEN_TXNID` bigint ( 20 ) NOT NULL , PRIMARY KEY ( ` MHL_TXNID` ) USING BTREE , INDEX ` MIN_HISTORY_LEVEL_IDX` ( ` MHL_MIN_OPEN_TXNID` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` NEXT_WRITE_ID` ;
CREATE TABLE ` NEXT_WRITE_ID` ( ` NWI_DATABASE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` NWI_TABLE` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` NWI_NEXT` bigint ( 20 ) NOT NULL , UNIQUE INDEX ` NEXT_WRITE_ID_IDX` ( ` NWI_DATABASE` , ` NWI_TABLE` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` REPL_TXN_MAP` ;
CREATE TABLE ` REPL_TXN_MAP` ( ` RTM_REPL_POLICY` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` RTM_SRC_TXN_ID` bigint ( 20 ) NOT NULL , ` RTM_TARGET_TXN_ID` bigint ( 20 ) NOT NULL , PRIMARY KEY ( ` RTM_REPL_POLICY` , ` RTM_SRC_TXN_ID` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` RUNTIME_STATS` ;
CREATE TABLE ` RUNTIME_STATS` ( ` RS_ID` bigint ( 20 ) NOT NULL , ` CREATE_TIME` bigint ( 20 ) NOT NULL , ` WEIGHT` bigint ( 20 ) NOT NULL , ` PAYLOAD` blob NULL , PRIMARY KEY ( ` RS_ID` ) USING BTREE , INDEX ` IDX_RUNTIME_STATS_CREATE_TIME` ( ` CREATE_TIME` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` SCHEMA_VERSION` ;
CREATE TABLE ` SCHEMA_VERSION` ( ` SCHEMA_VERSION_ID` bigint ( 20 ) NOT NULL , ` SCHEMA_ID` bigint ( 20 ) NULL DEFAULT NULL , ` VERSION` int ( 11 ) NOT NULL , ` CREATED_AT` bigint ( 20 ) NOT NULL , ` CD_ID` bigint ( 20 ) NULL DEFAULT NULL , ` STATE` int ( 11 ) NOT NULL , ` DESCRIPTION` varchar ( 4000 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` SCHEMA_TEXT` mediumtext CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL , ` FINGERPRINT` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` SCHEMA_VERSION_NAME` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` SERDE_ID` bigint ( 20 ) NULL DEFAULT NULL , PRIMARY KEY ( ` SCHEMA_VERSION_ID` ) USING BTREE , INDEX ` CD_ID` ( ` CD_ID` ) USING BTREE , INDEX ` SERDE_ID` ( ` SERDE_ID` ) USING BTREE , INDEX ` UNIQUE_VERSION` ( ` SCHEMA_ID` , ` VERSION` ) USING BTREE , CONSTRAINT ` SCHEMA_VERSION_ibfk_1` FOREIGN KEY ( ` SCHEMA_ID` ) REFERENCES ` I_SCHEMA` ( ` SCHEMA_ID` ) ON DELETE RESTRICT ON UPDATE RESTRICT , CONSTRAINT ` SCHEMA_VERSION_ibfk_2` FOREIGN KEY ( ` CD_ID` ) REFERENCES ` CDS` ( ` CD_ID` ) ON DELETE RESTRICT ON UPDATE RESTRICT , CONSTRAINT ` SCHEMA_VERSION_ibfk_3` FOREIGN KEY ( ` SERDE_ID` ) REFERENCES ` SERDES` ( ` SERDE_ID` ) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` TXN_TO_WRITE_ID` ;
CREATE TABLE ` TXN_TO_WRITE_ID` ( ` T2W_TXNID` bigint ( 20 ) NOT NULL , ` T2W_DATABASE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` T2W_TABLE` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` T2W_WRITEID` bigint ( 20 ) NOT NULL , UNIQUE INDEX ` TBL_TO_TXN_ID_IDX` ( ` T2W_DATABASE` , ` T2W_TABLE` , ` T2W_TXNID` ) USING BTREE , UNIQUE INDEX ` TBL_TO_WRITE_ID_IDX` ( ` T2W_DATABASE` , ` T2W_TABLE` , ` T2W_WRITEID` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` WM_MAPPING` ;
CREATE TABLE ` WM_MAPPING` ( ` MAPPING_ID` bigint ( 20 ) NOT NULL , ` RP_ID` bigint ( 20 ) NOT NULL , ` ENTITY_TYPE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` ENTITY_NAME` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` POOL_ID` bigint ( 20 ) NULL DEFAULT NULL , ` ORDERING` int ( 11 ) NULL DEFAULT NULL , PRIMARY KEY ( ` MAPPING_ID` ) USING BTREE , UNIQUE INDEX ` UNIQUE_WM_MAPPING` ( ` RP_ID` , ` ENTITY_TYPE` , ` ENTITY_NAME` ) USING BTREE , INDEX ` WM_MAPPING_FK2` ( ` POOL_ID` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` WM_POOL` ;
CREATE TABLE ` WM_POOL` ( ` POOL_ID` bigint ( 20 ) NOT NULL , ` RP_ID` bigint ( 20 ) NOT NULL , ` PATH` varchar ( 767 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` ALLOC_FRACTION` double NULL DEFAULT NULL , ` QUERY_PARALLELISM` int ( 11 ) NULL DEFAULT NULL , ` SCHEDULING_POLICY` varchar ( 767 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , PRIMARY KEY ( ` POOL_ID` ) USING BTREE , UNIQUE INDEX ` UNIQUE_WM_POOL` ( ` RP_ID` , ` PATH` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` WM_POOL_TO_TRIGGER` ;
CREATE TABLE ` WM_POOL_TO_TRIGGER` ( ` POOL_ID` bigint ( 20 ) NOT NULL , ` TRIGGER_ID` bigint ( 20 ) NOT NULL , PRIMARY KEY ( ` POOL_ID` , ` TRIGGER_ID` ) USING BTREE , INDEX ` WM_POOL_TO_TRIGGER_FK2` ( ` TRIGGER_ID` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` WM_RESOURCEPLAN` ;
CREATE TABLE ` WM_RESOURCEPLAN` ( ` RP_ID` bigint ( 20 ) NOT NULL , ` NAME` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` QUERY_PARALLELISM` int ( 11 ) NULL DEFAULT NULL , ` STATUS` varchar ( 20 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` DEFAULT_POOL_ID` bigint ( 20 ) NULL DEFAULT NULL , PRIMARY KEY ( ` RP_ID` ) USING BTREE , UNIQUE INDEX ` UNIQUE_WM_RESOURCEPLAN` ( ` NAME` ) USING BTREE , INDEX ` WM_RESOURCEPLAN_FK1` ( ` DEFAULT_POOL_ID` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` WM_TRIGGER` ;
CREATE TABLE ` WM_TRIGGER` ( ` TRIGGER_ID` bigint ( 20 ) NOT NULL , ` RP_ID` bigint ( 20 ) NOT NULL , ` NAME` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` TRIGGER_EXPRESSION` varchar ( 1024 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` ACTION_EXPRESSION` varchar ( 1024 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` IS_IN_UNMANAGED` bit ( 1 ) NOT NULL DEFAULT b'0' , PRIMARY KEY ( ` TRIGGER_ID` ) USING BTREE , UNIQUE INDEX ` UNIQUE_WM_TRIGGER` ( ` RP_ID` , ` NAME` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
ALTER TABLE WM_MAPPING ADD CONSTRAINT ` WM_MAPPING_FK1` FOREIGN KEY ( ` RP_ID` ) REFERENCES ` WM_RESOURCEPLAN` ( ` RP_ID` ) ;
ALTER TABLE WM_MAPPING ADD CONSTRAINT ` WM_MAPPING_FK2` FOREIGN KEY ( ` POOL_ID` ) REFERENCES ` WM_POOL` ( ` POOL_ID` ) ;
ALTER TABLE WM_POOL ADD CONSTRAINT WM_POOL_FK1 FOREIGN KEY ( RP_ID) REFERENCES ` WM_RESOURCEPLAN` ( ` RP_ID` ) ;
ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT ` WM_POOL_TO_TRIGGER_FK1` FOREIGN KEY ( ` POOL_ID` ) REFERENCES ` WM_POOL` ( ` POOL_ID` ) ;
ALTER TABLE WM_POOL_TO_TRIGGER ADD CONSTRAINT ` WM_POOL_TO_TRIGGER_FK2` FOREIGN KEY ( ` TRIGGER_ID` ) REFERENCES ` WM_TRIGGER` ( ` TRIGGER_ID` ) ;
ALTER TABLE WM_RESOURCEPLAN ADD CONSTRAINT ` WM_RESOURCEPLAN_FK1` FOREIGN KEY ( ` DEFAULT_POOL_ID` ) REFERENCES ` WM_POOL` ( ` POOL_ID` ) ;
ALTER TABLE WM_TRIGGER ADD CONSTRAINT ` WM_TRIGGER_FK1` FOREIGN KEY ( ` RP_ID` ) REFERENCES ` WM_RESOURCEPLAN` ( ` RP_ID` ) ;
3.2需要更新字段的表
序号 表名 hive3 hive2 备注 1 COMPLETED_TXN_COMPONENTS 7 4 2 DB_PRIVS 10 9 数据库权限 3 KEY_CONSTRAINTS 13 12 4 NOTIFICATION_LOG 9 8 5 PART_COL_PRIVS 11 10 分区列的授权信息 6 PART_COL_STATS 22 20 分区中列的统计信息 7 PART_PRIVS 10 9 8 PARTITION_EVENTS 7 6 9 TAB_COL_STATS 21 19 表中列的统计信息,包括数值类型的最大和最小值 10 TBL_COL_PRIVS 11 10 表中列的统计信息,包括数值类型的最大和最小值 11 TXN_COMPONENTS 6 5
DROP TABLE IF EXISTS ` COMPLETED_TXN_COMPONENTS` ;
CREATE TABLE ` COMPLETED_TXN_COMPONENTS` ( ` CTC_TXNID` bigint ( 20 ) NOT NULL , ` CTC_DATABASE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` CTC_TABLE` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` CTC_PARTITION` varchar ( 767 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` CTC_TIMESTAMP` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP , ` CTC_WRITEID` bigint ( 20 ) NULL DEFAULT NULL , ` CTC_UPDATE_DELETE` char ( 1 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , INDEX ` COMPLETED_TXN_COMPONENTS_IDX` ( ` CTC_DATABASE` , ` CTC_TABLE` , ` CTC_PARTITION` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` DB_PRIVS` ;
CREATE TABLE ` DB_PRIVS` ( ` DB_GRANT_ID` bigint ( 20 ) NOT NULL , ` CREATE_TIME` int ( 11 ) NOT NULL , ` DB_ID` bigint ( 20 ) NULL DEFAULT NULL , ` GRANT_OPTION` smallint ( 6 ) NOT NULL , ` GRANTOR` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` GRANTOR_TYPE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` PRINCIPAL_NAME` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` PRINCIPAL_TYPE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` DB_PRIV` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` AUTHORIZER` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , PRIMARY KEY ( ` DB_GRANT_ID` ) USING BTREE , UNIQUE INDEX ` DBPRIVILEGEINDEX` ( ` AUTHORIZER` , ` DB_ID` , ` PRINCIPAL_NAME` , ` PRINCIPAL_TYPE` , ` DB_PRIV` , ` GRANTOR` , ` GRANTOR_TYPE` ) USING BTREE , INDEX ` DB_PRIVS_N49` ( ` DB_ID` ) USING BTREE , CONSTRAINT ` DB_PRIVS_FK1` FOREIGN KEY ( ` DB_ID` ) REFERENCES ` DBS` ( ` DB_ID` ) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` KEY_CONSTRAINTS` ;
CREATE TABLE ` KEY_CONSTRAINTS` ( ` CHILD_CD_ID` bigint ( 20 ) NULL DEFAULT NULL , ` CHILD_INTEGER_IDX` int ( 11 ) NULL DEFAULT NULL , ` CHILD_TBL_ID` bigint ( 20 ) NULL DEFAULT NULL , ` PARENT_CD_ID` bigint ( 20 ) NULL DEFAULT NULL , ` PARENT_INTEGER_IDX` int ( 11 ) NOT NULL , ` PARENT_TBL_ID` bigint ( 20 ) NOT NULL , ` POSITION` bigint ( 20 ) NOT NULL , ` CONSTRAINT_NAME` varchar ( 400 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` CONSTRAINT_TYPE` smallint ( 6 ) NOT NULL , ` UPDATE_RULE` smallint ( 6 ) NULL DEFAULT NULL , ` DELETE_RULE` smallint ( 6 ) NULL DEFAULT NULL , ` ENABLE_VALIDATE_RELY` smallint ( 6 ) NOT NULL , ` DEFAULT_VALUE` varchar ( 400 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , PRIMARY KEY ( ` CONSTRAINT_NAME` , ` POSITION` ) USING BTREE , INDEX ` CONSTRAINTS_PARENT_TABLE_ID_INDEX` ( ` PARENT_TBL_ID` ) USING BTREE , INDEX ` CONSTRAINTS_CONSTRAINT_TYPE_INDEX` ( ` CONSTRAINT_TYPE` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` NOTIFICATION_LOG` ;
CREATE TABLE ` NOTIFICATION_LOG` ( ` NL_ID` bigint ( 20 ) NOT NULL , ` EVENT_ID` bigint ( 20 ) NOT NULL , ` EVENT_TIME` int ( 11 ) NOT NULL , ` EVENT_TYPE` varchar ( 32 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` CAT_NAME` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` DB_NAME` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` TBL_NAME` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` MESSAGE` longtext CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL , ` MESSAGE_FORMAT` varchar ( 16 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , PRIMARY KEY ( ` NL_ID` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` PART_COL_PRIVS` ;
CREATE TABLE ` PART_COL_PRIVS` ( ` PART_COLUMN_GRANT_ID` bigint ( 20 ) NOT NULL , ` COLUMN_NAME` varchar ( 767 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` CREATE_TIME` int ( 11 ) NOT NULL , ` GRANT_OPTION` smallint ( 6 ) NOT NULL , ` GRANTOR` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` GRANTOR_TYPE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` PART_ID` bigint ( 20 ) NULL DEFAULT NULL , ` PRINCIPAL_NAME` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` PRINCIPAL_TYPE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` PART_COL_PRIV` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` AUTHORIZER` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , PRIMARY KEY ( ` PART_COLUMN_GRANT_ID` ) USING BTREE , INDEX ` PART_COL_PRIVS_N49` ( ` PART_ID` ) USING BTREE , INDEX ` PARTITIONCOLUMNPRIVILEGEINDEX` ( ` AUTHORIZER` , ` PART_ID` , ` COLUMN_NAME` , ` PRINCIPAL_NAME` , ` PRINCIPAL_TYPE` , ` PART_COL_PRIV` , ` GRANTOR` , ` GRANTOR_TYPE` ) USING BTREE , CONSTRAINT ` PART_COL_PRIVS_FK1` FOREIGN KEY ( ` PART_ID` ) REFERENCES ` PARTITIONS` ( ` PART_ID` ) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` PART_COL_STATS` ;
CREATE TABLE ` PART_COL_STATS` ( ` CS_ID` bigint ( 20 ) NOT NULL , ` CAT_NAME` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT 'hive' , ` DB_NAME` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL , ` TABLE_NAME` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL , ` PARTITION_NAME` varchar ( 767 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL , ` COLUMN_NAME` varchar ( 767 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL , ` COLUMN_TYPE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL , ` PART_ID` bigint ( 20 ) NOT NULL , ` LONG_LOW_VALUE` bigint ( 20 ) NULL DEFAULT NULL , ` LONG_HIGH_VALUE` bigint ( 20 ) NULL DEFAULT NULL , ` DOUBLE_HIGH_VALUE` double ( 53 , 4 ) NULL DEFAULT NULL , ` DOUBLE_LOW_VALUE` double ( 53 , 4 ) NULL DEFAULT NULL , ` BIG_DECIMAL_LOW_VALUE` varchar ( 4000 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` BIG_DECIMAL_HIGH_VALUE` varchar ( 4000 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` NUM_NULLS` bigint ( 20 ) NOT NULL , ` NUM_DISTINCTS` bigint ( 20 ) NULL DEFAULT NULL , ` BIT_VECTOR` blob NULL , ` AVG_COL_LEN` double ( 53 , 4 ) NULL DEFAULT NULL , ` MAX_COL_LEN` bigint ( 20 ) NULL DEFAULT NULL , ` NUM_TRUES` bigint ( 20 ) NULL DEFAULT NULL , ` NUM_FALSES` bigint ( 20 ) NULL DEFAULT NULL , ` LAST_ANALYZED` bigint ( 20 ) NOT NULL , PRIMARY KEY ( ` CS_ID` ) USING BTREE , INDEX ` PART_COL_STATS_FK` ( ` PART_ID` ) USING BTREE , INDEX ` PCS_STATS_IDX` ( ` CAT_NAME` , ` DB_NAME` , ` TABLE_NAME` , ` COLUMN_NAME` , ` PARTITION_NAME` ) USING BTREE , CONSTRAINT ` PART_COL_STATS_FK` FOREIGN KEY ( ` PART_ID` ) REFERENCES ` PARTITIONS` ( ` PART_ID` ) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` PART_PRIVS` ;
CREATE TABLE ` PART_PRIVS` ( ` PART_GRANT_ID` bigint ( 20 ) NOT NULL , ` CREATE_TIME` int ( 11 ) NOT NULL , ` GRANT_OPTION` smallint ( 6 ) NOT NULL , ` GRANTOR` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` GRANTOR_TYPE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` PART_ID` bigint ( 20 ) NULL DEFAULT NULL , ` PRINCIPAL_NAME` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` PRINCIPAL_TYPE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` PART_PRIV` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` AUTHORIZER` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , PRIMARY KEY ( ` PART_GRANT_ID` ) USING BTREE , INDEX ` PARTPRIVILEGEINDEX` ( ` AUTHORIZER` , ` PART_ID` , ` PRINCIPAL_NAME` , ` PRINCIPAL_TYPE` , ` PART_PRIV` , ` GRANTOR` , ` GRANTOR_TYPE` ) USING BTREE , INDEX ` PART_PRIVS_N49` ( ` PART_ID` ) USING BTREE , CONSTRAINT ` PART_PRIVS_FK1` FOREIGN KEY ( ` PART_ID` ) REFERENCES ` PARTITIONS` ( ` PART_ID` ) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` PARTITION_EVENTS` ;
CREATE TABLE ` PARTITION_EVENTS` ( ` PART_NAME_ID` bigint ( 20 ) NOT NULL , ` CAT_NAME` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` DB_NAME` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` EVENT_TIME` bigint ( 20 ) NOT NULL , ` EVENT_TYPE` int ( 11 ) NOT NULL , ` PARTITION_NAME` varchar ( 767 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` TBL_NAME` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , PRIMARY KEY ( ` PART_NAME_ID` ) USING BTREE , INDEX ` PARTITIONEVENTINDEX` ( ` PARTITION_NAME` ) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` TAB_COL_STATS` ;
CREATE TABLE ` TAB_COL_STATS` ( ` CS_ID` bigint ( 20 ) NOT NULL , ` CAT_NAME` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT 'hive' , ` DB_NAME` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL , ` TABLE_NAME` varchar ( 256 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL , ` COLUMN_NAME` varchar ( 767 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL , ` COLUMN_TYPE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL , ` TBL_ID` bigint ( 20 ) NOT NULL , ` LONG_LOW_VALUE` bigint ( 20 ) NULL DEFAULT NULL , ` LONG_HIGH_VALUE` bigint ( 20 ) NULL DEFAULT NULL , ` DOUBLE_HIGH_VALUE` double ( 53 , 4 ) NULL DEFAULT NULL , ` DOUBLE_LOW_VALUE` double ( 53 , 4 ) NULL DEFAULT NULL , ` BIG_DECIMAL_LOW_VALUE` varchar ( 4000 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` BIG_DECIMAL_HIGH_VALUE` varchar ( 4000 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` NUM_NULLS` bigint ( 20 ) NOT NULL , ` NUM_DISTINCTS` bigint ( 20 ) NULL DEFAULT NULL , ` BIT_VECTOR` blob NULL , ` AVG_COL_LEN` double ( 53 , 4 ) NULL DEFAULT NULL , ` MAX_COL_LEN` bigint ( 20 ) NULL DEFAULT NULL , ` NUM_TRUES` bigint ( 20 ) NULL DEFAULT NULL , ` NUM_FALSES` bigint ( 20 ) NULL DEFAULT NULL , ` LAST_ANALYZED` bigint ( 20 ) NOT NULL , PRIMARY KEY ( ` CS_ID` ) USING BTREE , INDEX ` TAB_COL_STATS_FK` ( ` TBL_ID` ) USING BTREE , INDEX ` TAB_COL_STATS_IDX` ( ` CAT_NAME` , ` DB_NAME` , ` TABLE_NAME` , ` COLUMN_NAME` ) USING BTREE , CONSTRAINT ` TAB_COL_STATS_FK` FOREIGN KEY ( ` TBL_ID` ) REFERENCES ` TBLS` ( ` TBL_ID` ) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` TBL_COL_PRIVS` ;
CREATE TABLE ` TBL_COL_PRIVS` ( ` TBL_COLUMN_GRANT_ID` bigint ( 20 ) NOT NULL , ` COLUMN_NAME` varchar ( 767 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` CREATE_TIME` int ( 11 ) NOT NULL , ` GRANT_OPTION` smallint ( 6 ) NOT NULL , ` GRANTOR` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` GRANTOR_TYPE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` PRINCIPAL_NAME` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` PRINCIPAL_TYPE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` TBL_COL_PRIV` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , ` TBL_ID` bigint ( 20 ) NULL DEFAULT NULL , ` AUTHORIZER` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL , PRIMARY KEY ( ` TBL_COLUMN_GRANT_ID` ) USING BTREE , INDEX ` TABLECOLUMNPRIVILEGEINDEX` ( ` AUTHORIZER` , ` TBL_ID` , ` COLUMN_NAME` , ` PRINCIPAL_NAME` , ` PRINCIPAL_TYPE` , ` TBL_COL_PRIV` , ` GRANTOR` , ` GRANTOR_TYPE` ) USING BTREE , INDEX ` TBL_COL_PRIVS_N49` ( ` TBL_ID` ) USING BTREE , CONSTRAINT ` TBL_COL_PRIVS_FK1` FOREIGN KEY ( ` TBL_ID` ) REFERENCES ` TBLS` ( ` TBL_ID` ) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS ` TXN_COMPONENTS` ;
CREATE TABLE ` TXN_COMPONENTS` ( ` TC_TXNID` bigint ( 20 ) NOT NULL , ` TC_DATABASE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` TC_TABLE` varchar ( 128 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` TC_PARTITION` varchar ( 767 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL , ` TC_OPERATION_TYPE` char ( 1 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL , ` TC_WRITEID` bigint ( 20 ) NULL DEFAULT NULL , INDEX ` TC_TXNID_INDEX` ( ` TC_TXNID` ) USING BTREE , CONSTRAINT ` TXN_COMPONENTS_ibfk_1` FOREIGN KEY ( ` TC_TXNID` ) REFERENCES ` TXNS` ( ` TXN_ID` ) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
序号 表名 hive3 hive2 备注 1 DBS 7 6 存放数据库信息 2 GLOBAL_PRIVS 9 8 √ 3 SERDES 7 3 hive序列化相关的东西 4 TBL_PRIVS 10 9 权限表,重点看一下 5 TBLS 13 12 6 TXNS 10 9
ALTER TABLE ` DBS` ADD CTLG_NAME VARCHAR ( 255 ) DEFAULT 'hive' ;
ALTER TABLE ` GLOBAL_PRIVS` ADD AUTHORIZER VARCHAR ( 255 ) DEFAULT 'SQL' ;
ALTER TABLE ` SERDES` ADD DESCRIPTION varchar ( 4000 ) ;
ALTER TABLE ` SERDES` ADD SERIALIZER_CLASS varchar ( 4000 ) ;
ALTER TABLE ` SERDES` ADD DESERIALIZER_CLASS varchar ( 4000 ) ;
ALTER TABLE ` SERDES` ADD SERDE_TYPE int ( 11 ) DEFAULT 0 ;
ALTER TABLE ` TBL_PRIVS` ADD AUTHORIZER varchar ( 128 ) DEFAULT 'SQL' ;
ALTER TABLE ` TBLS` ADD OWNER_TYPE varchar ( 10 ) DEFAULT 'USER' ;
ALTER TABLE ` TXNS` ADD TXN_TYPE int ( 11 ) ;
3.3需要更改数据的表
UPDATE ` hive2` . ` DBS` SET ` DESC` = NULL , ` DB_LOCATION_URI` = 'hdfs://ip-10-5-1-85.ec2.internal:8020/user/hive/warehouse/dyh2.db' , ` NAME` = 'dyh2' , ` OWNER_NAME` = 'hadoop' , ` OWNER_TYPE` = 'USER' , ` CTLG_NAME` = 'hive' WHERE ` DB_ID` = 2 ;
4.hive3上集群需要的操作
4.1更改元数据对应的库名
修改/etc/hive/conf/hive-site.xml文件
< value> jdbc:mysql://ip:3306/hive_metastore?createDatabaseIfNotExist=true</ value>
4.2重启HiveMetaStore对应服务
sudo jps | grep Jar
sudo kill - 9 pid
二、hive3新特性
执行引擎变更为**TEZ**,不使用MR 成熟的ACID大数据事务支持 LLAP用于妙极,毫秒级查询访问 基于Apache Ranger的统一权限管理 默认开启HDFS ACLs Beeline代替Hive Cli,降低启动开销 不再支持内嵌Metastore Spark Catalog不与Hive Catalog集成,但可以互相访问 批处理使用TEZ,实时查询使用LLAP Hive3支持联邦查询