自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Shawn的个人博客

个人技术分享、总结和笔记

  • 博客(184)
  • 资源 (5)
  • 收藏
  • 关注

原创 Zookeeper3.5.7源码分析

Paxos算法:一种基于消息传递且具有高度容错特性的一致性算法。Paxos算法解决的问题:就是如何快速正确的在一个分布式系统中对某个数据值达成一致,并且保证不论发生任何异常,都不会破坏整个系统的一致性。在一个Paxos系统中,首先将所有节点划分为Proposer(提议者),Acceptor(接受者),和Learner(学习者)。Prepare准备阶段Proposer向多个Acceptor发出Propose请求Promise(承诺)Acceptor针对收到的Propose请求进行Promise(承诺)

2024-01-25 14:04:42 1218

原创 Zookeeper3.5.7基础学习

Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应**。Zookeeper=文件系统+通知机制**几种分布式锁详解Centos7安装zookeeper和Web UI。

2024-01-25 14:04:06 1024

原创 Spark3学习笔记

Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。在 FullStack 理想的指引下,Spark 中的 Spark SQL 、SparkStreaming 、MLLib 、GraphX 、R 五大子框架和库之间可以无缝地共享数据和操作, 这不仅打造了 Spark 在当今大数据计算领域其他计算框架都无可匹敌的优势, 而且使得 Spark 正在加速成为大数据处理中心首选通用计算平台。Spark Core。

2024-01-25 14:03:09 1132

原创 Spark3内核源码与优化

Spark 内核泛指 Spark 的核心运行机制,包括 Spark 核心组件的运行机制、Spark 任务调度机制、Spark 内存管理机制、Spark 核心功能的运行原理等,熟练掌握 Spark 内核原理,能够帮助我们更好地完成 Spark 代码设计,并能够帮助我们准确锁定项目运行过程中出现的问题的症结所在任务提交后,都会先启动 Driver 程序;随后Driver 向集群管理器注册应用程序;集群管理器根据此任务的配置文件分配Executor 并启动;

2024-01-25 14:01:05 1252

原创 Kafka3学习笔记

Kafka是 一个开源的 分布式事件流平台 (Event StreamingPlatform),被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。发布/订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接收感兴趣的消息。Kafka-Eagle 框架可以监控 Kafka 集群的整体运行情况,在生产环境中经常使用。Kafka-Eagle 的安装依赖于 MySQL,MySQL 主要用来存储可视化展示的数据。Mysql安装可以参考之前hive的学习笔记。

2024-01-25 14:00:02 1492

原创 Kafka3.0源码学习

Sender 对象被放到了一个线程中启动,所有需要点击 newSender()方法中的 Sender,并找到 sender 对象中的 run()方法。生产者 sender 线程初始化,KafkaProducer.java中点击 newSender()方法,查看发送线程初始化。生产者 main 线程初始化,点击 main()方法中的 KafkaProducer()程序入口在core→src→main→scala→Kafka→kafka.scala。点击 main()方法中的 KafkaConsumer ()

2024-01-25 13:58:52 830

原创 Hive3.1.3基础学习

Hive是由Facebook开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能Hive是一个Hadoop客户端,用于将HQL(Hive SQL)转化成MapReduce程序Hive中每张表的数据存储在HDFSHive分析数据底层的实现是MapReduce(也可配置为Spark或者Tez)执行程序运行在Yarn上# 创建数据库# 创建一个数据库,不指定路径。

2024-01-25 13:56:22 903

原创 Hadoop3.x源码解析

文章目录一、RPC通信原理解析1、概要2、代码demo二、NameNode启动源码解析1、概述2、启动9870端口服务3、加载镜像文件和编辑日志4、初始化NN的RPC服务端5、NN启动资源检查6、NN对心跳超时判断7、安全模式三、DataNode启动源码解析1、概述2、初始化DataXceiverServer3、初始化HTTP服务4、初始化DN的RPC服务端5、DN向NN注册6、向NN发送心跳四、HDFS上传源码解析1、概述2、create创建过程2.1 DN向NN发起创建请求2.2 NN处理DN的创建请求

2024-01-25 13:54:37 1117

原创 Hadoop3.x学习笔记

