📅  最后修改于: 2023-12-03 15:22:10.659000             🧑  作者: Mango
Apache Hive 是一种基于 Hadoop 的数据仓库工具,它将结构化数据映射到 Hadoop 上,并提供了一种类 SQL 查询语言 (HiveQL)。Hive 提供了一个易于使用的接口,使得数据分析师和数据科学家可以使用 SQL 查询来访问 Hadoop 集群中的大规模数据集。
Derby 是一个基于 Java 的嵌入式数据库,它具有小巧、易于部署、易于使用的优点。在安装 Apache Hive 时,我们可以选择 Derby 数据库作为 Hive 的元数据存储。
Beeline 是 Hive 的客户端工具,它提供了一个命令行界面,允许用户使用 HiveQL 查询语言与 Hive 交互。
本文将介绍如何使用 Derby 数据库和 Beeline 安装 Apache Hive。
在开始安装之前,需要确保以下所需组件已经准备就绪:
访问 Apache Hive 官网,下载最新版本的二进制文件,并将其解压缩到本地目录。
$ tar xzf apache-hive-3.1.2-bin.tar.gz
Hive 可以使用多种不同的数据库作为元数据存储,包括 MySQL、PostgreSQL、Oracle 等等。在本文中,我们将使用 Derby 作为元数据存储。
首先需要创建 Derby 数据库,执行以下命令:
$ cd apache-hive-3.1.2-bin
$ bin/schematool -initSchema -dbType derby
这将创建一个名为 metastore_db
的 Derby 数据库,并初始化 Hive 的元数据表。
在使用 Hive 之前,需要进行一些配置。通过编辑 conf/hive-site.xml
文件可以进行配置。
以下是一份可能的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>APP</value>
<description>Username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mine</value>
<description>Password to use against metastore database</description>
</property>
</configuration>
这份配置文件将 Derby 作为元数据存储,指定 Derby 数据库的名称和位置,以及 Derby 用户名和密码。
Hive 元数据服务是一个独立的 Java 进程,它管理 Hive 的元数据存储和访问控制。
启动 Hive 元数据服务,执行以下命令:
$ bin/hive --service metastore
Hive 元数据服务将在后台运行,并监听默认端口 9083。
启动 Beeline 客户端,执行以下命令:
$ bin/beeline -u jdbc:hive2://localhost:9083
此命令会连接到正在运行的 Hive 元数据服务。在 Beeline 命令行界面中,可以使用常规的 SQL 查询语句。
-- 创建一个新表
CREATE TABLE my_table (
id INT,
name STRING
);
-- 插入一些数据
INSERT INTO my_table VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie');
-- 查询数据
SELECT * FROM my_table;
本文介绍了如何使用 Derby 数据库和 Beeline 客户端安装和使用 Apache Hive。通过 HiveQL 查询语言,可以轻松地访问和处理 Hadoop 集群上的大规模数据集。