华为云耀云服务器L实例--Hive的部署

发布时间 2023-12-29 18:14:07作者: 技术僧
 华为云耀云服务器L实例--Hive的部署

 

 

产品官网:https://www.huaweicloud.com/product/hecs-light.html

 

 

今天我们采用可靠更安全、智能不卡顿、价优随心用、上手更简单、管理特省心华为云耀云服务器L实例为例,继续Hive的部署

 

Hive 是建立在 Hadoop 上的一个数据仓库和查询系统。它提供了类似 SQL 的查询语言(称为 HiveQL)来查询和分析存储在 Hadoop 分布式文件系统(HDFS)中的大规模数据。Hive 的设计目标是使非技术用户能够通过类似于 SQL 的语言来查询和分析大规模数据集,而无需深入了解复杂的编程模型。

 

以下是 Hive 的一些主要特点和概念:

 

1. HiveQL语言: Hive 提供了 Hive 查询语言(HiveQL),这是一种类似于 SQL 的语言,允许用户执行查询、过滤和聚合等操作。HiveQL查询会被转化为一系列的 MapReduce 作业,从而在底层利用 Hadoop 进行分布式计算。

 

2. 元数据存储: Hive 使用元数据存储来存储表模式和统计信息。默认情况下,它使用嵌入式的 Derby 数据库,但也可以配置为使用其他数据库,如 MySQL 或 PostgreSQL。

 

3. 表和分区: Hive中的数据组织为表,表可以分为分区以提高查询性能。分区允许根据表中的某些列将数据划分为更小的部分,以便更有效地执行查询。

 

4. UDF(用户定义函数): Hive 支持用户定义的函数,这允许用户编写自定义的处理逻辑,并将其嵌入到 HiveQL 查询中。

 

5. 可扩展性: Hive 可以与 Hadoop 生态系统中的其他工具集成,包括 HBase、Spark、Tez 等,以便更灵活地处理不同类型的数据和查询。

 

6. 批处理: Hive 通常用于大规模批处理,适用于处理大量的静态数据。对于需要实时性能的场景,可能需要考虑其他工具,如 Apache Spark。

 

Hive 的使用场景主要涉及数据仓库和数据分析,特别是当数据规模很大,而且对实时性能没有过高要求时。通过使用 HiveQL,用户可以利用 SQL 风格的查询语言来分析和挖掘庞大的分布式数据集。

 

以下是在华为云耀云服务器L实例配置Hive的步骤。

 

(1) 配置 Hadoop

Hive 的运行依赖于 Hadoop ( HDFS 、 MapReduce 、 YARN 都依赖)

同时涉及到 HDFS 文件系统的访问,所以需要配置 Hadoop 的代理用户

即设置 hadoop 用户允许代理(模拟)其它用户

配置如下内容在 Hadoop 的 core-site.xml 中,重启 HDFS 集群

 

 

(2)  下载解压 Hive

• 切换到 hadoop 用户

su - hadoop

• 下载 Hive 安装包:

http://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz

• 解压到 node1 服务器的: /export/server/ 内

tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /export/server/

• 设置软连接

ln -s /export/server/apache-hive-3.1.3-bin /export/server/hive

 

(3) 提供 MySQL Driver 包

• 下载 MySQL 驱动包:

https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.34/mysql-connector-java-

5.1.34.jar

• 将下载好的驱动 jar 包,放入: Hive 安装文件夹的 lib 目录内

mv mysql-connector-java-5.1.34.jar /export/server/hive/lib/

 

(4) 配置 Hive

• 在 Hive 的 conf 目录内,新建 hive-site.xml 文件,填入以下内容

 

(5)初始化元数据库

至此, Hive 的配置已经完成,现在在启动 Hive 前,需要先初始化 Hive 所需的元数据库。

• 在 MySQL 中新建数据库: hive

CREATE DATABASE hive CHARSET UTF8;

• 执行元数据库初始化命令:

cd /export/server/hive

bin/schematool -initSchema -dbType mysql -verbos

(6)启动 Hive (使用 Hadoop 用户)

• 确保 Hive 文件夹所属为 hadoop 用户

• 创建一个 hive 的日志文件夹:

mkdir /export/server/hive/logs

• 启动元数据管理服务(必须启动,否则无法工作)

前台启动: bin/hive --service metastore

后台启动: nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &

• 启动客户端,二选一(当前先选择 Hive Shell 方式)

Hive Shell 方式(可以直接写 SQL ): bin/hive

Hive ThriftServer 方式(不可直接写 SQL ,需要外部客户端链接使用): bin/hive --service hiveserver2

 

至此,我们已经成功在华为云耀云服务器L实例部署并启动了单台服务器上的hive服务。