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
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)
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/{库名}
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)); } } }