You need to enable JavaScript to run this app.
文档中心
湖仓一体分析服务 LAS 私有化

湖仓一体分析服务 LAS 私有化

复制全文
下载 pdf
Hive
基础使用
复制全文
下载 pdf
基础使用

Hive 命令行

  1. 登录 LAS 集群节点:
  2. 执行以下命令,切换为 hive 用户。
sudo su  emr
 
-- 环境变量
source ~/.profile
-- 进入hive
hive

返回信息如下所示时,表示进入 Hive 命令行

Hive Session ID = aaa9c23d-4975-4c10-bb9a-1817c5fa36e6
Logging initialized using configuration in file:/etc/las/hive/conf/hive-log4j2.properties Async: true
Hive Session ID = 258437d2-f601-42c9-bab3-731b975b0642

库操作

本文示例中的数据库以 testdb 为例介绍。

创建库

CREATE DATABASE IF NOT EXISTS testdb;

当返回信息为:

OK
Time taken: 0.617 seconds

表示创建成功。

查看库

DESC DATABASE testdb;

查看信息如下所示:

OK
testdb hdfs://iv-ybtfk74d08kdvbpw7bf3:8020/warehouse/tablespace/managed/hive/testdb.db hive USER
Time taken: 0.155 seconds, Fetched: 1 row(s)

使用库

USE testdb;

返回信息如下所示:

OK
Time taken: 0.034 seconds

删除库

DROP DATABASE IF EXISTS testdb;

返回信息如下所示,表示删除成功:

OK
Time taken: 0.104 seconds

表操作

本文示例中的表以 test_table 为例介绍。

创建表

CREATE TABLE IF NOT EXISTS test_table 
(
id BIGINT,
value STRING
)
STORED AS PARQUET;

返回信息如下所示,表示表创建成功:

OK
Time taken: 0.426 seconds

查看表

DESC FORMATTED test_table;

返回信息如下:

OK

查看所有表

SHOW TABLES;

返回信息如下:

OK
test_table
Time taken: 0.036 seconds, Fetched: 1 row(s)

删除表

DROP TABLE IF EXISTS test_table;

返回信息如下,表示删除成功:

OK
Time taken: 0.227 seconds

SQL 操作

插入记录

INSERT INTO TABLE test_table VALUES(1, 'value1');

返回信息包含:

OK
Time taken: 15.676 seconds

表示插入成功

查询表记录

SELECT * FROM test_table LIMIT 5;

返回信息如下:

OK
1 value1
Time taken: 0.195 seconds, Fetched: 1 row(s)

聚合操作

SELECT value, COUNT(*) FROM test_table GROUP BY value;
sql

返回信息如下:

OK
value1 1
Time taken: 4.207 seconds, Fetched: 1 row(s)

HiveServer2 使用

  • 高可用连接串
JDBC 高可用连接串规则如下:  jdbc:hive2://{hive.zookeeper.quorum}/{库名};serviceDiscoveryMode=zooKeeper;zooKeeperNamespace={hive.server2.zookeeper.namespace}

其中:
- {hive.zookeeper.quorum} 值在hive-site.xml中查找
- {hive.server2.zookeeper.namespace} 值在hive-site.xml中查找
- {库名} 值为真实连接的库名

# 目前 LAS平台集成了LDAP进行验证,因此需要提供相应的用户名与密码进行连接,hive 用户通过hive-env.sh文件可以查找到相应的信息, 如下:
HIVE_LDAP_USER="hive"
HIVE_LDAP_PASSWORD="xxx"
  • 单节点连接串
jdbc:hive2://{hiveserver2部署节点}:10000/{库名}
  • 通过官方JDBC 客户端直连hive-server2,需提供连接信息、用户名、密码
package com.example;

import java.sql.*;

/**
 * Hello world!
 *
 */
public class App
{
    private static String driverName = "org.apache.hive.jdbc.HiveDriver";

    public static void main(String[] args) throws SQLException {

        try {
            Class.forName(driverName);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        // LDAP 中的用户名
        String user = "hive";

        // LDAP 中的用户密码,
        String password = "*******";

        Connection con = DriverManager.getConnection(
                "jdbc:hive2://las-master-1:10000", user, password);

        Statement stmt = con.createStatement();

        String sql = "show databases";
        ResultSet res = stmt.executeQuery(sql);

        while (res.next()) {
            System.out.println(res.getString(1));
        }

    }
}
最近更新时间:2025.04.01 20:13:40
这个页面对您有帮助吗?
有用
有用
无用
无用