java技术圈 为您找到相关结果 27

antlr4 + spark sql对业务sql进行解析

antlr4 + spark sql对业务sql进行解析通过Spark Sql实现SQL解析 在大数据平台开发过程中,会遇到血缘分析,对SQL解析并进行权限的鉴权,需要提前对SQL进行基本语法校验,这些场景都需要对SQL进行解析。 常用的sql解析工具 阿里 Druid:支持的数据库类型不少,但是解析时需要制定数据库类型,并且在使用中,对hive的语法解析版本比较老,兼容性不太好 2.Hive原生sql解析:由于在大数据平台进行业务开发时,开发人员写的SQL并一定是完全符合hive规范的,因为在运行时是先通过spark进行解析的,所以也并不能完全满足需要 3.General SQL Parser(未测试)这款工具在解析的时候也是需要指定数据库 最后通过调研之后,决定还是采用spark原生的s...阅读全文

博文 2020-08-09 14:48:10 简书

mysql Innodb单表31m千万级数据count计数方案及调优

ENV 线上环境为RDS,版本5.7.15 select version() output: 5.7.15-log 测试环境为docker搭建的mysql,版本5.7.19 select version() output: 5.7.19 单表3000万+的class表以及20万+的学校表,需要使用count查询实时数量用于分页,延迟不能太高,否则影响业务 因需要使用事务功能,使用存储引擎为Innodb(MyISAM count是自动计数单独保存,Innodb需要每次扫描表进行统计) 本文使用class表进行示例表述,school同理 OPTIMIZE 出现的第一个问题是RDS线上mysql的查询速度始终没有测试库的快,相同的数据和存储结构,索引数据都相同(一开始线上使用count完全不能查询...阅读全文

博文 2019-04-04 09:55:25 www.allocmem.com

【Spark调优】小表join大表数据倾斜解决方案

【使用场景】 对RDD使用join类操作,或者是在Spark SQL中使用join语句时,而且join操作中的一个RDD或表的数据量比较小(例如几百MB或者1~2GB),比较适用此方案。 【解决方案】 小表join大表转为小表broadcast+map大表实现。具体为: 普通的join是会shuffle的,而一旦shuffle,就相当于会将相同key的数据拉取到一个shuffle read task中再进行join,此时就是reduce join,此时如果发生数据倾斜,影响处理性能,而此时恰好一个RDD是比较小的,则可以采用广播小RDD全量数据+map算子来实现与join同样的效果,也就是map join,因为这样不会发生shuffle,也就不会发生数据倾斜。 也就是说,不使用join算子进...阅读全文

博文 2021-05-17 13:18:52 www.shuzhiduo.com

ZGC简介

ZGC简介 JDK14 2020年3月份,JDK14发布,可能我们大部分小伙伴的生产环境还停留在JDK8。目前LTS版本的JDLK主要是7,8,以及11。其他版本的支持周期都比较短,一般不建议在生产环境中使用的,不过这不影响我们了解最新的JDK的一些特性,这些可能是后面Java语言的发展方向。这次JDK14就带来了非常多的新特性,主要如下: Pattern Matching for instanceof (Preview) Packaging Tool (Incubator) NUMA-Aware Memory Allocation for G1 垃圾收集中分层,冷对象移出,需要硬件层面的支持。 JFR Event Streaming Non-Volatile Mapped Byte Buf...阅读全文

博文 2020-07-31 03:55:11 掘金

新一代垃圾回收器ZGC的探索与实践

ZGC(The Z Garbage Collector)是JDK 11中推出的一款低延迟垃圾回收器,它的设计目标包括:停顿时间不超过10ms;停顿时间不会随着堆的大小,或者活跃对象的大小而增加;支持8MB~4TB级别的堆(未来支持16TB)。从设计目标来看,我们知道ZGC适用于大内存低延迟服务的内存管理和回收。本文主要介绍ZGC在低延时场景中的应用和卓越表现,文章内容主要分为四部分:GC之痛:介绍实际业务中遇到的GC痛点,并分析CMS收集器和G1收集器停顿时间瓶颈;ZGC原理:分析ZGC停顿时间比G1或CMS更短的本质原因,以及背后的技术原理;ZGC调优实践:重点分享对ZGC调优的理解,并分析若干个实际调优案例;升级ZGC效果:展示在生产环境应用ZGC取得的效果。GC之痛很多低延迟高可用Ja...阅读全文

博文 2020-08-07 06:12:54 美团技术团队

使用google perf工具来排查堆外内存占用

现象线上机器内存不足,经常被系统oom killer干掉。 如果tomcat运行的好好的,突然被干掉了,没有任何线索,那么就可以使用下面的命令看看是不是oom killer搞的鬼 1234sudo dmesg | grep -i kill | lessOut of memory: Kill process 23195 (java) score 558 or sacrifice childKilled process 23195, UID 40001, (java) total-vm:81176732kB, anon-rss:64507900kB, file-rss:2604kB 其中anon-rss是程序占用的物理内存, 64507900kB = 61.519527435302734 GB系...阅读全文

博文 2020-04-22 10:40:11 KL's blog

JVM GC 日志详解

本文采用的JDK版本: java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode) 复制代码一、GC 日志参数 设置JVM GC格式日志的主要参数包括如下8个: -XX:+PrintGC 输出简要GC日志 -XX:+PrintGCDetails 输出详细GC日志 -Xloggc:gc.log 输出GC日志到文件 -XX:+PrintGCTimeStamps 输出GC的时间戳(以JVM启动到当期的总时长的时间戳形式) -XX:+PrintGCDateStamps 输出G...阅读全文

