自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 大数据大纲

1、Java编程技术Java编程技术是大数据学习的基础,Java是一种强类型语言,拥有极高的跨平台能力,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等,是大数据工程师最喜欢的编程工具,因此,想学好大数据,掌握Java基础是必不可少的。2、Linux命令对于大数据开发通常是在Linux环境下进行的,相比Linux操作系统,Windows操作系统是封闭的操作系统,开...

2019-05-18 17:27:20 675

原创 Java大纲-自我总结

一、Java Java 基础概念 Java 集合框架 Java 并发编程 Java I/O Java JVM 设计模式 SSM源码分析 二、数据库 MySQL 三、分布式 分布式-架构基础 分布式-通信框架 分布式-协调服务 分布式-服务治理 分布式-消息通信 分...

2019-03-01 17:56:24 436

原创 Lucene-MergePolicy详解

该文章基于业务需求背景,因场景需求进行参数调优,下文会尽可能针对段合并策略(SegmentMergePolicy)的全参数进行说明。一句话描述:TieredMergePolicy:找出大小接近且最优的段集。下面对该概括进行详细分析。频繁且大量的段合并会造成进程CPU飙升。

2023-09-28 16:02:26 1138

原创 Lucene原理解析

倒排索引原理如下图。基于分词器将文本内容进行分词后,记录每个词出现在哪篇文章中,从而通过用户输入的索引词查询出包含该词的文章。Lucene利用倒排索引定位需要查询的文档ID,通过文档ID搜索出文件后,再利用词权重等信息对文档排序而后返回。正向索引的生成即为基于Lucene的基础层次结构一级一级处理文档并分解成域存储次的过程。可以看到,随着文档数量增多,篇幅较长时,索引词可能会占用大量的存储空间,加载到内存后内存损耗过大。Lucene全文索引的核心是基于倒排索引实现的快速索引机制。...

2022-08-19 09:44:28 664 1

原创 Elasticsearch基础篇

es开篇啦

2021-08-13 17:17:47 171

原创 ILM(Index Lifecycle Management)

目录概念概述ILM触发行为RolloverShrinkForce mergeFreezeDelete索引生命周期阶段概念阶段执行索引生命周期行为AllocateDeleteForce mergeFreezeMegrateRead OnlyRolloverSearchable snapshotSet priorityShrinkUnfollowWait for snapshot实践概念概述ILM触发行为

2021-03-05 16:41:12 709

原创 Mybatis-plus——快速上手完整实例

Mybatis-plus概要今天发现公司在用mp(Mybatis-plus),于是想借这个机会,了解一下这个号称与Mybatis的关系就像魂斗罗中1p、2p关系的框架。快速上手想要了解一个新的框架,首先是要学会使用,这里先上快速上手,后面随着使用,扩展,慢慢深入,最终到其源码的分析。下面进入正题<!-- 先上依赖 --><dependencies> <!-- spring-boot的启动依赖 --> <dependency...

2020-05-08 22:27:11 672 6

原创 Spring-Cloud(一)——Eureka-EurekaClientConfigBean.java

毕竟第一篇,客气一下,随便说一句。之后会直接上源码,并加注释。关于EurekaClientConfigBean为什么要解析这个类,因为跟注册服务的配置项息息相关。好吧 我承认我挺懒的。这些配置项其实都是可以通过配置文件覆写缺省值,下面贴代码,英文懒得翻译了。太多,当字典用吧/** * @author Dave Syer * @author Gregor Zurowski */...

2020-04-23 11:15:32 527

原创 开篇

根据调研结果,我司用的是xxl-job定时调度框架,在调研过程,我对elastic-job框架也做了一定的学习,在此做下记录,不能白学嘛。哈哈开篇的目的就是为了简述elastic-job框架的概念,作用。Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。咱们就一个一个来看吧。首先是Elasti...

2020-04-14 16:00:58 290

原创 Spring-Cloud(二)—— 声明式REST客户端Feign

在微服务架构中,feign是比较好用的一种服务提供接口的调用方式,它使编写Web服务客户端更加容易;并且在使用Feign的同时,它还集成了Ribbon用以完成接口调用的负载均衡。简单实现:服务提供端:接下来就是具体实现一个Feign接口了,我个人比较倾向于如下实现方式可以看下项目骨架。接口都是写在user-server-api中。而具体实现是放在user-server-pr...

2020-04-14 15:15:58 194

原创 工作总结——Cron表达式

Cron表达式简单说下cron表达式怎么写* * * * * ? * :先来看下 每秒 的表达式然后再来说 ,从左到右依次是 秒,分,时,日,月,?:周,年。通配符:/这仨都是支持通配符/的,代表的意思下面来看个例子1/10* * * * ? * :从第一秒开始,每十秒用上述这种句式,替换用到/的来解释就ok。通配符:L* * * L * ? *每月...

