Hive 系列(二)—— Linux 环境下 Hive 的安装部署

本文详细介绍了Hive的安装步骤,包括下载、解压、环境变量配置、元数据配置及初始化,以及HiveServer2的启动与Beeline的使用方法,适合初学者快速上手。

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

一、安装Hive

1.1 下载并解压

下载所需版本的 Hive,这里我下载版本为 cdh5.15.2。下载地址:http://archive.cloudera.com/cdh5/cdh/5/

# 下载后进行解压
 tar -zxvf hive-1.1.0-cdh5.15.2.tar.gz

1.2 配置环境变量

# vim /etc/profile

添加环境变量:

export HIVE_HOME=/usr/app/hive-1.1.0-cdh5.15.2
export PATH=$HIVE_HOME/bin:$PATH

使得配置的环境变量立即生效:

# source /etc/profile

1.3 修改配置

1. hive-env.sh

进入安装目录下的 conf/ 目录,拷贝 Hive 的环境配置模板 flume-env.sh.template

cp hive-env.sh.template hive-env.sh

修改 hive-env.sh,指定 Hadoop 的安装路径:

HADOOP_HOME=/usr/app/hadoop-2.6.0-cdh5.15.2

2. hive-site.xml

新建 hive-site.xml 文件,内容如下,主要是配置存放元数据的 MySQL 的地址、驱动、用户名和密码等信息:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://hadoop001:3306/hadoop_hive?createDatabaseIfNotExist=true</value>
  </property>
  
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
  </property>
  
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
  </property>
  
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
  </property>

</configuration>

1.4 拷贝数据库驱动

将 MySQL 驱动包拷贝到 Hive 安装目录的 lib 目录下, MySQL 驱动的下载地址为:https://dev.mysql.com/downloads/connector/j/ , 在本仓库的resources 目录下我也上传了一份,有需要的可以自行下载。

hive-mysql.png

1.5 初始化元数据库

  • 当使用的 hive 是 1.x 版本时,可以不进行初始化操作,Hive 会在第一次启动的时候会自动进行初始化,但不会生成所有的元数据信息表,只会初始化必要的一部分,在之后的使用中用到其余表时会自动创建;

  • 当使用的 hive 是 2.x 版本时,必须手动初始化元数据库。初始化命令:

    # schematool 命令在安装目录的 bin 目录下,由于上面已经配置过环境变量,在任意位置执行即可
    schematool -dbType mysql -initSchema

这里我使用的是 CDH 的 hive-1.1.0-cdh5.15.2.tar.gz,对应 Hive 1.1.0 版本,可以跳过这一步。

1.6 启动

由于已经将 Hive 的 bin 目录配置到环境变量,直接使用以下命令启动,成功进入交互式命令行后执行 show databases 命令,无异常则代表搭建成功。

# hive
hive-install-2.png

在 Mysql 中也能看到 Hive 创建的库和存放元数据信息的表

hive-mysql-tables.png

二、HiveServer2/beeline

Hive 内置了 HiveServer 和 HiveServer2 服务,两者都允许客户端使用多种编程语言进行连接,但是 HiveServer 不能处理多个客户端的并发请求,因此产生了 HiveServer2。HiveServer2(HS2)允许远程客户端可以使用各种编程语言向 Hive 提交请求并检索结果,支持多客户端并发访问和身份验证。HS2 是由多个服务组成的单个进程,其包括基于 Thrift 的 Hive 服务(TCP 或 HTTP)和用于 Web UI 的 Jetty Web 服务。

HiveServer2 拥有自己的 CLI 工具——Beeline。Beeline 是一个基于 SQLLine 的 JDBC 客户端。由于目前 HiveServer2 是 Hive 开发维护的重点,所以官方更加推荐使用 Beeline 而不是 Hive CLI。以下主要讲解 Beeline 的配置方式。

2.1 修改Hadoop配置

修改 hadoop 集群的 core-site.xml 配置文件,增加如下配置,指定 hadoop 的 root 用户可以代理本机上所有的用户。

<property>
 <name>hadoop.proxyuser.root.hosts</name>
 <value>*</value>
</property>
<property>
 <name>hadoop.proxyuser.root.groups</name>
 <value>*</value>
</property>

之所以要配置这一步,是因为 hadoop 2.0 以后引入了安全伪装机制,使得 hadoop 不允许上层系统(如 hive)直接将实际用户传递到 hadoop 层,而应该将实际用户传递给一个超级代理,由该代理在 hadoop 上执行操作,以避免任意客户端随意操作 hadoop。如果不配置这一步,在之后的连接中可能会抛出 AuthorizationException 异常。

关于 Hadoop 的用户代理机制,可以参考:hadoop 的用户代理机制Superusers Acting On Behalf Of Other Users

2.2 启动hiveserver2

由于上面已经配置过环境变量,这里直接启动即可:

# nohup hiveserver2 &

2.3 使用beeline

可以使用以下命令进入 beeline 交互式命令行,出现 Connected 则代表连接成功。

# beeline -u jdbc:hive2://hadoop001:10000 -n root
hive-beeline-cli.png

更多大数据系列文章可以参见 GitHub 开源项目大数据入门指南

转载于:https://www.cnblogs.com/heibaiying/p/11386760.html

### 如何在 Linux安装 Hive 数据库 #### 准备工作 确保 MySQL 已经成功安装并启动服务。可以通过以下命令来启动 MySQL 服务: ```bash service mysql start ``` 登录 MySQL 并设置好用于 Hive数据库环境。 #### 创建 Hive 数据库 进入 MySQL 命令行界面,通过输入用户名和密码完成身份验证后,创建名为 `hive` 的新数据库[^1]。 ```sql create database hive; ``` 此操作会建立一个新的数据库实例专门供 Hive 使用,该实例名需与后续配置文件中的设定相匹配。 #### 设置 MySQL 用户权限 为了使 Hive 能够访问 MySQL 中的数据,需要授予特定用户足够的权限。这里假设创建了一个叫作 `hive` 的用户,并赋予其所有必要的权限以便于管理整个系统的表结构和其他资源[^4]。 ```sql grant all on *.* to hive@localhost identified by 'hive'; flush privileges; exit; ``` 上述指令不仅设置了用户的全局读写权限,还立即应用了这些更改以确保即时生效。 #### 下载并解压 MySQL 连接器 JAR 文件 下载适用于 Java 应用程序连接至 MySQL 数据库的 JDBC 驱动程序——即 MySQL Connector/J,并将其放置到 Hive 的类路径之下。这一步骤对于实现者之间的通信至关重要[^3]。 ```bash cd Downloads sudo tar -zxvf mysql-connector-java-5.1.40.tar.gz -C /usr/local cp /usr/local/mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/hive/lib/ ``` 这段脚本首先切换到了下载目录,接着解压缩归档文件并将提取出来的 jar 文件复制到了目标位置 `/usr/local/hive/lib/` 内部。 #### 初始化 Hive 元数据 最后,在完成了前面所有的准备工作之后,可以利用 Hive 自带的一个叫做 schematool 的工具来进行元数据初始化过程。这项任务会在 MySQL 数据库里构建起一套完整的模式定义以及默认值记录等信息,从而为将来运行查询做好准备[^2]。 ```bash cd /usr/local/hive/bin ./schematool -initSchema -dbType mysql ``` 以上就是关于如何在 Linux 系统之上部署 Apache Hive 所涉及的主要步骤概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值