博文 2019-06-20 10:18:28 掘金

可能是最全面的G1学习笔记

引子最近遇到很多朋友过来咨询G1调优的问题,我自己去年有专门学过一次G1,但是当时只是看了个皮毛,因此自己也有不少问题。总体来讲,对于G1我有几个疑惑,希望能够在这篇文章中得到解决。 G1出现的初衷是什么? G1适合在什么场景下使用? G1的trade-off是什么? G1的详细过程? 如何理解G1的gc日志? G1的调优思路? G1和CMS的对比和选择? 一、基础知识1. 初衷在G1提出之前,经典的垃圾收集器主要有三种类型:串行收集器、并行收集器和并发标记清除收集器,这三种收集器分别可以是满足Java应用三种不同的需求:内存占用及并发开销最小化、应用吞吐量最大化和应用GC暂停时间最小化,但是,上述三种垃圾收集器都有几个共同的问题:(1)所有针对老年代的操作必须扫描整个老年代空间;(2)年轻...阅读全文

博文 2020-03-01 03:39:01 知乎

总第405篇2020年 第29篇很多低延迟高可用Java服务的系统可用性经常受GC停顿的困扰,作为新一代的低延迟垃圾回收器,ZGC在大内存低延迟服务的内存管理和回收方面,有着非常不错的表现。本文从GC之痛、ZGC原理、ZGC调优实践、升级ZGC效果等维度展开,详述了ZGC在美团低延时场景中的应用,以及在生产环境中取得的一些成果。希望这些实践对大家有所帮助或者启发。ZGC(The Z Garbage Collector)是JDK 11中推出的一款低延迟垃圾回收器,它的设计目标包括:停顿时间不超过10ms;停顿时间不会随着堆的大小,或者活跃对象的大小而增加;支持8MB~4TB级别的堆(未来支持16TB)。从设计目标来看,我们知道ZGC适用于大内存低延迟服务的内存管理和回收。本文主要介绍ZGC在低...阅读全文

博文 2020-08-07 06:12:22 mp.weixin.qq.com

老大难的GC原理及调优,这下全说清楚了

