
Apache Hive™ 是一款主流开源数据仓库框架,支持查询存储在分布式系统(如 Hadoop HDFS、Apache Ozone、Amazon S3、Azure Data Lake Storage 等)中的大规模数据集。它提供类 SQL 接口(HiveQL),可用于查询、分析和管理结构化及半结构化数据。
通过 Hive,用户能定义表和数据模式,用熟悉的类 SQL 语法编写查询,执行过滤、聚合、关联等数据分析任务。Hive 兼容多种常见数据格式,包括 CSV、JSON、Avro、ORC、Parquet。
1. 设置环境变量
先定义 Hive 版本(根据实际使用的镜像标签调整):
bashexport HIVE_VERSION=<Hive 版本号>
示例:
bashexport HIVE_VERSION=4.1.0
2. 启动带嵌入式元存储的 HiveServer2
适合轻量快速部署,使用 Derby 作为元数据库(无需额外配置数据库):
bashdocker run -d -p 10000:10000 -p 10002:10002 \ --env SERVICE_NAME=hiveserver2 \ --name hive4 \ apache/hive:${HIVE_VERSION}
3. 启动独立元存储
如需单独部署元存储(仍用 Derby 轻量模式):
bashdocker run -d -p 9083:9083 \ --env SERVICE_NAME=metastore \ --name metastore-standalone \ apache/hive:${HIVE_VERSION}
注意:此模式下,容器停止后数据会丢失。若需持久化表结构和数据,需搭配外部 Postgres 数据库及卷(volume)存储。
1. 搭配独立元存储使用 HiveServer2
若已有独立元存储,启动 HiveServer2 时指定元存储地址:
bashdocker run -d -p 10000:10000 -p 10002:10002 \ --env SERVICE_NAME=hiveserver2 \ --env SERVICE_OPTS="-Dhive.metastore.uris=thrift://metastore:9083" \ # 指定外部元存储地址 --env IS_RESUME="true" \ --name hiveserver2-standalone \ apache/hive:${HIVE_VERSION}
2. 用外部数据库(Postgres/Oracle/MySQL/MsSQL)启动独立元存储
生产环境建议用外部数据库存储元数据,以确保持久化。以下为 Postgres 示例:
bashdocker run -d -p 9083:9083 \ --env SERVICE_NAME=metastore \ --env DB_DRIVER=postgres \ --env SERVICE_OPTS="\ -Djavax.jdo.option.ConnectionDriverName=org.postgresql.Driver \ -Djavax.jdo.option.ConnectionURL=jdbc:postgresql://postgres:5432/metastore_db \ # 数据库连接地址 -Djavax.jdo.option.ConnectionUserName=hive \ # 数据库用户名 -Djavax.jdo.option.ConnectionPassword=password" \ # 数据库密码 --mount source=warehouse,target=/opt/hive/data/warehouse \ # 挂载卷持久化数据 --name metastore-standalone \ apache/hive:${HIVE_VERSION}
数据持久化:启动 HiveServer2 时,也需挂载卷保存数据,命令示例:
bashdocker run -d -p 10000:10000 -p 10002:10002 \ --env SERVICE_NAME=hiveserver2 \ --env SERVICE_OPTS="-Dhive.metastore.uris=thrift://metastore:9083" \ --mount source=warehouse,target=/opt/hive/data/warehouse \ --env IS_RESUME="true" \ --name hiveserver2 \ apache/hive:${HIVE_VERSION}
3. 自定义配置
如需使用自定义配置文件(如 core-site.xml、hive-site.xml 等),可通过 HIVE_CUSTOM_CONF_DIR 环境变量指定配置目录。例如,将配置文件放在宿主机 /opt/hive/conf 目录,启动命令:
bashdocker run -d -p 9083:9083 \ --env SERVICE_NAME=metastore \ --env DB_DRIVER=postgres \ -v /opt/hive/conf:/hive_custom_conf \ # 挂载宿主机配置目录到容器内 --env HIVE_CUSTOM_CONF_DIR=/hive_custom_conf \ # 指定自定义配置目录 --name metastore \ apache/hive:${HIVE_VERSION}
1. 访问 Beeline
Beeline 是 Hive 的命令行客户端,可通过容器内执行或本地安装后连接:
hive4):
bashdocker exec -it hive4 beeline -u 'jdbc:hive2://localhost:10000/'
bashbeeline -u 'jdbc:hive2://localhost:10000/'
2. 访问 HiveServer2 Web UI
启动后,通过浏览器访问:`[***]
3. 示例查询(Beeline 中执行)
sql-- 查看表 show tables; -- 创建分区表 create table hive_example(a string, b int) partitioned by(c int); -- 添加分区 alter table hive_example add partition(c=1); -- 插入数据 insert into hive_example partition(c=1) values('a', 1), ('a', 2), ('b', 3); -- 数据分析 select count(distinct a) from hive_example; -- 去重计数 select sum(b) from hive_example; -- 求和
详细操作可参考官方文档:[***]
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务