- 博客(24)
- 资源 (7)
- 收藏
- 关注
转载 zstd 压缩算法
1.Ztsandard介绍Zstandard(或Zstd)是由Facebook的Yann Collet开发的一个无损数据压缩算法,Zstandard在设计上与DEFLATE(.zip、gzip)算法有着差不多的压缩比,但有更高的压缩和解压缩速度。在其官网(https://github.com/facebook/zstd)给出的性能测试中,Zstandard比snappy、lzo等算法有较高的优势。 Compressor name Ratio ...
2021-03-11 15:15:40 9895
原创 Presto监控和配置:配置
Web UI Query基本状态的查询JMX HTTP API GET /v1/jmx/mbean[/{objectName}] • com.facebook.presto.execution:name=TaskManager • com.facebook.presto.execution:name=QueryManager • com.facebook.presto.execution:name=NodeScheduler事件通知 Event Listener
2020-12-10 15:06:26 1107 1
原创 presto 相关使用中的问题
1、Error injecting constructor, java.lang.IllegalArgumentException: query.max-memory-per-node set to 20GB, but only 10213706957B of useable heap available解决方法:Presto will claim 0.40 * max heap size for the system pool, so your query.max-memory-per-node mu
2020-12-10 13:53:42 1070
转载 Presto 标量函数注册和调用过程简述
上一篇文章已经介绍过如何进行函数开发,本文主要讲述标量函数(Scalar Function)实现之后,是如何在Presto内部进行注册和被调用的。主要讲述标量函数是因为:三类函数的注册和调用过程略有不同,而实际查询中调用最多的是标量函数。标量函数注册函数在能够调用之前,首先要进行注册,上一篇文章已经介绍过函数注册的方法,那么函数在注册时究竟注册了哪些信息呢?函数注册实际上是维护FunctinoRegistry类中的一个 MultiMap,Key 为函数的限定名(QualifiedName,可以简单地
2020-11-10 12:05:03 431
转载 Presto System load过高问题调研
背景:我们Presto有个集群,每6.5天会出现System load过高问题,这个集群有个特点,只服务于一个业务方,且SQL基本相似。如图所示:Sys load很高(20-40%),严重影响查询性能业务SQL查询时间表现为:ScanFilterAndProjectOperator(Source Stage)阶段有机器有明显的长尾现象,比如20台机器,正常这个Operator执行时间只需要1S,但是有几台机器会耗时几分钟。而重启服务后,查询恢复正常。先jstack看下Presto在干啥:
2020-11-10 11:45:26 654
转载 Presto兼容Hive SQL的一些改造工作
前言Presto是一款优秀的分布式SQL查询引擎,适用于即席查询和报表分析等业务,其使用了ANSI SQL语法和语义,使用标准是SQL-92和SQL:2016。但是因为很多业务方一直使用Hive离线引擎来做SQL分析,而Hive使用类似SQL的语法(HQL)。为了使用户能平滑的将业务迁移到Presto上或者能让SQL同时跑到Presto及Hive引擎上,我们对Presto语法及一些算子等做了二次兼容开发,来最大限度降低用户迁移成本。接下来我们介绍下我们的主要兼容工作。一、权限认证Presto默认
2020-11-10 11:38:37 1040
转载 Presto 函数实现简述
0. 写在前面Presto Functions 并不能像 Hive UDF 一样动态加载,需要根据 Function 的类型,实现 Presto 内部定义的不同接口,在 Presto 服务启动时进行注册,然后才能在 SQL 执行时进行调用。1. 函数定义Presto 内部将 Functions 分为以下三大类: Scalar Function,即标量函数。将传递给它的一个或者多个参数值,进行计算后,返回一个确定类型的标量值。 Aggregation Function,即聚合函数。
2020-11-10 11:37:28 1487
转载 Presto调度task选择Worker方法
Presto调度task方式: public final class SystemPartitioningHandle implements ConnectorPartitioningHandle { private enum SystemPartitioning { SINGLE, FIXED, SOURCE, SCALED, COORDINATOR_ONLY, ARBITRARY .
2020-11-10 11:19:23 689
转载 Presto集群内存不足时保护机制
为了防止集群里节点OOM,Presto有个循环线程来获取当前集群节点和集群整体内存占用情况。通过这篇文章:Presto内存管理相关参数设置 我们知道Presto里分为RESERVED_POOL和GENERAL_POOL。判断节点是否阻塞(内存不足):如果使用RESERVED_POOL(意思是说最大SQL使用这个POOL),那判断集群内存超出内存的方法就是:1、RESERVED_POOL内存被SQL占用了2、GENERAL_POOL里有被阻塞的Node因为RESERVED_POOL会导致内
2020-11-10 11:18:11 713
转载 Presto内存管理相关参数设置
背景之前介绍过Presto内存管理和分配策略,但是那个是0.192版本,详细见:Presto内存管理原理和调优 ,0.201之后内存管理作了新的修改,所以重新简单分析下,然后给出一个配置模板,希望对使用Presto的同学有帮助。两种内存Presto里面内存只有2种内存,一种是user memory,另一种是system memory。system memory用于input/output/exchange buffers等,user memory 用于hash join、agg这些。内存池
2020-11-10 11:15:21 868
转载 Presto ORC及其性能优化
简介ORC的全称是(Optimized Row Columnar),其是为了加速Hive查询以及节省Hadoop磁盘空间而生的,其使用列式存储,支持多种文件压缩方式。由于其被广泛应用在Hadoop系统中,Presto 0.77版本在Hive Connector里实现了ORC Reader。ORC文件结构上图(图1)来自网络,有很多文章通过这张图片介绍了ORC文件结构,我这里就不多啰嗦了,我们直接通过数据来看文件格式吧。创建表:插入数据: insert into orc(i.
2020-11-10 11:09:25 786 1
转载 记一次Presto Worker OOM的查找过程
背景最近Presto集群又上线了几个新业务,伴之而来的是OOM很频繁,且发生时间多在早晨8点左右,线上稳定性是高优需要解决的,所以查找了下导致Presto集群OOM的原因,发现了一些问题,这里抛砖引玉下,可能其他使用Presto的用户也会遇到类似的问题。排查过程我给一些业务划分了不同的label,这里说明下我们把Presto引擎改进了下,可以动态将机器划分不同的label,这样SQL查询时候指定不同的label,SQL调度时只根据指定的label查找机器即可。之后发现一个业务方的SQL会导致集群
2020-11-10 11:06:24 469
转载 Jetty导致Presto堆外内存泄露的排查过程
背景一个Presto集群报警,显示Coordinator内存不足。看了下,发现RES内存(86.7G) > XMX(72G) + 堆外内存(10G),然后看了下Presto UI里Resource Utilization的Non-Heap Memory Used,只用了200M。问题奇怪,pmap查看进程的内存映像信息,如下: 1234567891011 [presto@hostname ~/presto-current]$ pmap -x
2020-11-10 10:32:06 848 1
原创 linux shell set vs export
It varies by shell, but basically the set command is used to define a variable for the current shell. The export command is used to define the variable as one that subshells (shells spawned from the o...
2019-12-11 14:02:27 102
转载 guice
Guice简介Guice 简介,本文中的内容也是参考该文档完成,如有不一致,以该文为准。快速上手作为示例,我们使用 BillingService,它依赖于 CreditCardProcessor 和 TransactionLog 两个接口。接下来我们看看如何使用Guice:class BillingService { private final CreditCardProcess...
2019-03-06 11:38:00 253
转载 kafka+druid
启动kafkaApache Kafka是一个高吞吐量的消息中间件,可以和Druid配合使用。本教程中使用的是Kafka 0.9.0.0,可以通过如下指令下载kafka:curl -O http://www.us.apache.org/dist/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgztar -xzf kafka_2.11-0.9.0.0.tgzcd k...
2019-01-23 15:30:50 2789
原创 java cpu高 问题诊断
1.使用top查看哪个线程cpu高 top -H -p 138962.jstack pid查看堆栈里对应的hex pid3.jmap -histo pid查看内存对象jmap -heap pid查看内存使用
2015-10-22 15:07:40 418
原创 net.core.somaxconn 设置
一般设置:1 sudo vi /etc/sysctl.conf 在最下面编辑添加: net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.route.gc_timeout = 100 net.ipv4.ip_local_port_range = 1024 65000 net.i
2015-09-23 16:46:36 6014
原创 net.core.somaxconn
/sbin/sysctl -w net.core.somaxconn=1024一般设置:1 sudo vi /etc/sysctl.conf 在最下面编辑添加: net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.route.gc_timeout = 100 net.ipv4
2015-09-23 16:39:06 1823
原创 java.lang.StackOverflowError when calling count()
Just to add some more clarity in the discussion, there is a difference between caching to memory and checkpointing, when considered from the lineage point of view. When an RDD in checkpointe
2015-08-18 14:47:28 499
原创 在Spark中实现map-side join和reduce-side join
以下说的都是二表Join,多表join则可以通过转化为多个二表join来实现。1. Map-side Join 如果要join的表中一个是大表,一个是小表(小到可以加载到内存中),就可以采用该算法。该算法可以将join算子执行在Map端,无需经历shuffle和reduce等阶段,因此效率非常高。 类似于Hadoop MapReduce中采用DistributedCac
2015-08-06 12:58:41 482
转载 simhash
simhash与重复信息识别来源:http://grunt1223.iteye.com/blog/964564在工作学习中,我往往感叹数学奇迹般的解决一些貌似不可能完成的任务,并且十分希望将这种喜悦分享给大家,就好比说:“老婆,出来看上帝”…… 随着信息爆炸时代的来临,互联网上充斥着着大量的近重复信息,有效地识别它们是一个很有意义的课题。例如,对于搜索引擎的
2015-07-10 11:20:35 845
原创 closure function闭包函数
“An object is data with functions. A closure is a function with data.” — John D. Cookhttp://docs.scala-lang.org/tutorials/tour/automatic-closures.htmlobjectTargetTest2extendsApp
2015-04-28 13:23:45 476
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人