概述 本文介绍GC基础原理和理论,GC调优方法思路和方法,基于Hotspot jdk1.8,学习之后将了解如何对生产系统出现的GC问题进行排查解决 阅读时长约30分钟,内容主要如下: GC基础原理,涉及调优目标,GC事件分类、JVM内存分配策略、GC日志分析等 CMS原理及调优 G1原理及调优 GC问题排查和解决思路 GC基础原理 1 GC调优目标 大多数情况下对 Java 程序进行GC调优, 主要关注两个目标:响应速度、吞吐量 响应速度(Responsiveness) 响应速度指程序或系统对一个请求的响应有多迅速。比如,用户订单查询响应时间,对响应速度要求很高的系统,较大的停顿时间是不可接受的。调优的重点是在短的时间内快速响应 吞吐量(Throughput) 吞吐量关注在一个特定时间段内应...阅读全文

博文 2020-07-31 03:38:28 掘金

【译】深入理解G1的GC日志(一)

本文翻译自:www.redhat.com/en/blog/col… 这篇文章将深入研究G1的日志和调优参数。为了在实际工作中对G1进行调优,作为开发者的你需要理解G1垃圾收集器的每个步骤,以及每个步骤在整个垃圾收集周期中的作用。为了方便读者学习,这篇文章将G1的日志参数分为等级递增的三块,这篇文章将会分别介绍每一部分参数的作用和调优时候使用的场景。 基础参数 - 在生产中使用G1收集器,必须使用这些参数 高级参数 - 随着应用的成熟或业务负载的增加,需要使用这些参数针对某些问题进行调优。 Debug参数 - 这些参数是用来解决特定的性能问题,如果某个问题在非生产环境中无法复现,才会在生产环境中使用这些参数排查问题。 基础参数 如果你要在生产环境中使用G1 GC,下面这些跟日志相关的参数是必备...阅读全文

博文 2020-07-31 06:28:03 掘金

从实际案例聊聊Java应用的GC优化

当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容: > 优化前准备: 简单回顾JVM相关知识、介绍GC优化的一些通用策略。 > 优化方法: 介绍调优的一般流程:明确优化目标→优化→跟踪优化结果。 > 优化案例: 简述笔者所在团队遇到的GC问题以及优化方案。一、优化前的准备GC优化需知为了更好地理解本篇所介绍的内容,你需要了解如下内容。 1. GC相关基础知识,包括但不限于: a) GC工作原...阅读全文

博文 2020-08-01 04:17:44 美团技术团队

HBase 参数设置参考

HBase 参数设置参考 前言HBase 配置参数极其繁多,参数配置可能会影响到 HBase 性能问题,因此得好好总结下。 HBase 调优是个技术活。得结合多年生产经验加测试环境下性能测试得出。 JVM垃圾回收优化 本地 memstore 分配缓存优化 Region 拆分优化 Region 合并优化 Region 预先加载优化 负载均衡优化 启用压缩,推荐snappy 进行预分区,从而避免自动 split,提高 HBase 响应速度 避免出现 region 热点现象,启动按照 table 级别进行 balance GCHBase CMS GC 配置参考 RS 参数hbase.server.thread.wakefrequency 该值默认是 10 秒,它影响着 Flush 和 Compac...阅读全文

博文 2023-09-21 14:58:57 lihuimintu

MySQL调优之innodb_buffer_pool_size大小设置_sunny05296的博客

MySQL调优之innodb_buffer_pool_size大小设置 相关查看命令 sql> show global variables like 'innodb_buffer_pool_size'; sql> show global status like 'Innodb_buffer_pool_pages_data'; sql> show global status like 'Innodb_page_size'; 或 sql> use mysql; sql> select @@innodb_buffer_pool_size; .... MariaDB [(none)]> show global variables like 'innodb_buffer_pool_size'; +--...阅读全文

博文 2023-09-13 16:39:43 CSDN博客

HBase原理 | HBase Compaction介绍与参数调优-腾讯云开发者社区