文章目录一、Hadoop入门1、Hadoop概述1.1 简介1.2 hadoop优势1.3 hadoop组成1.4 大数据技术生态体系2、环境准备(重点)2.1 模板机配置2.2 模板创建3、本地运行模式(官方WordCount)4、Hadoop集群搭建(🌟重点)4.1 环境准备(集群分发脚本xsync)4.2 SSH免密配置4.3 集群配置4.4 启动集群4.5 配置历史服务器4.6 配置日志的聚集4.7 集群启动/停止方式总结4.8 Hadoop集群常用脚本4.9 常用端口号说明4.10 集群时间同步(

2024-01-25 13:51:59 1356

原创 Flume1.9基础学习

Flume 是Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构,灵活简单。Flume最主要的作用就是,实时读取服务器本地磁盘的数据(或者网络端口数据),将数据写入到HDFS使用 Flume 监听一个端口,收集该端口数据,并打印到控制台。

2024-01-25 13:41:52 1258

原创 集群监控Zabbix和Prometheus

Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。

2023-12-13 14:42:43 1516

原创 缓存一致性几种解决方案

这是一副时序图,描述请求的先后调用顺序;橘黄色的线是请求 A,黑色的线是请求 B;橘黄色的文字,是 MySQL 和 Redis 最终不一致的数据;数据是从 10 更新为 11;请求 A、B 都是先写 MySQL,然后再写 Redis,在高并发情况下,如果请求 A 在写 Redis 时卡了一会,请求 B 已经依次完成数据的更新,就会出现图中的问题。不过这里有个前提,就是对于读请求,先去读 Redis,如果没有,再去读 DB,但是读请求不会再回写 Redis。

2023-12-13 14:42:03 1003

原创 MongoDB5.x学习笔记

文章目录一、概述1、MongoDB简介1.1 简介1.2 发展历史1.3 特点1.4 应用场景2、MongoDB安装2.1 原生安装2.2 docker安装2.3 快捷安装二、核心概念1、概述2、数据库常用操作2.1 库和集合操作2.2 文档操作2.3 文档查询2.4 \$type3、索引\<index>3.1 原理3.2 索引操作3.3 复合索引4、聚合\<aggregate>三、应用整合1、SpringBoot整合1.1 环境配置1.2 集合操作1.3 相关注解1.4 文档查询1

2023-12-13 14:41:24 860

原创 Java之SPI机制详解

SPI 即,字面意思就是:“服务提供者的接口”,专门提供给服务提供者或者扩展框架功能的开发者去使用的一个接口。SPI 将服务接口和具体的服务实现分离开来,将服务调用方和服务实现者解耦,能够提升程序的扩展性、可维护性。修改或者替换服务实现并不需要修改调用方。例如SpringBoot 的自动装配就是基于spring 的 SPI 扩展机制和EnableAutoConfiguration实现的是 JDK 提供的一个工具类, 位于包下。JDK 官方注释:**一种加载服务实现的工具。**再往下看,我们发现这个类是一个。

2023-12-13 14:40:41 986

原创 Docker常用应用部署

docker-compose部署。docker-compose部署。docker-compose部署。docker-compose部署。

2023-10-24 22:04:15 495

原创 MySQL8.0高级篇(下)-事务与日志和备份

SHOW ENGINES`命令来查看当前 MySQL 支持的存储引擎都有哪些,以及这些存储引擎是否支持事务**事务:**一组逻辑操作单元,使数据从一种状态变换到另一种状态。**事务处理的原则:**保证所有事务都作为 一个工作单元 来执行,即使出现了故障,都不能改变这种执行方 式。当在一个事务中执行多个操作时,要么所有的事务都被提交( commit ),那么这些修改就 永久 地保 存下来;要么数据库管理系统将 放弃 所作的所有 修改 ,整个事务回滚( rollback )到最初状态。more。

2023-06-01 10:25:54 1115

原创 局域网内网穿透技术

内网穿透工具;但是这种方法弊端也很明显中转服务器需要一定的费用进行支撑(带公网的云服务器),如果是外网的服务器还可能存在被墙的风险中转服务器直接决定了中转的"速度",而这个"速度"越快其对应的服务器带宽就越大,通常来说价格就越高需要一定的知识储备来搭建内网穿透的服务端,而且只能转发某个特定的端口zerotier采用VLAN(虚拟局域网)技术将不同设备连接到一个“虚拟的局域网”中,从而让这些设备随时随地都可以互相访问,相比于frp等其他内网穿透。

2023-05-30 18:35:26 3894

原创 MySQL8.0高级篇(上)-架构与索引

1.2 MySQL的Linux版安装1.3 MySQL登录1.4 字符集的相关操作character_set_server:服务器级别的字符集character_set_database:当前数据库的字符集character_set_client:服务器解码请求时使用的字符集character_set_connection:服务器处理请求时会把请求字符串从character_set_client转为character_set_connectioncharacter_set_result

2023-05-25 16:21:50 1634

原创 MySQL8.0基础篇

文章目录一、MySQL概述1、数据库概述1.1 数据库作用1.2 数据库的相关概念2、MySQL概述2.1 概述2.2 RDBMS与非RDBMS3、MySQL环境安装3.1 MySQL的下载、安装、配置(win)3.2 MySQL登录3.3 MySQL演示使用3.4 MySQL目录结构与源码二、SQL查询1、SQL详情1.1 SQL分类1.2 SQL语言的规则与规范2、 基本的SELECT语句3、运算符4、排序和分页4.1 排序规则4.2 分页5、多表查询(重要)6、内置函数6.1 数值函数6.2 字符串函

2023-05-25 16:18:52 1399 2

原创 离线数据同步Sqoop与DataX

Sqoop全称是(现已经抛弃),是一个开源工具,能够将数据从数据存储空间(数据仓库,系统文档存储空间,关系型数据库)导入 Hadoop 的 HDFS或列式数据库HBase,供 MapReduce 分析数据使用。数据传输的过程大部分是通过 MapReduce 过程来实现,只需要依赖数据库的Schema信息Sqoop所执行的操作是并行的,数据传输性能高,具备较好的容错性,并且能够自动转换数据类型。Sqoop是一个为高效传输海量数据而设计的工具,一般用在从关系型数据库同步数据到非关系型数据库中。

2023-05-03 09:28:09 1273

原创 MDC学习笔记

MDC是可以帮组我们 在多线程条件下记录追踪日志的功能,它支持 Log4J和LogBack 两种日志框架通常打印出的日志会有线程号等信息来标志当前日志属于哪个线程,然而由于线程是可以重复使用的,所以并不能很清晰的确认一个请求的日志范围。手动生成一个唯一序列号打印在日志中;使用日志控件提供的MDC功能,生成一个唯一序列标记一个线程的日志在现网出现故障时,我们经常需要获取一次请求流程里的所有日志进行定位。

2023-04-12 15:31:00 2846

原创 SpringSecurity实战解析

提供了两种认证方式:HttpBasic 认证和 HttpForm 表单认证。HttpBasic 认证不需要我们编写登录页面,当浏览器请求 URL 需要认证才能访问时,页面会自动弹出一个登录窗口,要求用户输入用户名和密码进行认证。大多数情况下,我们还是通过编写登录页面进行 HttpForm 表单认证(现在默认是这个模式)一般认证成功后的用户信息是通过 Session 在多个请求之间共享,实现将已认证的用户信息对象 Authentication 与 Session 绑定要开启Spring方法级安全,在添加了。

2023-04-07 19:27:08 847

原创 Elasticsearch8.x学习笔记

从 2019 年 4 月 10 日 Elasticsearch7.0 版本的发布,到 2022 年 2 月 11 日 Elasticsearch8.0 版本的发布的近 3 年间,基于不断优化的开发设计理念,Elasticsearch 发布了一系列的小版本。减少内存堆使用,完全支持 ARM 架构,引入全新的方式以使用更少的存储空间,从而让每个节点托管更多的数据降低查询开销,在大规模部署中成效尤为明显提高日期直方图和搜索聚合的速度,增强了页面缓存的性能,并创建了一个新的"pre-filter"搜索短语。

2023-04-07 19:25:45 1403

原创 iptables防火墙详解

自定义链可以方便的管理不同的规则,方便后期规则的修改,但是需要注意的是,自定义链并不能直接使用,而是需要被默认链引用才能够使用。

2023-04-07 19:14:02 2462

原创 PM2入门及其常用命令

进程管理主要是指创建,终止和监控进程。进程管理器主要是用来确保你的应用在启动后能够保持在线pm2 是 nodejs 的进程管理器,默认支持负载均衡,能够守护进程。还支持查看应用运行时的性能,资源占用情况等当我们需要管理多个应用,或者应用有多个运行环境时,使用pm2 start来启动应用+配置参数是很不方便的。所以,pm2 支持使用配置文件来启动和管理应用。

2023-04-07 19:07:47 4423 1

原创 Rsync与Inotify监控与同步

Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快;Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试;此外,它在windows平台下也有相应的版本,如cwRsync和Sync2NAS等工具rsync与传统的cptar备份方式相比,

2023-04-07 19:06:47 646

原创 Java验证码

验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序验证码的作用:防止刷票、论坛灌水、刷页防止黑客恶意破解密码,盗取用户数据验证码通常使用一些线条和一些不规则的字符组成,主要作用是为了防止一些黑客把密码数据化盗取。

2023-03-04 21:04:57 2636 2

转载 Druid DataSource 实现监控 MySQL 性能

访问监控页面的时候,你可能会在页面底部(footer)看到阿里巴巴的广告,原因:引入的druid的jar包中的common.js(里面有一段js代码是给页面的footer追加广告的),有两种方式去广告,两种方式都可以,建议使用的是第一种,从根源解决。)这个过滤器,作用就是统计web应用请求中所有的数据库信息,比如 发出的sql语句,sql执行的时间、请求次数、请求的url地址、以及seesion监控、数据库表的访问次数,如下配置。的请求,使用正则表达式替换相关的广告内容,如下代码所示。

2023-03-04 18:27:41 267

原创 Elasticsearch7学习笔记(尚硅谷)

Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架。但是Lucene只是一个框架,要充分利用它的功能,需要使用JAVA,并且在程序中集成Lucene。当然Elasticsearch并不仅仅是Lucene这么简单,它不但包括了

2023-02-18 16:32:51 3277

原创 SpringBoot监控

任何一个系统上线,运维监控都太重要了。关于Springboot微服务的监控,之前写过Spring Boot Admin服务监控,这个方案可以实时监控并提供告警提醒功能,但不能记录历史数据,无法查看过去1小时或过去1天等运维情况。本文介绍Prometheus + Grafana的方法监控Springboot 2.X,实现美观漂亮的数据可视化。Prometheus是一个开源的服务监控系统时间序列数据库,通过Http请求拉取被监控的服务暴露的端点公开的度量列表和值,然后存放到时序数据库中,在现在最常见的。

2023-02-18 16:22:33 1316

原创 过滤器与拦截器

Spring Boot后端接口规范前面讲到数据统一响应、全局异常等常用后端框架,那么随着项目的开发,需要对请求进行校验(参数校验、前面校验等),不符合的不进入后端业务逻辑,提前返回并抛出异常。一般实现方法有拦截器和过滤器,这两者都可以实现对应的功能,可以根据自己喜好进行编写。过滤器一般完成通用的操作。登录验证、统⼀编码处理、敏感字符过滤对用户请求进行统一认证、对用户的访问请求进行记录和审核。

2023-02-18 16:20:30 869

原创 配置文件、API接口脱敏

核心隐私数据无论对于企业还是用户来说尤其重要,因此要想办法杜绝各种隐私数据的泄漏。对于工程中的敏感信息,与数据库打交道的的工程肯定是配置数据源,尤其是数据库的账号密码,我们不想把它们明文写在配置文件里,又想让工程能正确跑起来,那应该怎么做呢?**由于数据库的敏感性,所以不可能让每个人都知道su ****root的密码。且数据库中权限、视图这些机制也是为了保证安全性,所以要保证让尽可能少的人知道root**的密码。在工程的配置文件中写入加密好的密文。启动工程时让知道密钥的人,以启动参数的形式将密钥。

2023-02-18 16:18:12 2049 1

原创 Linux中curl详解

curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。

2023-02-18 16:12:30 1057

原创 Nginx自动封禁可疑Ip

在网站维护过程中,有时候我们需要对一些IP地址或是一些IP段进行封锁拉黑,使其不能访问网站。如果你的网站服务器的网站运行环境是由nginx搭建的,那么nginx中禁止ip的方法可以有效的防止网站被黑。AWK统计access.log(/var/log/nginx/),记录每分钟访问超过60次的ip,然后配合nginx进行封禁编写shell脚本crontab定时跑脚本。

2023-02-18 16:10:18 1827 6

原创 KubeSphere实战

KubeSphere平台实战

2023-02-18 16:09:58 854

原创 Kubernetes 1.18学习笔记

kubernetes,简称K8s,是用8 代替8 个字符"ubernete"而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes 提供了应用部署,规划,更新,维护的一种机制。传统的应用部署方式是通过插件或脚本来安装应用。

2023-02-18 16:04:45 1615

原创 k8s快速入门

minikube只是一个 K8S 集群模拟器,只有一个节点的集群,只为测试用,master 和 worker 都在一起直接用云平台 Kubernetes(阿里/腾讯)可视化搭建,只需简单几步就可以创建好一个集群。优点:安装简单,生态齐全,负载均衡器、存储等都给你配套好,简单操作就搞定裸机安装(Bare Metal)至少需要两台机器(主节点、工作节点个一台),需要自己安装 Kubernetes 组件,配置会稍微麻烦点。可以到各云厂商按时租用服务器,费用低,用完就销毁。

2023-02-18 15:58:30 1529

原创 Shiro1.9学习笔记

Apache Shiro 是一个功能强大且易于使用的 Java 安全(权限)框架。Shiro 可以完成:认证、授权、加密、会话管理、与 Web 集成、缓存 等。借助 Shiro 您可以快速轻松地保护任何应用程序——从最小的移动应用程序到最大的 Web 和企业应用程序。Shiro 默认的登录认证是不带加密的,如果想要实现加密认证需要自定义登录认证, 自定义 Realm;首先是创建自定义Realm。

2023-02-18 15:36:03 689

转载 NAT网络与内网穿透详解

大家有没有想过,为什么在公司里访问不了家里的电脑?这是因为IPv4地址有限,最大42亿个。为了更好的利用这有限的IP数量,网络分为局域网和广域网,将IP分为了私有IP和公网IP,一个局域网里的N多台机器都可以共用一个公网IP,从而大大增加了"可用IP数量"。收发数据就像收发快递,当我们需要发送网络包的时候,在IP层,需要填入源IP地址,和目的IP地址,也就是对应快递的发货地址和收货地址我们家里的局域网内,基本上都用这样的私有IP,如果我们在发送网络包的时候,这么填。对方在回数据包的时候该怎么回?

2023-02-02 13:27:57 4171 4

转载 SpringBoot2.0经典学习笔记

我们知道,从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在Java EE(Java Enterprise Edition)开发中真正意义上的标准,但是随着技术的发展,Java EE使用 Spring 逐渐变得笨重起来,大量的 XML 文件存在于项目之中。繁琐的配置,整合第三方框架的配置问题,导致了开发和部署效率的降低。2012 年 10 月,Mike Youngstrom 在 Spring jira 中创建了一个功能请求,要求在 Spring 框架中支持无容器 Web 应用程序体系结构

2023-01-31 22:51:48 849 1

Ranger2.0+Atlas2.1

ranger-2.0.0-admin.tar.gz ranger-2.0.0-hive-plugin.tar.gz ranger-2.0.0-usersync.tar.gz apache-atlas-2.1.0-hive-hook.tar.gz apache-atlas-2.1.0-server.tar.gz

2023-06-28

hive-jdbc-uber-3.1.2+yanagishima-18.0

kerberos的hive-jdbc-uber-3.1.2包和即席查询的yanagishima

2023-06-26

hive3.x编译spark3.x包

补丁文件包,依赖包,hive3.1.2-spark3.0.0和hive3.1.3-spark3.1.3二进制包已经全部放进该压缩

2023-06-07

国内可下载kube-flannel.yml与自签证书程序文件

kube-flannel.yml文件

2022-11-08

2021/2022中国行政规划Mysql资源

里面有2021年的和2022年版,2021版包含邮政编号,其他可以参考 https://github.com/adyliu/china_area

2022-05-25

Java开发手册(黄山版2022)

Java开发手册(黄山版2022)

2022-04-18

aspose word ppt excel

aspose word ppt excel

2022-04-09

ESXi-6.7.0-8169922-standard-customized.iso

ESXI

2021-07-12

Synology资源

Synology Assistant DSM_DS3615xs_5967.pat XPEnoboot_DS3615xs_5.2-5967.1.iso

2021-01-27

空空如也

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

TA关注的人

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