2019-12-26 10:06:28 462

原创 Redis——分布式篇

为什么需要Redis集群为什么需要集群?性能Redis本身的QPS已经很高了,但是如果在一些并发量非常高的情况下,性能还是会受到影响。这个时候我们希望有更多的Redis服务来完成工作。扩展第二个是处于存储的考虑。因为Redis所有的数据都放在内存中,如果数据量大,很容易受到硬件的限制。升级硬件收效和成本比太低,所以我们需要有一种横向扩展的方法。可用性第三点是可用性和安全...

2019-12-03 14:55:14 669 2

原创 Redis——进阶篇

发布订阅模式列表list使用发布订阅模式的局限性之前说可以通过队列的rpush和lpop可以实现消息队列,但是消费者需要不停地调用lpop查看list中是否有等待处理的消息。为了减少通信消耗,可以sleep()一段时间再调用lpop,如此会有两个问题:如果生产者生产消息的速度远大于消费者消费信息的速度,List会占用大量的内存。 消息的实时性降低。改变思路,List提供一个阻塞式的...

2019-11-30 11:28:19 824 2

原创 Redis——基础篇

Redis特性将数据存储在缓存,可大大提高数据的IO性能,于是有了缓存的使用,随着对缓存的利用越来越多样化越来越充分,就有了各种缓存框架,Redis是其中较为优秀的,其特性如下几点:更丰富的数据类型 进程内与跨进程 单机与分布式 功能丰富:持久化机制、过期策略 支持多种编程语言 高可用,集群化Redis安装我这里用centOS7的虚拟机来装,为什么,别问,问就是在玩dock...

2019-11-27 22:12:49 335 3

转载 Nginx安装、配置详解——已经很详细了

nginx是什么?nginx是俄罗斯人 Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的一个十分轻量级的HTTP服务器。它是一个高性能的HTTP和反向代理服务器,同时也可以作为IMAP/POP3/SMTP的代理服务器。nginx使用的是BSD许可。Nginx 以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。Nginx 因为它的...

2019-11-26 10:40:47 747

转载 Oracle-sqlldr参数详解(转)

https://www.cnblogs.com/sky100/articles/1639878.html

2019-11-07 13:58:02 757

原创 Spring-Cloud(一)——服务发现Eureka

一、序关于微服务的话就不多说了,spring-cloud也已经接触多时,开个专栏做一下总结,具体思路差不多是这样。按照微服务搭建框架顺序进行整理、总结。并会在文尾增量展示微服务高可用架构。二、开篇2.1、服务注册及发现-Eurekaeureka应该是最早的,应用更广泛的服务发现框架了;eureka是由Netflix开发的框架,主要用于服务的注册发现,本身是REST接口调用。...

2019-10-21 11:23:00 210

原创 工作总结——RestTemplate请求时间过长问题

出现场景项目使用微服务,将每个数据源拆分成了一个服务,并通过Eureka注册,web服务通过配置的不同数据源的url调用各个数据源的服务从而获取相应数据。但近日部署后在跑全量更新缓存的过程中,发现了一个严重问题。缓存更新不完整,通过日志信息定位到,每次在调用MongoDB数据源微服务时,会发生无响应,导致更新任务无法继续进行下去,耗费大量时间。而调用各个服务的接口正是使用RestTem...

2019-09-10 17:13:20 9207

原创 读缓存:三问题总结

目录读缓存时可能遇到的问题一、缓存穿透:1、问题出现场景2、解决方案①、布隆过滤器(BloomFilter)②、空值缓存3、解决方案详细实践①、BloomFilter②、空值缓存:二、缓存雪崩:1、问题出现场景2、解决方案三、缓存击穿:1、问题出现场景2、解决方案读缓存时可能遇到的问题老生常谈的话题了,我这里写不是为了别的,也没...

2019-09-09 16:51:35 227

转载 史上最全的Spring Boot Cache使用与整合

一:Spring缓存抽象Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发; Cache接口为缓存的组件规范定义,包含缓存的各种操作集合; Cache接口下Spring提供了各种...

2019-09-06 09:33:33 196 2

原创 xxl-job——深度集成

随着项目研发,适配。需要对xxl-job进行深度集成,目前还没有这个需求,但未雨绸缪不是,于是开始研究源码。之后会在此篇文章记录源码分析。

2019-08-31 08:54:21 283

原创 xxl-job——接入项目(Spring-boot)

项目马上就要使用,所以今天一步一步实践一下xxl-job接入项目,提前排坑。那么我们接下来就开始吧。下载源码https://github.com/xuxueli/xxl-job初始化“调度数据库”打开:doc/db/tables_xxl_job.sql 。调度中心支持集群搭建,源码导入IDEA,源码结构如下:编译源码解压源码,按照maven格式将源码导入IDE, 使用m...