我们知道,数据达到HBase服务端会写WAL-写Memstore,然后定期或满足一定条件时刷写磁盘生成一个HFile文件,随着时间推移生成的HFile会越来越多,将会影响HBase查询性能,同时会对HDFS造成一定影响。因此HBase会定期执行Compaction操作以合并减少HFile数量。1.两种合并HBase中Compaction分为两种。Minor Compaction称为小合并,主要是选取一些小的、相邻的HFile将他们合并成较大的HFile,并删除HFile中的过期数据。Major Compaction称为大合并,会将一个列族下的所有HFile合并成一个大的HFile,同时删除过期数据、已删除数据(打了Delete标记的)、版本过大的数据等三类无效数据。2. 参数调优1).hba...阅读全文

博文 2023-09-21 14:59:11 腾讯云

Hbase-之Bloom Filter布隆过滤器 & hbase请求交互_hbase client 开启布隆

Hbase-之Bloom Filter布隆过滤器&Hbase 1 BloomFilter是什么? 布隆过滤器,以它的创始人Burton Howard Bloom的名字命名,首先明确一个点,它只是一个数据结构,这个数据结构最开始被设计成预测一个给定的元素在某个数据集中是否存在,它有如下特点: 精确的结果不一定准确,也就是返回的a存在于集合A结果不一定是准确的;不精确的结果一定是对的,即a不存在与集合A那是约等于100%是准确的。 布隆过滤器很适用于类似于Hbase这样的大数据集,如果想了解更多Bloom Filer可以参阅:布隆过滤器具体算法实现 在Hbase中,BloomFilter提供了一个轻量级的数据结构减少Disk上目标rowkey所在文件Storefiles的读取次数,BloomFi...阅读全文

博文 2024-01-09 17:38:57 CSDN博客

MySQL 性能调优的10个方法

MYSQL 应该是最流行了 WEB 后端数据库。WEB 开发语言最近发展很快,PHP, Ruby, Python, Java 各有特点,虽然 NOSQL 最近越來越多的被提到,但是相信大部分架构师还是会选择 MYSQL 来做数据存储。MYSQL 如此方便和稳定,以至于我们在开发 WEB 程序的时候很少想到它。即使想到优化也是程序级别的,比如,不要写过于消耗资源的 SQL 语句。但是除此之外,在整个系统上仍然有很多可以优化的地方。1. 选择合适的存储引擎: InnoDB除非你的数据表使用来做只读或者全文检索 (相信现在提到全文检索,没人会用 MYSQL 了),你应该默认选择 InnoDB 。你自己在测试的时候可能会发现 MyISAM 比 InnoDB 速度快,这是因为: MyISAM 只缓存索...阅读全文

博文 2023-09-13 14:33:37 知乎

性能调优五步法

本文分享自天翼云开发者社区《性能调优五步法》,作者:x****nLinux 内核从 2.5 版本开始针对 NUMA 架构做了大量优化工作,同时也提供了丰富的工具和接口,可以帮助我们很容易的完成访问本地内存的设置。所以,通过适当的性能调优,可以提供更高的计算能力。性能优化通常可以通过五个步骤完成1.确认基线性能优化第一步是确定当前性能,并明确性能应提升的程度。如果系统性能不佳,我们就需要花时间进行研究分析,但如果系统性能接近其峰值,那可优化的空间就微乎其微。性能基线必须是一种客观可度量的指标,在明确如何度量特定系统或者应用程序的性能后,在调整和优化之前,运行应用程序并记录其性能,这就是基线值。在记录应用程序基线的同时我们需要对整个系统部件进行基准监控,包括CPU、内存、IO、网络吞吐、响应延时...阅读全文

博文 2023-11-28 15:07:15 Tianyiyun

HBase调优 —— rowkey设计的三大原则与热点问题的解决方案_hbaserowkey长度不一致 有什么问题吗?_一纸春秋的博客

