0%

中间件

Trino和hive的区别

Trino(前身为PrestoSQL)和Hive是两个用于处理大数据的查询引擎,它们有一些相似之处,但也存在许多重要区别:

  1. 性能:Trino的性能优于Hive,因为Trino是为低延迟查询和交互式分析设计的。Trino使用内存作为处理中的数据存储,从而避免了MapReduce那种磁盘I/O负担。另一方面,Hive基于Hadoop MapReduce引擎,为批处理查询设计,通常具有较高的延迟。

  2. 适用场景:Trino适用于低延迟、高并发的实时数据查询场景,而Hive更适合离线分析和批处理任务。如果您需要实时探索和分析数据,Trino可能是更好的选择;如果您对查询延迟没有严格要求,Hive可能更合适。

  3. 架构:Trino采用分布式体系结构,拥有独立的协调器和工作节点。在Trino中,查询计划和执行分发到不同的工作节点进行。而Hive则依赖于Hadoop的MapReduce引擎执行查询。Trino采用Trino节点本地处理的方式,在数据来源处处理数据,减少数据在网络中的传输量。

  4. SQL支持:Trino支持ANSI SQL,而Hive使用HiveQL。尽管它们之间有许多相似之处,但它们在语法和功能上仍有所不同。例如,Trino提供了一些先进的窗口函数,HiveQL不具备这些功能。

  5. 数据源支持:Trino具有更广泛的数据源支持,可以轻松地查询各种数据存储系统,如Hadoop HDFS、Amazon S3、Cassandra、MongoDB和MySQL等。而Hive主要与Hadoop HDFS集成,对其他存储系统的支持较弱。

  6. 社区和生态系统:Trino和Hive都拥有活跃的开源社区,但Hive在大数据处理领域具有更长时间的历史和更广泛的用户群体。然而,作为一个年轻的项目,Trino正迅速发展并吸引了越来越多的关注。

trino直连hive,这种说法对吗

是的,Trino(之前叫Presto)可以直接与Hive连接并查询Hive中的数据。Trino是一个分布式SQL查询引擎,它的一个主要用途是为不同的数据源(如Hive、PostgreSQL、MySQL等)提供一个统一的查询接口。

在Trino中,为了直接连接Hive,需要配置一个名为hive.properties的文件。这个文件中包含了用户名、密码、Hive Metastore服务的URI等信息,使得Trino能够了解如何与Hive Metastore交互。

以下是一个简单的hive.properties文件示例:

1
2
3
connector.name=hive-hadoop2
hive.metastore-uri=thrift://<metastore-host>:<metastore-port>
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml

有了这个文件,你就可以让Trino直接查询Hive中的数据了,同时,你还可以使用Trino为其他数据源进行类似配置,从而实现多种数据源之间的联合查询和分析。

配置中心

选型比较

参考文献

springCloudConfig:个人感觉Spring Cloud Config这个组件还未达到生产级使用标准,除非要求真的不高。要实现配置推送,需要额外搭建RabbitMq增加了额外的人力物力成本,而且最关键的是没有UI…所以推荐使用成熟的分布式配置框架Apollo或者disconf

封装的一些中间件的原理

redis

rocketmq

调用链