使用presto查询同步到hive的hudi数据

简介: 本文介绍如何通过presto查询同步到hive的hudi数据

要完成如下任务,请确保已经使用其他方法将hudi数据同步到hive中。

如果没有同步hive数据,可参考文章:使用flink SQL Client将mysql数据写入到hudi并同步到hive,并且,以下内容中的presto查询,即是基于上述参考文章所同步的hive表进行查询的,建议可先阅读上述参考文章。

以下presto安装以单节点为例。

presto 0.261下载

下载presto-server和presto-cli

mkdir /data
mkdir /data/presto-cli
cd /data
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.261/presto-server-0.261.tar.gz
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.261/presto-cli-0.261-executable.jar

cp presto-cli-0.261-executable.jar /data/presto-cli
chmod +x /data/presto-cli/presto-cli-0.261-executable.jar
ln -s /data/presto-cli/presto-cli-0.261-executable.jar /data/presto-cli/presto
tar zxvf presto-server-0.261.tar.gz
ln -s /data/presto-server-0.261 /data/presto-server

目录如下:

presto配置

进入/data/presto-server目录下,执行如下操作:

新建etc目录以及配置文件:

cd /data/presto-server
mkdir data
mkdir etc
cd etc
touch config.properties
touch jvm.config
touch log.properties
touch node.properties
mkdir catalog
touch catalog/hive.properties

编辑配置文件:

vim config.properties

填入:

coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8282
query.max-memory=5GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery-server.enabled=true
discovery.uri=http://hadoop1:8282

上述配置项为presto-server配置信息,同时将coordinator以及worker都集中在同一台主机。

vim jvm.config

填入:

-server
-Xmx8G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError

上述配置项为presto-server jvm相关配置信息。

vim log.properties

填入:

com.facebook.presto = INFO

上述配置项为presto-server日志级别。

vim node.properties

填入:

node.environment=production
node.id=presto1
node.data-dir=/data/presto-server/data

上述配置项为节点信息。

vim catalog/hive.properties

填入:

connector.name = hive-hadoop2
hive.metastore.uri = thrift://hadoop:9083
hive.parquet.use-column-names=true
hive.config.resources = /data/presto-server/etc/catalog/core-site.xml,/data/presto-server/etc/catalog/hdfs-site.xml 

上述配置项为hive连接信息,其中,

  • connector.name为hive connector名称
  • hive.metastore.uri为hive metastore连接信息
  • hive.parquet.use-column-names=true设置来解决presto读取parquet类型问题,必填项
  • hive.config.resources为hdfs集群的相关配置文件信息,可将其拷贝到/data/presto-server/etc/catalog目录下

关于presto更详细的配置信息可参考:https://prestodb.io/docs/current/installation/deployment.html

presto server启动

启动命令如下:

/data/presto-server/bin/launcher start

启动之后,可以在/data/presto-server/data/var/log中看到相应的日志文件。

[root@hadoop1 presto-server]# ll /data/presto-server/data/var/log
total 3208
-rw-r--r--. 1 root root 1410243 Sep 27 07:07 http-request.log
-rw-r--r--. 1 root root    2715 Sep 27 05:44 launcher.log
-rw-r--r--. 1 root root 1867319 Sep 27 06:01 server.log

presto cli启动

/data/presto-cli/presto --server hadoop1:8282 --catalog hive --schema test

其中,schema表示库名。

至此,我们完成了presto安装与启动工作,接下来就可以对hive中的数据进行查询。

使用presto查询cow表

首先确保,你已经通过其他方式,将hudi COW表同步到hudi中,如果没有相关同步,可参考文章:使用flink SQL Client将mysql数据写入到hudi并同步到hive

本文在参考文章基础上进行,所查询的表也是基于上述参考文章导入的表数据。

执行如下查询操作:

select count(*) from stu_tmp_1;

select * from stu_tmp_1 limit 10;

select name from stu_tmp_1 group by name, school limit 10;

得到如下结果:

相关文章
|
11天前
|
SQL 物联网 数据处理
"颠覆传统,Hive SQL与Flink激情碰撞!解锁流批一体数据处理新纪元,让数据决策力瞬间爆表,你准备好了吗?"
【8月更文挑战第9天】数据时代,实时性和准确性至关重要。传统上,批处理与流处理各司其职,但Apache Flink打破了这一界限,尤其Flink与Hive SQL的结合,开创了流批一体的数据处理新时代。这不仅简化了数据处理流程,还极大提升了效率和灵活性。例如,通过Flink SQL,可以轻松实现流数据与批数据的融合分析,无需在两者间切换。这种融合不仅降低了技术门槛,还为企业提供了更强大的数据支持,无论是在金融、电商还是物联网领域,都将发挥巨大作用。
31 6
|
23小时前
|
SQL 存储 分布式计算
|
1天前
|
SQL 存储 监控
Hive 插入大量数据
【8月更文挑战第15天】
|
1月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之从mysql读数据写到hive报错,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
1月前
|
SQL DataWorks 监控
DataWorks产品使用合集之同步数据到Hive时,如何使用业务字段作为分区键
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
SQL 分布式计算 HIVE
实时计算 Flink版产品使用问题之同步到Hudi的数据是否可以被Hive或Spark直接读取
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2月前
|
SQL 资源调度 数据库连接
Hive怎么调整优化Tez引擎的查询?在Tez上优化Hive查询的指南
在Tez上优化Hive查询,包括配置参数调整、理解并行化机制以及容器管理。关键步骤包括YARN调度器配置、安全阀设置、识别性能瓶颈(如mapper/reducer任务和连接操作),理解Tez如何动态调整mapper和reducer数量。例如,`tez.grouping.max-size` 影响mapper数量,`hive.exec.reducers.bytes.per.reducer` 控制reducer数量。调整并发和容器复用参数如`hive.server2.tez.sessions.per.default.queue` 和 `tez.am.container.reuse.enabled`
49 0
|
3月前
|
SQL 数据采集 数据挖掘
大数据行业应用之Hive数据分析航班线路相关的各项指标
大数据行业应用之Hive数据分析航班线路相关的各项指标
153 1
|
3月前
|
SQL 分布式计算 数据库
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
173 0
|
1月前
|
SQL 分布式计算 大数据
大数据处理平台Hive详解
【7月更文挑战第15天】Hive作为基于Hadoop的数据仓库工具,在大数据处理和分析领域发挥着重要作用。通过提供类SQL的查询语言,Hive降低了数据处理的门槛,使得具有SQL背景的开发者可以轻松地处理大规模数据。然而,Hive也存在查询延迟高、表达能力有限等缺点,需要在实际应用中根据具体场景和需求进行选择和优化。