在hbase中,rowkey的设计应该遵循三大原则 rowkey唯一原则 hbase中数据是以k-v格式存储的,rowkey可以类比为mysql里面的key值,因此在hbase的一张表里面,rowkey不应该重复。而且一个rowkey只能对应一条数据,用rowkey去get表里面的数据时,返回的应该是唯一一条对应的数据记录,不应该返回多条 另外,因为rowkey是按照字典顺序排序存储的,所以可以将经常读取的数据存储到一块,将最近可能会被访问的数据放到一块。不过这样做虽然方便了scan等范围查询数据,也可能会导致热点问题 rowkey长度原则 rowkey的长度原则就是说,rowkey的长度不应该过长 过长会导致rowkey在memStore中占据的内存空间过大,而实际数据占据的空间很小,只写...阅读全文

博文 2023-09-21 14:26:22 CSDN博客

一种动态实现核隔离的方法

本文分享自天翼云开发者社区《一种动态实现核隔离的方法》,作者:y****n一、技术背景相关概念:核隔离:指定的cpu核心只参与最低限度的OS内核计算; DPDK(Date planedevelopment kit):是一个用来进行包数据处理加速的软件库。Cpu亲和性:进程要在某个给定的CPU上尽量长时间地运行而不被迁移到其他处理器的倾向性。背景:网元节点上,对cpu消耗比较多的进程可以分为几个类别:1、系统运行相关进程(通过systemd启动和管理的进程以及内核线程)2、网元相关进程(比如dpos、gobgpd进程)。然而在现网中发现,由于系统运行相关进程与网元相关进程在同内核下运行时,会概率性的抢占pmd线程的cpu,从而导致dpdk丢包,影响网元性能。一般使用的隔离系统进程方法如修改gr...阅读全文

博文 2023-10-30 16:14:37 Tianyiyun

[linux]根据子进程怎么查看父进程

### 回答1: 要查看Linux中进程的父进程号,可以使用命令ps -ef或者ps aux来列出所有进程的信息,然后在输出结果中找到需要查看的进程,查看其PPID列即可得到其父进程号。另外,也可以使用命令pstree来以树形结构显示进程及其父进程。 ### 回答2: Linux是一种开源的操作系统,它的强大之处在于可以通过命令行完成绝大多数的操作,而且功能非常灵活。在Linux下,我们可以使用命令来查看进程及其相关信息。通过查看进程的父进程号,我们可以很好地了解进程之间的关系,帮助我们进行问题排查或是调优等工作。下面是具体的方法: 1. 使用ps命令查看进程信息,并指定输出相应字段的参数。 ps命令可以查看当前系统正在运行的进程,包括进程ID,所属用户,占用CPU和内存等信息。其中,父进程...阅读全文

博文 2024-04-11 17:48:25 CSDN博客

MyBatis实战指南(一):从概念到特点,助你快速上手,提升开发效率!

>MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程。 大家好,今天我们要来聊聊一个在Java开发中非常实用的框架——MyBatis。你是否曾经因为数据库操作而感到困扰?是否曾经因为SQL语句的编写而烦恼?那么,MyBatis或许就是你的救星。 接下来,让我们一起来了解一下MyBatis的概念与特点吧! ## 一、MyBatis基本概念 - MyBatis 是一款优秀的半自动的ORM持久层框架,它支持自定义 SQL、存储过程以及高级映射。 - MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 - MyBatis 可以通过简单的 XML 或注解来配置和映射原...阅读全文

博文 2024-01-08 15:23:26 YDYXCODE

Java架构师成长直通车