2019-08-18 14:00:50 2491

原创 xxl-job——简介

xxl-job项目接入快速入口这里只是为了记录,所以会以手打的方式,复述官网简介。概述xxl-job是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。目前来说,我们也准备接入xxl-job到我们的产品。之后会以接入xxl-job为目的学习,并且同时了解其特性,并思考特性中对我们项目的适用程度。一起来看一下官方提供的特性特性简单:支持通过...

2019-08-16 09:47:38 4609

原创 开篇

开篇原因,项目需要使用定时调度。目前来说xxl-job还是比较好用的,而正好应了领导的要求,使用xxl-job已成为必然,所以开篇为了记录学习过程。以备后续查看。...

2019-08-16 08:58:27 138

原创 Docker实战——项目容器化改造实战

What-什么是容器容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。容器与虚拟机谈到容器,就不得不将它与虚拟机进行对比,因为两者都是为应用提供封装和隔离。容器由两部分组成:应用程序本身 依赖:比如应用程序需要的库或其他软件...

2019-08-15 16:35:47 1625

原创 分布式存储基石:HDFS

基本概念HDFS分布式文件存储系统,是基于Java实现的,是Hadoop最重要的核心组件,支持顺序写入,而非随机定为读写。HDFS前提和设计目标存储超大文件 HDFS适合存储大文件,单个文件大小通常在百兆以上 HDFS适合存储海量文件,总存储量可达PB,EB级 硬件容错 基于普通机器搭建,硬件错误是常态而不是异常,因此错误检测和快速、自动的恢复是HDFS最核心的架构目标...

2019-08-15 15:57:28 169

翻译 Spark每日半小时(38)——Spark Streaming:性能调优

性能调优从集群上的Spark Streaming应用程序中获得最佳性能需要进行一些调整。在高层次上,我们需要考虑两件事:通过有效使用集群资源减少每批数据的处理时间。 设置正确的批量大小,以便可以像接收到的那样快速处理批量数据(即,数据处理与数据提取保持同步)。减少批处理时间可以在Spark中进行许多优化,以最大限度地缩短每个批处理的处理时间。数据接收中的并行度通过网络接收数...

2019-07-08 15:47:20 550

翻译 Spark每日半小时(37)——Spark Streaming:(下)

