Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

一. Meta Store

使用mysql客户端登录hadoop100的mysql,可以看到库中多了一个metastore

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

现在尤其要关注这三个表

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

DBS表,存储的是Hive的数据库

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

TBLS表,存储的是Hive中的表,使用DB_ID和DBS表关联

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

COLUMNS_V2存储的是每个表中的字段信息

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

Meta Store并不存储真实的数据,只是存储数据库的元数据信息,数据是存储在HDFS上的

二. HDFS

浏览器打开 http://hadoop100:50070/explorer.html#/    在/目录下多了一个user目录

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

点进去

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

再点进去

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

再点进去

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

我们创建的表就出来了,难道没有人疑问default库哪里去了么?使用客户端,创建一个数据库~

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

再刷新一下

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

所以,如果使用默认的default数据库,数据表将会放在hive/warehouse目录下.使用自定义的数据库,也会放在hive/warehouse目录下,再建表的话,会存到下一级目录下

其实这个目录,也是可以改的,修改conf/hive-stie.xml

<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>

三. JDBC连接Hive

1. 启动hiveserver2服务

bin/hiveserver2

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

阻塞是正常的,不要以为没起来...不想阻塞的话,可以使用后台守护的方式启动,bin/hiveserver2 &    加一个&符号

2.新开一个ssh窗口,启动beeline

bin/beeline

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

3. 连接hiveserver2

!connect jdbc:hive2://hadoop102:10000

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

4.爱之初体验

show databases;

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

5.Hive常用交互命令,新开一个ssh客户端,在不使用jdbc连接的情况下操作

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

重点关注-e和-f参数,-e参数后面可以跟sql语句,-f参数后面可以跟一个sql文件

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

在opt/datas目录下新建一个sql文件,随便写条sql语句进去

select name from namelist;

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

6. 其他的一些操作

使用bin/hive连接,查看hdfs下的目录

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

查看本地文件目录

Hive(3)-meta store和hdfs详解,以及JDBC连接Hive

四. 参数配置方式及优先级

1. 查看当前所有的配置信息

hive>set;

2. 参数的配置三种方式

1). 配置文件方式

默认配置文件:hive-default.xml

用户自定义配置文件:hive-site.xml

注意:用户自定义配置会覆盖默认配置。另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖Hadoop的配置。配置文件的设定对本机启动的所有Hive进程都有效。

2). 命令行参数方式

启动Hive时,可以在命令行添加-hiveconf param=value来设定参数。

例如:

 bin/hive -hiveconf mapred.reduce.tasks=;

注意:仅对本次hive启动有效

查看参数设置:

hive (default)> set mapred.reduce.tasks;

3). 参数声明方式

可以在HQL中使用SET关键字设定参数

例如:

hive (default)> set mapred.reduce.tasks=;

注意:仅对本次hive启动有效。

查看参数设置

hive (default)> set mapred.reduce.tasks;

上述三种设定方式的优先级依次递增,即配置文件<命令行参数<参数声明。注意某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了

上一篇:Hadoop之HDFS详解


下一篇:Hadoop- Hadoop详解