hive 使用官方提供的docker启动测试

本文介绍如何使用Docker容器快速部署Cloudera环境,包括Docker镜像的导入、容器的启动与管理,以及如何通过特定端口映射访问Hive Server等服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://www.cloudera.com/documentation/enterprise/5-13-x/topics/quickstart_docker_container.html

 


 

tar -xzvf 


docker import cloudera-quickstart-vm-5.13.0-0-beta-docker.tar

docker images


导入ID为:b54f881ba562

后台运行
docker run --hostname=quickstart.cloudera --privileged=true -t -i -d -p 9083:9083 -p 7180:7180 -p 10000:10000 -p 8888:8888 b54f881ba562 /usr/bin/docker-quickstart --name hive_server

docker run --hostname=quickstart.cloudera --privileged=true -t -i -d [IMAGE] /usr/bin/docker-quickstart

docker ps

[CONTAINER HASH]
docker attach 219adb340a66

退出是

Ctrl+p

-p 9083:9083 -p 7180:7180  -p 10000:10000 -p 2181:2181 -p 8888:8888

[root@localhost ~]# docker start yufei_01
yufei_01
[root@localhost ~]# docker stop yufei_01
yufei_01
[root@localhost ~]# docker restart yufei_01
yufei_01
[root@localhost ~]# 

[root@localhost ~]# docker rm yufei_01
Error response from daemon: You cannot remove a running container 2d48fc5b7c17b01e6247cbc012013306faf1e54f24651d5e16d6db4e15f92d33. Stop the container before attempting removal or use -f
[root@localhost ~]# docker stop yufei_01
yufei_01
[root@localhost ~]# docker rm yufei_01
yufei_01
[root@localhost ~]# 

beeline -u jdbc:hive2://localhost:10000 -n hdfs

 

<think>嗯,用户想在Docker中配置和运行Hive。首先,我需要回忆一下Hive的依赖。Hive需要Hadoop和Metastore数据库,比如MySQL。根据引用中的信息,Apache HiveDocker镜像可能已经包含了部分配置,但用户可能需要自己组合环境。 步骤一,拉取镜像。用户需要Hive、Hadoop和MySQL的镜像。不过引用里提到从DockerHub拉取Apache Hive的镜像,比如4.0.0版本。不过用户可能还需要Hadoop环境,引用2中使用了hadoop:2.7.0的镜像,并挂载了相关目录。所以可能需要先准备Hadoop的镜像或者使用已有的。 步骤二,启动网络。Docker容器需要互联,所以创建自定义网络,比如docker network create hive-net,这样Hive、Hadoop和MySQL可以在同一网络中通信。 然后是启动MySQL容器,作为Metastore的数据库。引用3提到进入MySQL容器修改编码,可能需要初始化数据库,并创建用户和权限。比如设置用户名hive,密码hive,并创建metastore数据库。 接下来启动Hadoop容器。引用2中用了hadoop:2.7.0镜像,挂载了多个卷,包括Hadoop和JDK的路径。可能需要先配置好Hadoop的环境,或者使用现有的镜像。同时,需要指定网络和IP,或者让Docker自动分配。 然后是Hive容器。需要连接到Hadoop和MySQL。在启动Hive容器时,设置环境变量,如HIVE_METASTORE_URI指向Metastore服务,或者配置hive-site.xml文件。引用2中的例子是启动HiveServer2,并挂载了配置文件。可能需要将配置文件通过卷挂载到容器中,或者使用环境变量覆盖配置。 另外,Metastore服务可能需要单独启动。比如,在Hive 4.0.0中,可能需要先启动Metastore服务,再启动HiveServer2。用户需要执行schematool来初始化数据库,比如schematool -dbType mysql -initSchema。 测试部分,用户需要进入Hive容器执行命令行,或者通过Beeline连接。比如使用beeline -u jdbc:hive2://localhost:10000连接到HiveServer2。 可能遇到的问题包括网络配置错误,Metastore数据库连接失败,权限问题,或者Hadoop和Hive版本不兼容。引用2中提到启动容器时需要--privileged=true来获得权限,否则可能无法启动服务。挂载卷的路径是否正确,以及配置文件中的数据库连接信息是否正确也很重要。 总结步骤应该是:拉取镜像→创建网络→启动MySQL→初始化Metastore数据库→启动Hadoop→启动Hive Metastore→配置Hive启动HiveServer2→测试连接。需要确保各容器在同一个网络,环境变量正确,配置文件正确挂载,数据库初始化完成。</think>### 在 Docker 中配置和运行 Hive 的步骤 #### **1. 准备工作:拉取镜像与创建网络** - **拉取镜像**:根据需求选择 Hive、Hadoop 和 MySQL 镜像。例如: ```bash docker pull apache/hive:4.0.0 docker pull mysql:5.7 # Metastore 数据库 docker pull hadoop:2.7.0 # 依赖的 Hadoop 环境[^2] ``` - **创建 Docker 网络**(确保容器互联): ```bash docker network create hive-net ``` #### **2. 启动 MySQL 容器(Metastore 数据库)** - 运行 MySQL 容器并初始化数据库: ```bash docker run --name hive-mysql \ --network hive-net \ -e MYSQL_ROOT_PASSWORD=root \ -e MYSQL_DATABASE=metastore \ -e MYSQL_USER=hive \ -e MYSQL_PASSWORD=hive \ -d mysql:5.7 ``` - **修改编码**(避免中文乱码): ```sql -- 进入容器后执行 ALTER DATABASE metastore CHARACTER SET latin1; [^3] ``` #### **3. 启动 Hadoop 容器** - 挂载 Hadoop 配置和依赖文件: ```bash docker run --name hadoop \ --network hive-net \ -v /opt/hadoop-2.7.0:/opt/hadoop-2.7.0 \ # 本地 Hadoop 安装目录 --privileged=true \ # 解决权限问题 -d hadoop:2.7.0 ``` #### **4. 配置 Hive 容器** - **启动 Hive 容器**(连接 MySQL 和 Hadoop): ```bash docker run --name hive-server \ --network hive-net \ -p 10000:10000 \ # HiveServer2 端口 -e HIVE_METASTORE_URI=thrift://hive-metastore:9083 \ -v /opt/apache-hive-4.0.0-bin:/opt/hive \ # 挂载 Hive 配置 --link hive-mysql \ --link hadoop \ -d apache/hive:4.0.0 ``` - **初始化 Metastore 数据库**: ```bash docker exec -it hive-server schematool -dbType mysql -initSchema ``` #### **5. 验证 Hive 运行** - **通过 Beeline 连接**: ```bash docker exec -it hive-server beeline -u jdbc:hive2://localhost:10000 ``` - **执行 HQL 语句**(示例): ```sql CREATE TABLE test (id INT); SHOW TABLES; ``` --- ### **常见问题与优化** 1. **网络配置问题** - 确保所有容器在同一 Docker 网络中(`hive-net`),避免连接失败。 - 使用 `--link` 或 DNS 名称(如 `hive-mysql`)替代 IP 地址。 2. **Metastore 初始化失败** - 检查 MySQL 权限和编码设置[^3]。 - 确认 `schematool` 的 `dbType` 参数与数据库类型一致。 3. **性能优化** - 挂载本地存储卷(如 `-v /data:/opt/hive/warehouse`)提升 I/O 性能。 - 调整 Hadoop 和 Hive 的内存参数(如 `HADOOP_HEAPSIZE`)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值