第2章:基础操作

安装和启动过程

略过。。

使用JDBC连接元数据

Hive所需要的组件中只有一个外部组件是Hadoop没有的,那就是metastore(元数据存储)组件。元数据存储中存储了如表的模式和分区信息等元数据信息。用户在执行如create table x…或者alter table y…等命令时会指定这些信息。因为多用户和系统可能需要并发访问元数据存储,所以默认的内置数据库(Derby SQL)并不适用于生产环境。

hive-site.xml中的元数据存储数据库配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://db1.mydomain.pvt/hive_db?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>database_user</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>database_pass</value>
</property>
</configuration>

Hive命令

$HIVE_HOME/bin/hive : 开启命令行界面

Hive服务

Hive中 “一次使用” 命令:hive -e

执行结束后hive CLI立即退出

静默模式:

hive -S

减少无关紧要的信息

模糊查找:

如果记不清哪个属性指定了管理表的“warehouse”的路径,通过如下命令可以查看到:

$ hive -S -e “set” | grep warehouse

hive.meatstore.warehouse.dir=/user/hive/warehouse

hive.warehouse.subdir.inherit.perms=false

从文件中执行Hive查询:

执行指定文件中的一个或者多个查询语句:

$ hive -f /path/to/file/withqueries.sql

执行一个脚本文件:

$ hive source /path/to/file/withqueries.hql;

执行hiverc文件: hive -i

在CLI启动提示符出现之前执行这个文件,对于用户需要频繁执行的命令,例如设置系统属性、增加对于Hadoop的分布式内存进行自定义的Hive扩展的Java包等。

在Hive内使用Hadoop的dfs命令: hive> dfs -ls / ;

只要将hadoop命令中的hadoop去掉,以分号结尾即可。

Hive脚本注释:

前面加 -- ,同Mysql

显示字段名称:

hive> set hive.cli.print.header=true;

如果希望总是看到字段,把这段命令太能加到$HOME/.hiverc文件,hive -i 执行即可。