点击下载:架构师成长直通车第一阶段:单体项目开发与上线(1-5周)第1周 万丈高楼,地基首要在开始系统化成长之初,先从整体上认知大型互联网系统架构演变历程,明确架构师需要具备哪些技术栈与核心能力,之后开始筑基-单体开发。课程安排:1. 大型互联网系统架构演变历程2. Java架构师需要具备的技术栈与能力3. 项目演示与单体架构技术选型4. 前后端分离开发模式与项目分层设计原则5. 聚合工程构建与SpringBoot26. 基于PDMan工具为数据库建模7. 整合HikariCP与MyBatis8. MyBatis数据库逆向生成9. 结合通用Mapper,编写Restful风格Api10. 事务传播详解11. 用户注册/登录流程详解与功能开发12. 整合与优化Swagger2文档Api13. ...阅读全文

博文 2020-07-30 01:29:14 jmterorh

Java异常与调优一站式解决方案

download:Java异常与调优一站式解决方案function dealDate(date1,date2){ date1 = new Date(date1);//如果传进来的是"yyyy-MM-dd"形式的字符串 date2 = new Date(date2); var year1 = date1.getFullYear(); var month1 = date1.getMonth()+1; var day1 = date1.getDate(); var dateMax1 = new Date(year1,month1,0); var dayMax1 = dateMax1.getDate(); var year2 = date2.getFullYear(); var month2 = d...阅读全文

博文 2021-06-25 18:19:23 kakayin123

PostgreSQL DBA实战视频教程(10门课程合集)

PostgreSQL DBA实战视频教程(10门课程合集) PostgreSQL作为一款功能强大的开源关系型数据库,其DBA(数据库管理员)在日常管理和维护中需要掌握一系列的SQL语句来确保数据库的性能和安全,以下是一些PostgreSQL DBA最常使用的SQL命令和技术介绍: 数据库连接与信息查询 连接到数据库并获取基本信息是DBA的日常任务之一,使用以下命令可以查看数据库的版本信息、当前设置的参数以及数据库列表。 -查看 PostgreSQL 版本 SELECT version(); -查看所有数据库 SELECT datname FROM pg_database; -查看当前设置的参数 SHOW config_file; 数据库维护 数据库维护包括备份恢复、性能调优、索引管理等。 数...阅读全文

博文 2024-09-09 16:47:51 woaidaqipaiqiu1122

MySQL 性能调优的10个方法

MYSQL 应该是最流行了 WEB 后端数据库。WEB 开发语言最近发展很快,PHP, Ruby, Python, Java 各有特点,虽然 NOSQL 最近越來越多的被提到,但是相信大部分架构师还是会选择 MYSQL 来做数据存储。MYSQL 如此方便和稳定,以至于我们在开发 WEB 程序的时候很少想到它。即使想到优化也是程序级别的,比如,不要写过于消耗资源的 SQL 语句。但是除此之外,在整个系统上仍然有很多可以优化的地方。1. 选择合适的存储引擎: InnoDB除非你的数据表使用来做只读或者全文检索 (相信现在提到全文检索,没人会用 MYSQL 了),你应该默认选择 InnoDB 。你自己在测试的时候可能会发现 MyISAM 比 InnoDB 速度快,这是因为: MyISAM 只缓存索...阅读全文

博文 2023-05-26 11:25:49 知乎

『调弦品竹』武汉青山丝足保健_人民日报

武汉青山丝足保健[十唯:I734-33O-3I64],更多关于武汉青山丝足保健资讯如下:SH)披露,公司第二大股东四川省乐山市福华作物保护科技投资有限公司(以下简称“福华科技”)与乐山市五通桥区发展产业投资有限公司(以下简称“五发展”)签署股份转让协议,福华科技拟将其持有的1779万股上市公司股份转让给五发展。 江山股份曾于2021年12月披露,终止收购福华通达农药科技有限公司(以下简称“福华通达”)股份的重组事项。为继续解决福华通达与上市公司的同业竞争事宜,上市公司曾表示拟于2022年3月31日之前制定解决与福华通达同业竞争的方案。如今方案出台期限将至,上市公司二股东却拟减持股该文观点仅代表作者本人,搜狐号-网易号-百家号-熊掌号-百度文库号-企鹅号-大风号-哔哩哔哩-信息发布平...阅读全文