常用操作
2025年12月9日小于 1 分钟
初始化
表结构
mysql
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'hive'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@'%';
FLUSH PRIVILEGES;hdfs 目录
hdfs dfs -mkdir -p /user/hivebin/hive --service schemaTool -dbType mysql -initSchemaHCatalog
HCatalog 提供了一个统一的元数据服务,允许不同的工具如 Pig、MapReduce 等通过 HCatalog 直接访问存储在 HDFS 上的底层文件
- 刷新元数据
hive -e "msck repair table demo.t_1;"
变量查询
select "${hiveconf:hive.execution.engine}";
分区有数据查不到
MSCK REPAIR TABLE t_cs;
快速启动
- 环境变量
HADOOP_HOME
hive-site.xml
wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-8.0.16-1.el7.noarch.rpm
rpm -ivh mysql-connector-java-8.0.16-1.el7.noarch.rpm
# 初始化元数据
bin/schematool -dbType derby -initSchema
bin/schematool -dbType mysql -initSchema
bin/schematool -dbType postgres -initSchema
# 启动服务
nohup bin/hive --service metastore &
nohup bin/hive --service hiveserver2 &- starting hiveserver2 不报错但是10000端口没有
Hive 默认启动时在 HIVE_HOME/tmp 下创建临时资源目录失败
查看$HIVE_HOME 是否有创建权限
- Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to impersonate anonymous (state=08S01,code=0)
$HADOOP_HOME/etc/hadoop/core-site.xml
添加(如果 hive 服务是用用户 hadoop 启动的):
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>