以下是一个Hive安装与使用的详细Demo,涵盖安装步骤、基础配置以及简单使用示例:

### 一、安装准备

1. **环境要求**:

* 已安装Java运行环境(JDK 1.8或更高版本)。
* 已搭建并配置好Hadoop集群(Hadoop 3.x版本推荐)。
* 在Hadoop集群的某个节点上安装MySQL服务(用于存储Hive元数据)。

2. **下载Hive安装包**:

* 从Apache官方网站或镜像站点下载Hive安装包,例如`apache-hive-3.1.2-bin.tar.gz`。

### 二、安装步骤

1. **解压安装包**:

* 将下载的Hive安装包解压到指定目录,例如`/opt/module/`。
* 解压命令:`tar -zxvf apache-hive-3.1.2-bin.tar.gz`。
* 重命名解压后的目录为`hive`:`mv apache-hive-3.1.2-bin hive`。

2. **配置环境变量**:

* 编辑`/etc/profile`文件,添加Hive的环境变量配置。
* 示例配置:

```bash
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin
```

* 使环境变量生效:`source /etc/profile`。

3. **配置Hive核心文件**:

* 进入Hive的配置目录:`cd /opt/module/hive/conf`。
* 编辑`hive-site.xml`文件(若不存在则新建),添加MySQL连接配置。
* 示例配置:

```xml
<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop1:3306/hivedb?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value> <!-- 修改为你的MySQL账号 -->
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value> <!-- 修改为你的MySQL密码 -->
    </property>
    <!-- 其他配置项(根据需要添加) -->
</configuration>
```

4. **下载MySQL驱动包**:

* 从MySQL官方网站或Maven仓库下载MySQL JDBC驱动包,例如`mysql-connector-java-8.0.17.jar`。
* 将驱动包复制到Hive的`lib`目录下:`cp mysql-connector-java-8.0.17.jar /opt/module/hive/lib/`。

5. **在MySQL中创建Hive元数据存储库**:

* 登录MySQL:`mysql -uroot -p`。
* 创建数据库:`CREATE DATABASE hivedb;`。
* 授权(可选):`GRANT ALL PRIVILEGES ON hivedb.* TO 'root'@'%'; FLUSH PRIVILEGES;`。

6. **初始化Hive元数据**:

* 进入Hive的`bin`目录:`cd /opt/module/hive/bin`。
* 执行初始化命令:`./schematool -initSchema -dbType mysql`。

### 三、使用Demo

1. **启动Hive**:

* 在Hive的`bin`目录下执行:`./hive`。
* 启动成功后,将进入Hive的命令行界面。

2. **创建表**:

* 在Hive命令行界面中执行:

```sql
CREATE TABLE student (
    id INT,
    name STRING
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
```

3. **插入数据**:

* 由于Hive本身不支持直接插入数据(除非使用`INSERT INTO ... VALUES`语法,但此语法在较新版本中才支持且性能较差),通常通过加载文件的方式插入数据。
* 准备一个包含数据的文件,例如`student.txt`,内容如下:

```
1 Alice
2 Bob
```

* 将文件加载到Hive表中:

```sql
LOAD DATA LOCAL INPATH '/path/to/student.txt' INTO TABLE student;
```

4. **查询数据**:

* 在Hive命令行界面中执行:

```sql
SELECT * FROM student;
```

5. **使用Beeline客户端(可选)**:

* 首先启动HiveServer2服务:`nohup ./bin/hiveserver2 >> hiveserver2.log 2>&1 &`。
* 使用Beeline客户端连接HiveServer2服务:

```bash
./bin/beeline -u jdbc:hive2://hadoop1:10000/default -n root
```

* 连接成功后,可以在Beeline客户端中执行与Hive命令行界面相同的SQL语句。
 

 

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