0%

访问hive

访问hive

默认情况下是只能使用hive命令行去连接,因为hive默认并没有启动什么服务去供第三方连接

使用元数据服务连接

可以在hive-site.xml中配置连接元数据的地址

1
2
3
4
5
<!-- 指定存储元数据要连接的地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://localhost:9083</value>
</property>

配置之后启动metastore(如果不启动metastore的话,hive命令行也无法连接到元数据,导致hive无法使用)

1
bin/hive --service metastore

使用jdbc方式连接

在hive-site.xm中配置(在上述的基础上配置)

1
2
3
4
5
6
7
8
9
10
11
<!-- 指定 hiveserver2 连接的 host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>localhost</value>
</property>

<!-- 指定 hiveserver2 连接的端口号 -->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>

启动元数据

1
bin/hive --service metastore

启动hiveserver2

1
bin/hiveserver2 

启动客户端

1
bin/beeline -u jdbc:hive2://localhost:10000

不进入hive直接执行sql

查看帮助命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bin/hive -help

usage: hive
-d,--define <key=value> Variable substitution to apply to Hive
commands. e.g. -d A=B or --define A=B
--database <databasename> Specify the database to use
-e <quoted-query-string> SQL from command line
-f <filename> SQL from files
-H,--help Print help information
--hiveconf <property=value> Use value for given property
--hivevar <key=value> Variable substitution to apply to Hive
commands. e.g. --hivevar A=B
-i <filename> Initialization SQL file
-S,--silent Silent mode in interactive shell
-v,--verbose Verbose mode (echo executed SQL to the
console)
1
2
3
4
5
6
7
# -e <quoted-query-string>         SQL from command line
# -e 后为sql
bin/hive -e "show databases;"

# -f <filename> SQL from files
# -f 后为sql文件
bin/hive -f hive.sql