自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 vs Minhash

simhash

2015-07-10 11:23:39 1193

转载 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

druid 源码分析 逐层详解

druid源代码解读 构架设计 分布式构建 设计模式 依赖注入等

2019-03-06

design patten 课程

介绍设计模式开发的起源,为什么使用,在哪里使用,如何使用,使用的好处,衡量标准,准则等

2019-03-06

docker 介绍及详细使用

docker 基础介绍及详细使用,本地化配置编排,docker的基础使用等

2019-03-06

spark rdd 操作详解

spark rdd相关操作详解;包括全部的操作说明和举例;

2015-04-22

Hive函数及语法说明

Hive函数及语法说明;详细中文语法说明;兼容性说明

2013-09-26

excel画直方图

excel画直方图,正太分布图,内置样例

2013-09-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除