DataFram和SQL操作我们可以轻松地对流数据使用DataFrames和SQL操作。我们必须使用StreamingContext正在使用地SparkContext创建SparkSession。此外,必须如此,才可以在驱动器故障时重新启动。这是通过创建一个延迟实例化地SparkSession单实例来完成的。这在下示例中得以展示。/** Java Bean class for conve...

2019-07-08 14:39:41 165

翻译 Spark每日半小时(36)——Spark Streaming:(上)

DStream的转换与RDD类似,转换允许修改来自输入DStream的数据。DStream支持普通Spark RDD上可用的许多转换。一些常见的如下。转换 含义 map(func) 通过将源DStream的每个元素传递给函数func来返回一个新的DStream flatMap(func) 与map类似,但每个输入项可以映射到0个或更多输出项。 filter(f...

2019-07-07 22:02:15 183

翻译 Spark每日半小时(35)——Spark Streaming:基本概念

接下来,我们将超越简单的示例,详细介绍Spark Streaming的基础知识。链接与Spark类似,Spark Streaming可以通过Maven Central获得。要编写自己的Spark Streaming程序,必须将以下依赖项添加到Maven项目中。<dependency> <groupId>org.apache.spark</grou...

2019-07-06 14:45:16 214

翻译 Spark每日半小时(34)——Spark Streaming:概览、示例

概览Spark Streaming是核心Spark API的扩展,可实现实时数据流的可扩展,高吞吐量,容错流处理。数据可以从许多来源(如Kafka,Flume,Kinesis或TCP Socket)中提取,并且可以使用以高级函数表示的复杂算法进行map处理,例如reduce,join和window。最后,处理后的数据可以推送到文件系统,数据库和实时仪表盘。实际上,我们可以在数据流上应用Spar...

2019-07-06 09:55:15 207

原创 Spark每日半小时(33)——结构化流式编程:流式查询的启动、管理、监控以及Checkpointing

启动流式查询一旦定义了最终结果DataFrame/Dataset,剩下的的就是开始流式计算。为此,我们必须使用Dataset.writeStream()方法返回的的DataStreamWriter。我们必须在此界面中指定以下一项或多项参数。输出接收器的详细信心:数据格式,位置等。 输出模式:指定写入输出接收器的内容。 查询名称:可选,指定查询的唯一名称以进行标识。 触发间隔:可选,如...

2019-07-04 16:27:41 557

原创 Spark每日半小时(32)——结构化流式编程:Dataset/DataFrame API3

流式重复数据删除我们可以使用事件中的唯一标识符对数据流中的记录进行重复数据删除。这与使用唯一标识列的静态重复数据删除完全相同。该查询将存储来自先前记录的必要数据量,以便它可以过滤重复记录。与聚合类似,我们可以使用带或不带水印的重复数据删除。使用水印:如果重复记录的到达时间有上线,则可以再事件时间列上定义水印,并使用guid和事件时间列进行重复数据删除。该查询将使用水印从过去的记录中删除旧的...

2019-07-04 14:23:35 175

原创 Spark每日半小时(31)——结构化流式编程:Dataset/DataFrame API2:Join

结构化流式传输支持将Dataset/DataFrame与静态Dataset/DataFrame以及另一个流式Dataset/DataFrame连接起来。流连接的结果以递增方式生成,类似于上一节中的流聚合的结果。本节,我们将探讨再上述情况下支持哪种类型的连接(即内部,外部等)。注意,在所有受支持的连接类型中,与流式Dataset/DataFrame的连接结果与使用包含流中相同数据的静态Dataset...

2019-07-02 11:06:21 297

原创 Spark每日半小时(30)——结构化流式编程:Dataset/DataFrame API1:基本操作

从Spark 2.0开始,DataFrames和Dataset可以表示静态的,有界的数据,以及流式无界数据。与静态Dataset/DataFrame类似,我们可以使用公共入口点SparkSession从流源创建流式Dataset/DataFrame,并对它们应用与静态Dataset/DataFrame相同的操作。如果我们不熟悉Dataset/DataFrame,可以看之前Spark SQL内容熟悉...

2019-06-28 09:26:26 365

原创 Spark每日半小时(29)——结构化流式编程:编程模型

编程模型结构化流中的关键思想是将实时数据流视为连续追加的表。这导致新的流处理模型非常类似于批处理模型。我们将流式计算表示为静态表上的标准处理查询,Spark将其作为无界输入表上的增量查询运行。接下来我们更详细的去了解这个模型。基本概念将输入数据流视为“输入表”。到达流的每个数据项都像一个新行被附加到输入表。对输入的查询将生成“结果表”。每个出发间隔(例如,每1秒),新行将附加到...

2019-06-28 09:17:55 197

转载 基于Azkaban的任务定时调度实践

一、Azkaban介绍Azkaban是LinkedIn开源的任务调度框架,类似于JavaEE中的JBPM和Activiti工作流框架。Azkaban功能和特点:1,任务的依赖处理。2,任务监控,失败告警。3,任务流的可视化。4,任务权限管理。常见的任务调度框架有Apache Oozie、LinkedIn Azkaban、Apache Airflow、Alibaba Ze...

2019-06-27 17:18:11 1199

原创 Spark每日半小时(28)——结构化流式编程:概览、示例

概览结构化流是一种基于Spark SQL引擎的可扩展且容错的流式处理引擎。我们可以像表达静态数据的批处理计算一样表达流式计算。Spark SQL引擎将负责逐步和连续地运行它,并在流数据持续到达时更新最终结果。我们可以使用Scala,Java,Python或R中地Dataset/DataFrame API来表示流聚合,事件事件窗口,流到批处理连接等。计算在同一优化的Spark SQL引擎上执行。...

2019-06-27 17:02:29 315

原创 Spark每日半小时(27)——Spark SQL性能调优

对于某些工作负载,可以通过在内存中缓存数据或打开一些实验选项来提高性能。在内存中缓存数据Spark SQL可以通过调用spark.catalog.cacheTable("tableName")或者使用内存中的列式格式来缓存表dataFrame.cache()。然后,Spark SQL将仅扫描所需的列,并自动调整压缩以最小化内存使用和GC压力。我们可以调用spark.catalog.unca...

2019-06-27 15:55:39 234

原创 Spark每日半小时(26)——数据源:JDBC到其他数据库、故障排除

Spark SQL还包括一个可以使用JDBC从其他数据库读取数据的数据源。与使用JdbcRDD相比,此功能应该更受欢迎。这是因为结果作为DataFrame返回,可以在Spark SQL中轻松处理,也可以与其他数据源连接。JDBC数据源也更易于使用Java或Python,因为它不需要用户提供ClassTag。(注意,这与Spark SQL JDBC服务器不同,后者允许其他应用程序使用Spark SQ...

2019-06-26 12:44:36 280 1

myself-settings.zip

一款集合护眼edit背景,spring-boot的code-style,以及字体等配置,一键导入,方便好用。

2020-05-09

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

TA关注的人

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