- 博客(89)
- 资源 (6)
- 收藏
- 关注
转载 JVM详解 --- 垃圾回收机制
由于对象进行了分代处理(便于内存分配与回收),因此垃圾回收区域、时间也不一样。GC有两种类型:Minor GC和Full GC。Minor GC:一般情况下,当新对象生成,并且在Eden申请空间失败时,就会触发Minor GC,对Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor区。然后整理Survivor的两个区。这种方式的GC是对年轻代的Eden区进行,不会影响到年老代。因为大部分对象都是从Eden区开始的,同时Eden区不会分配的很大,所以Eden区的GC会频繁进行。
2024-06-13 11:11:26
381
1
转载 Java程序员必备:jstack命令解析
如果有一天,你的Java程序长时间停顿,也许是它病了,需要用jstack拍个片子分析分析,才能诊断具体什么病症,是死锁综合征,还是死循环等其他病症,本文我们一起来学习jstack命令~jstack 的功能jstack用法线程状态等基础回顾实战案例1:jstack 分析死锁实战案例2:jstack 分析CPU 过高jstack用于生成线程快照的,我们分析线程的情况,需要复习一下线程状态吧,拿小凳子坐好,复习一下啦~New:创建后尚未启动的线程处于这种状态,不会出现在Dump中。
2024-02-21 10:58:21
1572
1
转载 Synchronized解析
同步代码块是通过monitorenter和monitorexit来实现,当线程执行到monitorenter的时候要先获得monitor锁,才能执行后面的方法。当线程执行到monitorexit的时候则要释放锁。同步方法是通过中设置ACC_SYNCHRONIZED标志来实现,当线程执行有ACC_SYNCHRONI标志的方法,需要获得monitor锁。每个对象维护一个加锁计数器,为0表示可以被其他线程获得锁,不为0时,只有当前锁的线程才能再次获得锁。
2024-02-21 10:26:23
51
转载 矢量化执行
矢量化是把一个算法的一次处理一对操作的标量(非向量)实现转化为一次处理多对操作的向量实现。假设在32核心上并行化算法,每个核心有4-wide SIMD寄存器。SIMD就是单指令多数据流,是一类指令集,允许处理器同时在多个数据点执行相同的操作。来看单指令单数据流SISD和SIMD的对比单指令多数据流.png单指令单数据流.pngSIMD介绍数据的移动:在向量寄存器中移入移出算数计算:能够在多个数据项上计算(比如2 doubles, 4 floats, ..
2022-01-20 09:44:32
546
转载 SISD、MIMD、SIMD、MISD计算机的体系结构的Flynn分类法
1.计算平台介绍Flynn于1972年提出了计算平台的Flynn分类法,主要根据指令流和数据流来分类,共分为四种类型的计算平台,如下图所示:单指令流单数据流机器(SISD)SISD机器是一种传统的串行计算机,它的硬件不支持任何形式的并行计算,所有的指令都是串行执行。并且在某个时钟周期内,CPU只能处理一个数据流。因此这种机器被称作单指令流单数据流机器。早期的计算机都是SISD机器,如冯诺.依曼架构,如IBM PC机,早期的巨型机和许多8位的家用机等。单指令流多数据流机器(SIMD).
2022-01-20 09:37:15
3280
原创 Cannot find any provider supporting AES/CBC/PKCS5Padding
1、出现的问题java.lang.RuntimeException: java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/CBC/PKCS5Padding at com.eversec.datamind.java.util.AESUtil.aes(AESUtil.java:74) at com.eversec.datamind.java.util.AESUtil....
2021-11-01 21:16:08
3660
原创 源码编译Apache Ranger
1、从官网下载源码包http://ranger.apache.org/download.html;本文选择apache-ranger-1.1.0.tar.gz的包;2、 依赖的环境2.1 Jdk8;2.2 mven 3.52.3 gityuminstallgit2.4 gcc yuminstallgcc 2.5MySQL3、...
2021-04-04 18:15:17
552
原创 Shuffle Accounting buffer (环形缓冲区)
一 Map Parameters详细研究 MapReduce 的技术官方文档时,发现在讲解Map的参数时候提到了元数据存储在 accounting buffer,是在不懂这个是什么鬼,附 MapReduce 的技术官方文档原文:A record emitted from a map will be serialized into a buffer and metadata will be stored into accounting buffers. As described in the fol.
2021-04-04 18:13:14
270
原创 Mysql 一主多备安装部署文档
Mysql 一主多备安装部署文档文章目录Mysql 一主多备安装部署文档1 主节点配置1.1 my.cnf 配置1.2 配置同步账号1.3 授权同步账号1.4 授权远程登录1.5 刷新1.6 查看Master状态2 Slave节点配置2.1 my.cnf 配置2.2 设置Master2.3 查看slave状态3 数据同步测试3.1 测试数据3.2 Master数据3.2 Slave1同步数据3.3 Slave2 同步数据3.4 结论4 错误集锦4.1 Slave_IO_Running: Connect
2021-03-08 11:50:52
244
原创 Hadoop Mapreduce 学习
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce,Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里我尽最大的可能试着把Shuffle说清楚,让每一位想了解它原理的朋友都能有所收获。如果你对这篇文章有任何疑问或建..
2020-09-10 20:00:42
427
1
原创 JedisException: Could not return the resource to the pool
1 报错信息2020-07-25 16:20:11,085 [analyser-thread-3] ERROR com.everdata.etl.main.ETLMain - analyser error !redis.clients.jedis.exceptions.JedisException: Could not return the resource to the pool at redis.clients.util.Pool.returnResourceObject(Pool.
2020-07-30 16:42:54
1883
原创 Zookeeper 基本操作
Zookeeper 基本操作文章目录Zookeeper 基本操作1 查看zk的运行状态2 客户端连接zk3 ls 查看4 get 获取节点数据和更新信息5 stat 获得节点的更新信息6 ls2 ls命令和stat命令的整合7 create 创建节点8 create -e 创建临时节点9 create -s 创建顺序节点 自动累加10 set path data [version] 修改节点11 delete path [version] 删除节点1 查看zk的运行状态bin/zkServer.sh
2020-06-23 15:01:50
342
1
转载 理解zookeeper选举机制
一、zookeeper集群配置多个实例共同构成一个集群对外提供服务以达到水平扩展的目的,每个服务器上的数据是相同的,每一个服务器均可以对外提供读和写的服务,这点和redis是相同的,即对客户端来讲每个服务器都是平等的。这篇主要分析leader的选择机制,zookeeper提供了三种方式:LeaderElection AuthFastLeaderElection FastLeaderElection(最新默认)默认的算法是FastLeaderElection,所以这篇主要分析它的选..
2020-06-23 11:57:58
210
转载 LZ77算法压缩和解压缩
LZ77简介Ziv和Lempel于1977年发表题为“顺序数据压缩的一个通用算法(A Universal Algorithm for Sequential Data Compression )”的论文,论文中描述的算法被后人称为LZ77算法。值得说的是,LZ77严格意义上来说不是一种算法,而是一种编码理论。同Huffman编码一样,只定义了原理,并没有定义如何实现。基于这种理论来实现的算法才称为LZ77算法,或者人们更愿意称为LZ77变种。实际上这类算法已经有很多了,比如LZSS、LZB、LZH等。至今
2020-05-18 11:35:02
6376
1
转载 Kafka史上最详细原理总结
1.前言消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服务技术水平和最关键指标之一。下面将从Kafka文件存储机制和物理结构角度,分析Kafka是如何实现高效文件存储,及实际应用效果。1.1 Kafka的特性:- 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对par...
2020-04-17 11:36:02
437
转载 Redis 入门
前言redis作为nosql家族中非常热门的一员,也是被大型互联网公司所青睐,无论你是开发、测试或者运维,学习掌握它总会为你的职业生涯增色添彩。当然,你或多或少已经了解redis,但是你是否了解其中的某些细节,本片文章将详细介绍redis基础,后续也会介绍其高级部分如、持久化、复制、集群等内容,希望对你有所帮助。自redis3.0发布已经3年了,redis目前官方提供的redis稳定版...
2019-03-22 15:57:38
202
转载 史上最全的Maven Pom文件标签详解
<span style="padding:0px; margin:0px"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apach...
2019-03-21 15:05:10
207
转载 Kerberos
1. Kerberos简介1.1. 功能 一个安全认证协议 用tickets验证 避免本地保存密码和在互联网上传输密码 包含一个可信任的第三方 使用对称加密 客户端与服务器(非KDC)之间能够相互验证 Kerberos只提供一种功能——在网络上安全的完成用户的身份验证。它并不提供授权功能或者审计功能。1.2. 概念首次请求,...
2019-03-19 11:45:59
334
原创 Mysql GROUP_CONCAT(expr) 介绍
1、MYSQL版本\Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 86693Server version: 5.7.23 MySQL Community Server (GPL)Copyright (c) 2000, 2018, Oracle and/or it...
2018-12-07 14:57:49
1392
翻译 ElasticSearch 升级过程中给涉及到的术语-3 事务日志-Translog
1、事务日志介绍 只有在luncene commit以后,luncene的改变才会被持久化,这是一个相对开销很大的操作,因而不能在每个索引后或者删除操作后执行;在一次提交之后和另一次提交之前发生的更改将在进程退出或硬件故障的情况下由Lucene从索引中删除。由于luncene commit 开销太大而不能在每次操作后执行,因此每个分片的copy都有一个事物日志,这个事物日志成...
2018-11-28 16:37:42
1901
5
翻译 ElasticSearch 升级过程中给涉及到的术语-1、同步刷新synced flush
Es 会跟踪每个活动分片的索引,分片在五分钟内如果没有收到任何有关索引的操作,则认为分片不活动了;这将给Es机会去减小分片的资源,同时执行一种特殊刷新,成为:同步刷新;同步刷新也是执行普通的刷新,然后给所有的分片添加一个不同的标记; 当没有索引操作时,id 标记会添加到分片上。标记可以作为一个快速的方式来检查两个分片的lucene索引一致是否一致;这种快速的id 比较主要用于 数据恢复...
2018-11-27 17:07:46
2511
原创 elasticsearch-migration 跨集群数据迁移
这个工具正好srcoll+bulk原理,进行数据迁移,该工具安装简单,解压即可使用。scroll查询:es深度分页查询,基于http请求,可以查询索引下所有数据,不会有from+size不能大于1w的问题。bulk请求:可以批量插入数据,是http请求。1、下载文件 elasticsearch-migration源码:https://github.com/medcl/esm-abando...
2018-11-27 16:11:55
4291
原创 ElasticSearch跨版本数据升级1.4.1-2.4.1
需求:Es版本数据升级:1.4.1-2.4.11.4.1 版本数据200W条数据;[root@dmp9 wangzhanpeng]# curl dmp9:9201/_cat/indices?vhealth status index pri rep docs.count docs.deleted store.size pri.store.size green open wzp...
2018-11-27 16:01:31
707
原创 Impala安装
一、下载文件(本文选择2.5.0)地址:http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5.7.0/RPMS/x86_64/二、安装过程1、安装bigtop-jsvc-0.6.0+cdh5.7.0+804-1.cdh5.7.0.p0.78.el6.x86_64.rpm [root@dmp8 impalaRPMs]# rpm...
2018-11-21 11:31:16
2125
转载 ElasticSearch 基本信息查看
1.查看集群的健康状态。http://127.0.0.1:9200/_cat/health?vURL中_cat表示查看信息,health表明返回的信息为集群健康信息,?v表示返回的信息加上头信息,跟返回JSON信息加上?pretty同理,就是为了获得更直观的信息,当然,你也可以不加,不要头信息,特别是通过代码获取返回信息进行解释,头信息有时候不需要,写shell脚本也一样,经常要去除一些...
2018-11-12 11:07:48
6372
转载 Shell脚本中替换字符串等操作
一、判断读取字符串值表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-DEFAULT} 如果var没有被声明, 或者其值为空, 那么就以$DEFAULT作为其值 * ${var=DEFAULT} ...
2018-10-22 13:56:39
18631
原创 Apache Ambari 源码编译安装
1、执行以下操作,本文选择的Ambari是2.7.0版本;wget http://www.apache.org/dist/ambari/ambari-2.7.0/apache-ambari-2.7.0-src.tar.gz (use the suggested mirror from above)tar xfvz apache-ambari-2.7.0-src.tar.gzcd apac...
2018-09-26 16:14:14
617
原创 Atlas导入Hive元数据
1、设置hive-site.xml ; <property> <name>hive.exec.post.hooks</name> <value>org.apache.atlas.hive.hook.HiveHook</value> </property>2、添加HIVE_AUX_JA...
2018-09-25 16:33:37
8772
24
原创 Apache Atlas 安装
1、从官网下载源码http://atlas.apache.org/Downloads.html ,本项目选择source 1.0.0; 2、下载好包后,上传到服务器中某个机器上;解压包; tar -zxvf apache-atlas-1.0.0-sources.tar.gz;3、进入解压后得文件中;cd apache-atlas-1.0.0-sources;...
2018-09-17 16:54:44
10107
21
转载 Jar包在Eclipse中 中文乱码
(1)检查自己项目设置的编码 (2)检查导入的jar源代码设置的编码 (3)检查Eclipse中文本文件设置的编码 (4)检查java源文件设置的编码 (5)以上全部设置完之后,maven update项目(6)重庆eclipse; ( 7 ) OK;...
2018-09-11 15:30:16
1992
转载 rm 删除文件后磁盘依然占用
lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都...
2018-09-10 15:38:22
3659
原创 mybatis:元素内容必须由格式正确的字符数据或标记组成
1、利用mybatis写Dao层@Select("<script> select count(*) from p_comment where 1=1 " +"<if test='csid != null'> and csid = #{csid} </if>" +"<if test='goal != null'> and goal
2018-09-05 16:06:18
14638
原创 Mysql 使用关键字作为字段的反例及数据库命名规范
1、数据库表的设计CREATE TABLE `p_article_label` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '编号', `group` int(3) DEFAULT NULL COMMENT '文章组别', `name` varchar(100) DEFAULT NULL COMMENT '标签/组名', `...
2018-08-17 17:50:24
1914
原创 MYSQL No space left on device
1、导入sql文件时mysql 挂了,查看原因为:2018-08-10T07:26:18.310074Z 1083 [ERROR] InnoDB: Write to file ./everdata_knowledge/cell_v201601.ibdfailed at offset 1318060032, 1048576 bytes should have been written, onl...
2018-08-10 18:39:05
12684
1
原创 Hibernate Space is not allowed after parameter prefix ':'
1、数据库表的设计如下:DROP TABLE IF EXISTS `crawler_device`;CREATE TABLE `crawler_device` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `vendor_name` varchar(32) NOT NULL COMMENT '终端制造商名称', `ve...
2018-08-08 16:45:13
1190
原创 使用jsoup选择器来查找元素
一、用途使用jsoup解析网页,抓取手机型号和系统信息;二、获取方式例子:/** * 获取终端制造商链接列表 * * @return */ public List<VendorVo> getVendors() { List<VendorVo> ret = new ArrayList<>(); //要爬的网...
2018-08-07 18:23:08
1875
转载 特征选择和特征理解
特征选择和特征理解特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点、底层结构,这对进一步改善模型、算法都有着重要作用。特征选择主要有两个功能:减少特征数量、降维,使模型泛化能力更强,减少过拟合增强对特征和特征值之间的理解拿到数据集,一个特征选择方法,往往很难同时完成这两个目的。通常情况下,我们经常不管三七二十一,选择一种自己最熟...
2018-07-04 14:48:27
523
转载 LogisticRegression
1. 概述 在scikit-learn中,与逻辑回归有关的主要是这3个类。LogisticRegression, LogisticRegressionCV 和logistic_regression_path。其中LogisticRegression和LogisticRegressionCV的主要区别是LogisticRegressionCV使用了交叉验证来选择正则化系数C。而Logistic...
2018-07-04 14:46:34
452
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人