网站做行业认证好处,建设网络道德教育网站的有效措施有,黄山seo公司,微信怎么开店介绍
在伪分布式模式下#xff0c;在Docker容器内运行Apache Hive#xff0c;可以提供以下功能#xff1a;快速启动/调试/为Hive准备测试环境。
快速开始
1. 拉取镜像
从DockerHub#xff1a;https://hub.docker.com/r/apache/hive/tags中拉取镜像。目前发布了3个镜像在Docker容器内运行Apache Hive可以提供以下功能快速启动/调试/为Hive准备测试环境。
快速开始
1. 拉取镜像
从DockerHubhttps://hub.docker.com/r/apache/hive/tags中拉取镜像。目前发布了3个镜像
4.0.0-alpha-24.0.0-alpha-13.1.3
docker pull apache/hive:4.0.0-alpha-22. 配置变量
export HIVE_VERSION4.0.0-alpha-23. 启动服务
这是轻量级的为了快速启动它使用Derby存储元数据。
docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAMEhiveserver2 --name hive4 apache/hive:${HIVE_VERSION}4. 使用beeline连接
docker exec -it hiveserver2 beeline -u jdbc:hive2://hiveserver2:10000/详细配置
构建镜像
Apache Hive依靠Hadoop、Tez和其他一些工具来方便读取、写入和管理大型数据集。 /packaging/src/docker/build.sh提供了针对指定版本的依赖项构建映像以及从源代码构建映像的方法。
从源码构建
mvn clean package -pl packaging -DskipTests -Pdocker构建指定版本
添加参数如下
-hadoop hadoop version
-tez tez version
-hive hive version 如果没有提供版本它会从当前pom. xmlproject.version、hadoop.version和tez.version中分别读取Hive、Hadoop和Tez的版本。例如下面的命令使用Hive4.0.0-alpha-2、Hadoop hadoop.version和Tez tez.version构建镜像。
./build.sh -hive 4.0.0-alpha-2如果命令没有指定Hive版本它将使用本地的apache-hive-${project. version}-bin.tar.gz如果不存在将触发构建连同Hadoop3.1.0和Tez0.10.1构建镜像。
./build.sh -hadoop 3.1.0 -tez 0.10.1构建成功后我们可以默认得到一个名为apache/hive的Docker镜像镜像由提供的Hive版本标记。
运行hive服务
在继续之前我们应该先定义环境变量HIVE_VERSION。例如如果指定-hive4.0.0-alpha-2来构建映像。
export HIVE_VERSION4.0.0-alpha-2或者假设您依赖于pom. xml中的当前project.version。
export HIVE_VERSION$(mvn -f pom.xml -q help:evaluate -Dexpressionproject.version -DforceStdout)Metastore
为了快速开始请使用Derby启动Metastore。
docker run -d -p 9083:9083 --env SERVICE_NAMEmetastore --name metastore-standalone apache/hive:${HIVE_VERSION}当服务关闭时一切都会丢失。为了保存Hive表的架构和数据请使用外部Postgres和Volume启动容器以保留它们。
docker run -d -p 9083:9083 --env SERVICE_NAMEmetastore \--env DB_DRIVERpostgres \--env SERVICE_OPTS-Djavax.jdo.option.ConnectionDriverNameorg.postgresql.Driver -Djavax.jdo.option.ConnectionURLjdbc:postgresql://postgres:5432/metastore_db -Djavax.jdo.option.ConnectionUserNamehive -Djavax.jdo.option.ConnectionPasswordpassword \--mount sourcewarehouse,target/opt/hive/data/warehouse \--name metastore-standalone apache/hive:${HIVE_VERSION}如果要为服务使用自己的hdfs-site. xml或yarn-site.xml可以为命令提供环境变量HIVE_CUSTOM_CONF_DIR例如将自定义配置文件放在 /opt/hive/conf目录下然后运行。
docker run -d -p 9083:9083 --env SERVICE_NAMEmetastore \--env DB_DRIVERpostgres -v /opt/hive/conf:/hive_custom_conf --env HIVE_CUSTOM_CONF_DIR/hive_custom_conf \--name metastore apache/hive:${HIVE_VERSION}HiveServer2
使用嵌入式Metastore启动HiveServer2 docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAMEhiveserver2 --name hiveserver2-standalone apache/hive:${HIVE_VERSION}或指定远程元存储 docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAMEhiveserver2 \--env SERVICE_OPTS-Dhive.metastore.uristhrift://metastore:9083 \--env IS_RESUMEtrue \--name hiveserver2-standalone apache/hive:${HIVE_VERSION}要在容器重新启动之间保存数据您可以使用Volume启动HiveServer2
docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAMEhiveserver2 \--env SERVICE_OPTS-Dhive.metastore.uristhrift://metastore:9083 \--mount sourcewarehouse,target/opt/hive/data/warehouse \--env IS_RESUMEtrue \--name hiveserver2 apache/hive:${HIVE_VERSION}同时启用Metastore和HiveServer2
要快速了解HiveServer2和Metastore您可以运行
cd packaging/src/docker
docker compose up -d卷用于将Hive生成的数据保存在Postgres和HiveServer2容器中 hive_db 卷将Hive表的元数据保存在Postgres容器中。 该卷将表的文件存储在HiveServer2容器中。
hive_db 卷将Hive表的元数据保存在Postgres容器中。 warehouse 该卷将表的文件存储在HiveServer2容器中。
更多 HiveServer2 web 在浏览器上访问http://localhost:10002/ Beeline: docker exec -it hiveserver2 beeline -u jdbc:hive2://hiveserver2:10000/
beeline -u jdbc:hive2://localhost:10000/运行一些查询 show tables;
create table hive_example(a string, b int) partitioned by(c int);
alter table hive_example add partition(c1);
insert into hive_example partition(c1) values(a, 1), (a, 2),(b,3);
select count(distinct a) from hive_example;
select sum(b) from hive_example;