Apache Hive™是一个分布式的、容错的数据仓库系统,它支持大规模的分析,并使用SQL方便地读取、写入和管理驻留在分布式存储中的pb级数据。

Apache Hive

 Apache Hive是什么

Apache Hive是一个分布式的、容错的数据仓库系统,支持大规模的分析。Hive Metastore(HMS)提供了一个元数据的中央存储库,可以很容易地对其进行分析,从而做出明智的、数据驱动的决策,因此它是许多数据湖架构的关键组件。Hive建立在Apache Hadoop之上,通过hdfs支持S3、adls、gs等存储。Hive允许用户使用SQL读取、写入和管理pb级的数据。

Hive-Server 2 (HS2)

HS2支持多客户机并发性和身份验证。它旨在为JDBC和ODBC等开放API客户机提供更好的支持。 

>beeline -u "jdbc:hive2://host:10001/default"
Connected to: Apache Hive 

>jdbc:hive2://host:10001/>select count(*) from test_t1;

学习更多:https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Overview

Hive Metastore Server (HMS)


Hive Metastore (HMS)是关系数据库中Hive表和分区的元数据中央存储库,并通过Metastore服务API为客户端(包括Hive、Impala和Spark)提供访问这些信息的服务。它已经成为数据湖的构建块,这些数据湖利用了各种开源软件,比如Apache Spark和Presto。事实上,一个完整的工具生态系统,开源的和其他的,都是围绕Hive Metastore构建的,这张图展示了其中的一些。 

 

学习更多:Design - Apache Hive - Apache Software Foundation

 Hive ACID

Hive为ORC表提供了完整的ACID支持,并且只支持插入所有其他格式。

了解更多:Hive Transactions - Apache Hive - Apache Software Foundation

Hive数据压缩


基于查询和基于mr的数据压缩是开箱即用的。 


jdbc:hive2://> alter table test_t1 compact "MAJOR";
Done!
jdbc:hive2://> alter table test_t1 compact "MINOR";
Done!
jdbc:hive2://> show compactions;

学习更多:LanguageManual DDL - Apache Hive - Apache Software Foundation

Hive冰山

Hive通过Hive StorageHandler为Apache冰山表提供了开箱即用的支持,冰山表是一种云原生的高性能开放表格式。 

 

Hive - Apache Iceberg™ 

安全性和可观察性


Apache Hive支持kerberos认证,并与Apache Ranger和Apache Atlas集成以提高安全性和可观察性。

 

Apache Atlas – Apache Atlas Hook & Bridge for Apache Hive

Hive LLAP

Apache Hive通过低延迟分析处理(LLAP)实现交互式和亚秒级SQL, LLAP在Hive 2.0中引入,通过使用持久的查询基础设施和优化的数据缓存使Hive更快

LLAP - Apache Hive - Apache Software Foundation

查询规划器和基于成本的优化器


Hive使用Apache Calcite的基于成本的查询优化器(CBO)和查询执行框架来优化sql查询。 

jdbc:hive2://> explain cbo select ss.ss_net_profit, sr.sr_net_loss from store_sales ss join store_returns sr on (ss.ss_item_sk=sr.sr_item_sk) limit 5 ;+---------------------------------------------+ Explain +---------------------------------------------+ CBO PLAN: HiveSortLimit(fetch=[5]) HiveProject(ss_net_profit=[$1], sr_net_loss=[$3])   HiveJoin(condition=[=($0, $2)], joinType=[inner])     HiveProject(ss_item_sk=[$2], ss_net_profit=[$22])     HiveFilter(condition=[IS NOT NULL($2)])       HiveTableScan(table=[[tpcds_text_10, store_sales]], table:alias=[ss])     HiveProject(sr_item_sk=[$2], sr_net_loss=[$19])     HiveFilter(condition=[IS NOT NULL($2)])       HiveTableScan(table=[[tpcds_text_10, store_returns]], table:alias=[sr]) +---------------------------------------------+

 Hive复制


Hive支持启动复制和增量复制,用于备份和恢复。

Replication - Apache Hive - Apache Software Foundation

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部