hive客户端连接

hive客户端

第一代客户端直接使用hive指令连接,连接的就是metastore服务,并且只要连接成功就可以操作hive数据库

第一代客户端的启动和使用

第一代客户端,直接启动metastore服务即可

前台启动(当终端任务结束后,立刻结束服务)

前台启动,可以方便查看日志信息

 hive--service metastore

后台启动(不影响终端的使用,在哪个目录下启动该服务,就会在哪个目录下生成一个nohuo.out记录日志信息)

nuhoop hive -- service metastore &

使用第一代客户端

hive

第一代客户端存在的问题

1、meta store即负责元数据的管理,又负责客户端的连接保持(峰值性能不强)

2、没有身份识别,只要能连接metastore就可以操作hive安全性不强

3、无法连接第三行服务(jdbc)

第二代客户端

创建了一个单独额hiveserver2服务

1、专门处理客户端的连接请求,以保持客户端的连接

2、hiveserver2会对客户端的身份进行校验,如果不满足将无法使用hive服务,提高安全性

3、使用jdbc协议连接,可以无缝连接第三方服务

metastore和hiveserver2的启动

前台启动会占用终端窗口,如果前台启动,使用ctrl+c结束终端占用,服务也会跟着关闭

#前台启动
hive --service metastore
hiver --service hiveserver2

#后台启动
nohup hive --service metastore  &
nohup hive --service hiveserver2 &

注意:hiveserver服务启动后也会产生一个runjar进程,hiveserver2启动服务后1-2分钟后才可以使用,如果不放心可以使用 lost-i:10000去查询,如果有进程使用了该端口号则hiveserver2服务就可以使用

datagrip连接hive服务本质上是连接的hiveserver2

数据库和数据仓库

OLTP:联机事务处理,保存我们日常生活中的各种用户行为产生记录的数据平台

特点:服务于业务,需要少量数据的频繁增删改查,要保证响应速度,保证数据安全,保证时效性

OLAP:联机分析处理,数据分析时所使用的海量数据存放的数据平台,一般会将多个业务数据库或各种数据源中的数据提取出来,统一存在OLAP服务中

特点:服务于分析,要能应对海量数据的存储和数据计算,对于响应速度要求不高没我们很少修改数据,所以也不需要对数据的一致性,安全性进行考虑。

思考:数据仓库是大型数据库吗?不是

数据库主要是为了企业的业务发展记录数据

数据库主要是为了企业的业务发展记录数据

数据仓库主要是为了对于企业的历史数据进行分析

数据库和数据仓库并不能互相取代,企业中可以没有数据仓库但是不能没有数据库

我们现在学过的数据库有mysql(sql server),数据仓库有hive

数据库和数据仓库的区别

本质上时OLTP和OLAP系统的区别

数据库更偏重于事务处理,要求其支持事务,要求增删改查效率比较高

事务:最小的业务单元,执行过程中,要么全部成功,要么全部失败

事例:小明给小刘转账1000元,银行系统要给小明减少1000元,给小刘增加1000元,要么同时成功,要么同时失败。

数据仓库更偏重于数据吞吐量和稳定,不要求支持事务,不要求搞得响应效率,所以必须处理海量的数据或文件

OLTP

transcation  事务  面向事务支持事务
oltp系统更注重的是安全、完整、相应效率、通常指的就是关系型数据库
注意 不是nosql数据库  没有事务支持  redis  hbase

OLAP

analytical分析  面向分析支持分析
olap更注重的是数据吞吐量
主要指的是数据仓库、数据集市(小型数据仓库):apche hive

注意:在某些场合下,说oracle也是olap系统,如何理解?

如果关系型数据库只要从事数据分析工作,就可以看作是olap系统,但是hive不可以做为oltp使用,因为不具备事务功能

数据仓库的核心特征

1、面向主题性

主题:是一个抽象的概念,数据综合体,一个分析的主题可以对应多个数据源,在数仓的开展分析中,首先确定分析的主题,然后基于主题寻找,采集跟主题相关的数据

2、集成性

数仓不是生成数据的平台其数据来自各个不同的数据源

当我们确定主题后,就需要把和主题相关的数据从各个数据源集成过来

因为同一个主题的数据可能来自不同的数据源他们之间会存在差异(异构数据):字段名同名不统一,单位不统一,编码不统一。

因此在继承的过程中需要进行ELT(抽取 转换 加载)

3、不可更新性

数仓上面的数据几乎没有修改操作,都是分析的操作

数据仓库是分析规律的平台不是创造数据规律的平台

注意:改指的是数据之间的规律不能修改

当下所学的侧重于离线数据 分析的都是历史数据

4、实变性

数仓是一个持续维护建设的东西

站在时间角度,数仓的数据成批或批次变化更新,一天一分析,一周一分析

数仓分层

ODS:源数据层、数据操作层,主要就是将各个数据园中的数据集中到指定的平台中,几乎不对数据做任何处理,只是临时存放等待后续处理

DW:数据仓库层,对于数据进行数据清洗,数据处理,数据转换等,使其满足数据分析的需要

DA/APP层:数据应用层,根据业务部门的需求,进行数据分析处理获取的数据可以直接用于前端展示或者制作报表。

思考:为什么进行数据分层?

1、数据分层便于我们进行过程检查,方便协同开发

2、方便过程数据的复用,能缩短开发周期

3、如果出现数据错误,便于追根溯源

分层的好处?

1·、解耦合(相互依赖),方便协同开发

2、可以追根溯源,可以更快的对于问题进行解决和修复

3、空间换时间提高最终应用层使用数据的效率

每一个公司数仓的分层策略都不同,所以我们只需要记住三层架构即可,在公司中通常对dw层和da层细化

ETL和ELT

E:extact数据抽取,将数据从不同的数据源中抽取出来

T:transform数据转换,将数据通过清洗,处理,转换为满足数据分析要求的数据

L:load数据加载,将数据加载到数据仓库中

ETL:传统的数仓处理模式,将数据抽取出来存放到临时数据库,进行转换后加载到数据仓库

ELT:将数据抽取后直接加载到数据仓库中,在数据仓库中进行反复处理(分层处理)

数据库操作
1、创建数据库
create  database if not  exists myhive;
2、使用数据库
use  myhive
3、查看当前使用的数据库
selet  current_database();
4、查看数据库的详细信息
desc  database myhive;
5、创建数据库时指定数据存放位置
create database if  not  exists  test_1 location 'hdfs://node1:8020/tmp/db_1';
#8020是namenode的监听端口号,默认情况下hdfs的namenode使用端口8020进行通信,但是这个端口号可以根据实际的hadoop集群配置进行修改
6、创建数据库时制订注释信息
create  database if not  exists test_2  comment  'this is a test'
7、删除数据库
drop database myhive;
#如果是空数据库可以直接删除,如果内部创建了表,则不能随意删除
如果说要强制删除非空数据库,可以使用cascade进行修饰
drop database myhive  cascade;
  • 49
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值