如何在 Ubuntu (下载和设置指南)

在安装 Apache Hive 之前,我们需要一个专用的 Hadoop的 安装、启动并运行所有 Hadoop 守护进程。
有关 Hadoop 的安装,请查看此内容。 链接.
所有 Hadoop 守护进程运行正常后,即可开始安装 Hive 部分。以下分四个阶段进行:
Apache Hive 安装过程
- 前提条件和版本兼容性
- 安装 Hive
- 元存储架构初始化
- Hive shell 命令
安装 Apache Hive 的先决条件 Ubuntu
Hive 不是一个独立的数据库。它是一个查询层,将 HiveQL 转换为在现有集群上运行的作业,因此几乎所有安装失败的情况都与此有关。 trac问题可能出在缺少必要的先决条件上,而不是 Hive 本身。下载任何内容之前,请确认以下事项:
- 受支持的 JDK。 Hive 4.1.x 运行在 JDK 17 上,而 Hive 4.2.x 将最低版本要求提高到 JDK 21。请使用以下命令检查版本: java -version 并确保已导出 JAVA_HOME。
- 正在运行的Hadoop集群。 NameNode 和 DataNode 都必须处于活动状态。运行 JPS 并确认 NameNode、DataNode、ResourceManager 和 NodeManager 都出现在列表中。
- 对HDFS的写入权限。 启动 Hive 的帐户需要拥有在以下目录下创建目录的权限 高密度文件系统.
- 版本匹配。 Hive 4.2.0 是基于 Hadoop 3.4.1 和 Tez 0.10.5 构建的。Hive 3.x 系列已于 2024 年 10 月停止维护,因此全新安装应以 4.x 系列为目标。
- 免费资源。 单节点学习设置大约需要 4 GB 内存和 20 GB 可用磁盘空间。
完成这些步骤后,下面的下载和解压过程将顺利进行。
如何在 Ubuntu
以下是安装 Hive 的分步过程 Ubuntu:
步骤 1)下载并安装 Hive Ubuntu
要下载 Hive 稳定版安装程序,请参阅 Apache (阿帕奇) URL 如下所述。
https://www.apache.org/dyn/closer.cgi/hive/ — 前往 URL 然后选择 Apache 镜像下载链接。 Apache Hive 下载页面 列出哪些版本与哪些 Hadoop 版本匹配。
镜像页面打开后会显示可用的 Hive 版本目录列表,如下所示。
选择最新版本的 Hive 安装包。(我目前的版本是 Hive 3.1.2。)发布文件夹中并排列出了二进制文件和源代码归档文件。
点击 bin 文件,下载就会开始。
步骤 2)例如tract tar 文件
转到下载的 tar 文件所在位置,然后执行 extrac使用以下命令解压 tar 文件以安装 Hive Ubuntu 在你的系统上。
tar -xvf apache-hive-3.1.2-bin.tar.gz
终端会将每个文件解压到新的 Hive 目录中并显示出来。
步骤 3)在 Apache Hive 中放置不同的配置属性
在此步骤中,我们将做两件事:
- 在 bashrc 文件中放置 Hive 主目录路径
- 在 hive-config.sh 中设置 Hadoop 主目录路径。
1) 在 ~/.bashrc 文件中指定 Hive 路径
使用以下命令打开文件进行编辑。
- 打开如上图所示的 bashrc 文件
- 在 bashrc 文件中指定 Hive 主目录路径,即 HIVE_HOME 路径,并按如下所示导出它。
Code 要添加到 bashrc 文件中:
export HIVE_HOME="/home/guru99hive/apache-hive-1.2.0-bin" export PATH=$PATH:$HIVE_HOME/bin
重新加载文件 源〜/ .bashrc 因此,新路径将在当前终端会话中生效。
2) 在 hive-config.sh 中导出 Hadoop 路径
为了与Hadoop生态系统通信,我们在Hive配置文件中定义Hadoop主目录路径。打开hive-config.sh文件,如下所示。
在 hive-config.sh 文件中指定 HADOOP_HOME 路径,如下所示。
步骤4)在Hadoop中创建Hive目录
为了与Hadoop通信,我们需要在Hadoop中创建目录,如下所示。Hive将托管表数据写入仓库目录,并将暂存输出写入临时目录。
授予 root 用户在 Hadoop 中创建 Hive 文件夹的权限。如果没有抛出任何错误消息,则表示 Hadoop 已成功授予 Hive 文件夹权限。
步骤 5)进入 Hive shell
输入以下内容即可进入蜂巢外壳: /hive 复制代码 命令如下所示。
如何初始化 Hive Metastore Schema
Hive 将所有表名、列名和数据类型保存在一个名为 metastore 的关系型存储中。全新安装时,该存储为空;从 Hive 3.x 版本开始,shell 必须创建模式表才能启动。Hive bin 目录中自带的 schematool 工具用于创建这些模式表。
对于单用户学习环境,捆绑的 Derby 数据库就足够了:
$HIVE_HOME/bin/schematool -dbType derby -initSchema
该命令会打印它创建的模式版本,并以……结尾。 schemaTool 已完成Derby 会将文件写入运行命令的目录,因此之后务必从同一目录启动 Hive。
Derby 一次只能接受一个活动会话,因此不适合共享集群。Point Hive 位于 MySQL 而是将连接属性添加到 hive-site.xml 文件中,然后使用不同的数据库类型重新运行该工具:
$HIVE_HOME/bin/schematool -dbType mysql -initSchema
完整的房产清单和司机安排都在操作指南中有详细介绍。 使用以下命令配置 Hive 元数据存储 MySQL还有两面旗帜值得铭记:
- -信息 报告当前元数据存储中记录的模式版本,而不做任何更改。
- -升级架构 将现有元数据存储迁移到新安装的 Hive 版本的 schema 版本。
模式设置完毕后,shell 就可以接受它的第一个 HiveQL 语句了。
Hive shell 命令
接下来,我们将使用 Hive shell 命令“create”创建一个示例表,并指定列名。
以下是使用 Hive 创建数据库的示例代码。下面的屏幕截图依次显示了 CREATE 语句和 DESCIENCE 输出。
从上面的截图中我们可以看到以下内容:
1)在 Hive 中创建带有列名的示例表
- 此处的表名称为“product”,具有三个列名称 产品、产品名称和价格
- 这三列的名称分别用它们各自的数据类型表示。
- 所有字段均以逗号“,”结尾。
2) 显示 Hive 表信息
- 使用“describe”命令,我们可以查看Hive中存在的表信息。
- 这里显示的是表架构中列的名称及其对应的数据类型。
- 最后,它会显示执行此命令所花费的时间以及提取的行数。
创建数据库的示例代码 蜂房 (供自行检查)
1) 创建表 product(product int, pname string, price float)
Row format delimited Fields terminated by ',';
2)描述产品;
一旦表响应描述请求,shell、元数据存储和HDFS就全部连接在一起了。从这里开始,同一个会话接受更广泛的请求。 创建、修改和删除表 声明和 按以下方式排序、分组和聚类 查询。
常见的蜂巢安装错误 Ubuntu 以及如何修复它们
大多数首次运行失败都源于 Hive 的外部环境,而非 Hive 本身。下表列出了出现频率最高的错误信息及其原因以及清除这些错误信息的命令。
| 屏幕上的信息 | 可能的原因 | 固定 |
|---|---|---|
| hive:命令未找到 | HIVE_HOME/bin 不在 PATH 环境变量中。 | 重新检查 bashrc 中的导出行,然后运行 源〜/ .bashrc |
| 元数据存储中未找到版本信息 | 元数据存储模式从未初始化。 | 针对选定的数据库类型运行 schematool 并添加 -initSchema 参数。 |
| 调用 localhost:9000 时出现连接异常,失败 | HDFS 未运行 | 启动 Hadoop 守护进程并确认 NameNode 和 DataNode 出现在列表中 JPS |
| 名称节点处于安全模式 | NameNode 仍处于启动安全模式。 | 退出安全模式 hdfs dfsadmin -safemode leave |
| 权限被拒绝:无法对 /user/hive/warehouse 进行写入访问 | 仓库目录缺少组写入权限 | 重新申请 hdfs dfs -chmod g+w 在仓库和临时目录中 |
| Preconditions.checkArgument 出现 NoSuchMethodError | Hive 和 Hadoop 提供的 Guava jar 版本不同。 | 删除 Hive lib 目录中旧的 Guava jar 文件,并将 Hadoop jar 文件复制到其原位置。 |
快速区分 Hive 问题和 Hadoop 问题的方法是运行以下命令 JPS 首先,如果守护进程缺失,则集群出现故障;如果守护进程存在但 shell 仍然失败,则故障出在 Hive 配置或元数据存储模式中。一旦 shell 稳定下来, HiveQL 操作符和内置函数 参考文献是自然而然的下一步。







