Hive基础笔记(架构、运行过程、元数据、数据类型)

接着上次的hive安装配置https://www.jianshu.com/p/2f284bd01344,这次记录别的。

那Hive到底能干啥??

基于Hadoop的数据仓库,可以把结构化的数据文件映射为一张表,然后提供类SQL的查询功能、
本质是把HQL转化为MR程序,当然这个MR可以被Spark或者Flink代替。

Hive架构

hive架构
这个Metadata配置存在mysql里面,其实客户端是先找了MetaData,然后再根据定位去HDFS里访问DataNode。
然后里面有好几个器,这个是Hive主要做的事,顺序:解析器->编译器->优化器->执行器
1.解析器看SQL语法,语法通过了去编译器。
2.编译器负责翻译,把HQL翻译成MR任务,然后交给优化器。
3.优化器对MR任务进行优化。
4.最后交给执行器执行任务。

Hive运行过程

写:
用户创建一个Table,通过映射关系在HDFS中创建数据文件,MetaData中记录对应文件的path,根据这个,记录到Hive的元数据中。

读:
用户写SQL,然后这边其实是先访问元数据,找到HDFS文件位置。整个过程如上面架构中写的。

元数据Metadata

Hive对应Mysql元数据的位置是一个默认叫做metastore的数据库。
这里面比较重要的表:DBS、TBLS、PARTITONS、PARTITONS_*
DBS记录的是库,TBLS记录的是表,另外那几个是分区信息。

测一下远程连接
在hive的bin目录下有一个beeline,他是在linux系统里启动一个hive的jdbc的连接客户端。
在启动它之前,我们要先启动一下hiveserver2

 nohup hive --service hiveserver2 2>&1 &

启动beelin之后可以测一下远程连接,不过想要远程连接hadoop需要在hadoop的core-site.xml配置一下:

<property>
  <name>hadoop.proxyuser.hadoop.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.hadoop.groups</name>
 <value>*</value>
</property>

由于我linux用户是hadoop,所以name那里,proxyuser写的就是hadoop了,这么配好之后,就可以远程了,否则会报错。
启动beeline。然后执行:

> !connect jdbc:hive2://Master:10000

会让我们输入密码,这个时候输入就行了,我用户hadoop,密码没设置。

然后提示我们成功了!默认的事务隔离级别是重复读。可以看一下数据库:

> show databases;

基本数据类型

基本数据类型
String类型相当于varchar,理论上它能存2G的字符数。

集合数据类型

集合类型
啊,这个就是你想象中的,Array和Map就是你脑海里java里面的Array和Map,Struct就是C里面的Struct

类型转换

Hive不能反向转化。
隐式类型转化规则:
1.tinyint能转成int,int能转成bigint
2.整数类型,包括纯数字的string能隐式转成double
3.tinyint、smallint、int能转为float
4.boolean类型不能转化为任何类型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值