#大数据实训第三天总结#
Apache Hive概述
功能
将SQL语句翻译成MapReduce程序,为用户提供分布式SQL计算的能力。
优势
操作接口采用类SQL语法,简单、容易上手;
底层执行MapReduce,能完成分布式海量数据的SQL处理。
Hive核心架构
• 元数据管理:称之为Metastore服务,推荐远程模式
• SQL解析器(Driver驱动程序),完成SQL解析、执行优化、代码提交等功能
• 用户接口:提供用户和Hive交互的功能
Metastore元数据存储
作用是:客户端连接metastore服务,metastore再去连接MySQL等数据库来存取元数据。
内嵌模式:优点是解压hive安装包并启动即可使用;缺点是不适用于生产环境,资源利用率低,元数据不能共享。
本地模式:优点是可以单独使用外部的数据库,元数据共享;缺点是相对浪费资源,metastore嵌入到了hive进程中,每启动一次hive服务,都内置启动了一个metastore。
远程模式:优点是可以使用外部库(如mysql)共享元数据,metastore可以单独启动和配置;缺点是其他依赖hive的软件需要通过Metastore访问hive。
Hive客户端
Hive的客户端体系如下
启动
启动metastore服务
[root@node1 apache-hive-3.1.2-bin]# nohup ./hive --service metastore &
启动hiveserver2服务
[root@node1 apache-hive-3.1.2-bin]# nohup ./hive --service hiveserver2 &
Hive基本概念与原理
数据仓库与数据库的区别:
OLTP(联机事务处理)面向用户交易,关注响应时间、数据安全性、完整性和并发用户数。OLAP(联机分析处理)面向专业分析,针对历史数据进行分析,支持管理决策。
数据仓库特征:面向主题、集成、非易失、时变。
ETL和ELT
ETL: 先从数据源池中抽取数据,数据保存在临时暂存数据库中(ODS)。然后执行转换操作,将数据结构化并转换为适合目标数据仓库系统的形式,然后将结构化数据加载到数据仓库中进行分析。
ELT: 从数据源中抽取后立即加载。没有专门的临时数据库(ODS),这意味着数据会立即加载到单一的集中存储库中,数据在数据仓库系统中直接进行转换,然后进行分析。
数据表操作
Hive表的类型?
• 内部表(MANAGED_TABLE)
分区表
分桶表
• 外部表(EXTERNAL_TABLE)
分区表
分桶表
内部表区别?
删除内部表:直接删除元数据(metadata)及存储数据
删除外部表:仅仅是删除元数据(表的信息),不会删除数据本身
创建内部表语法?
create table [if not exists] 内部表名(
字段名 字段类型 , ...
)...;
内部表类型?
MANAGED_TABLE
删除内部表效果?
直接删除元数据(metadata)及存储数据
创建外部表语法?
create external table [if not exists] 内部表名(
字段名 字段类型 , ...
)...;
外部表类型?
EXTERNAL_TABLE
删除外部表效果?
仅仅是删除元数据(表的信息),不会删除数据本身
Hive的默认字段分隔符?
\001(^A)是一种特殊字符,是ASCII值
在Notepad++文本编辑器中是显示为SOH的。
版权归原作者 君一一一一 所有, 如有侵权,请联系我们删除。