- 博客(74)
- 资源 (19)
- 收藏
- 关注
原创 (4)Yarn架构、资源管理原理和运维技术介绍
(1)大数据和应用场景介绍(2)大数据技术综述总结(3)Hadoop原理与高可用技术原理介绍1.Yarn简介(1)经典Hadoop1.X问题 在Hadoop1.X版本时的资源调度是由一个主节点JobTracker和多个从节点TaskTracker来协同完成,可以看出它是一个主从架构。其中 JobTracker负责资源管理和作业调度 TaskTracker负责汇报本节点的健康状况、资源使用、任务执行情况和执行JobTracker的命令,如启动、停止任务等。 ...
2021-08-29 02:20:29 2327 1
原创 DorisDB之CBO优化器结构原理
1.DorisDB架构 Doris 是分布式、面向交互式查询的分布式数据库,主要部分是 SQL,内部用到 MPP 技术。 所谓MPP ( Massively Parallel Processing ),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源...
2021-08-15 21:56:34 3420 2
原创 Calcite原理和代码讲解(一)
1.Calcite介绍(1)简介 Apache Calcite 是面向 Hadoop 新的查询引擎,它提供了标准的 SQL 语言、多种查询优化和连接各种数据源的能力。 Calcite 的目标是“ one size fits all (一种方案适应所有需求场景)”,希望能为不同计算平台和数据源提供统一的查询引擎,并以类似传统数据库的访问方式(SQL 和高级查询优化)来访问Hadoop 上的数据。 Calcite 之前的名称叫做 optiq ,optiq 起初在 Hive 项目..
2021-07-19 01:35:12 13852 4
原创 CTF-Web(2)SQL注入
1.注入介绍1.注入介绍1.目标存在sql注入漏洞,且已经获取目标的绝对路径2.并且通过探测发现目标能够进行数据的导入和导出操作,即secure_file_priv为空3.当前数据库是(即dba权限)4.利用Into outfile() (写入文件的函数),向指定路径写入一句话木马5.webshell连接工具连接一句话木马,成功获得权限区别:手工注入需要手动输入参数判断注入点,盲注则利用脚本、自动化工具爆破。
2023-10-26 23:24:35 651
原创 渗透测试工具(3)Burpsuite
用于显示和修改Http请求和相应,通过你的浏览器和web服务器之间拦截流量实现功能,在Proxy的选项中,可以配置拦截规则来确定是什么请求和相应被拦截(例如,范围内的项目,特定文件扩展名、项目要求与参数)。forword:将请求包发出drop:丢掉请求包intercept is on/off:截断的开关Action:对请求包的一些操作,我们对包体的任何修改都可以在这个窗口内进行直接修改,然后发送有三种请求观察模式Raw:常规数据包模式header:请求头Hex:十六进制数据。
2023-10-21 21:18:11 436
原创 (2)Nmap
①功能网络扫描和嗅探工具包,三个主要基本功能:探测一组主机是否在线扫描主机端口、嗅探所提供的网络服务推断出主机所用的操作系统②namp 6个端口状态open:端口开放closed:端口关闭filtered:端口被过滤(防火墙等)unfiltered:nmap不能确认端口是否开放,但是未被过滤(ACK扫描才会出现这种情况,可以换种扫描方式)open|filtered:开放或者过滤的,nmap不能确认(不是完全被过滤的状态)。
2023-10-21 21:14:24 379
原创 (1)WireShark
WireShark是一个网络封包分析软件。网络封包分析软件的功能是抓取网络封包,并尽可能显示出最为详细的网络封包资料。使用WinPACA作为接口,直接与网卡进行数据报文交换。又称网络语言,协议栈是一组协同工作的网络协议的逻辑组合。帮助我们定义如何路由数据包,如何发起连接,以及如何确认收到数据。协议共同问题发起连接:由客户端还是服务器发起?在真正通信前必须交换哪些信息?协商连接参数:通信需要进行协议加密吗?加密密钥如何在通信双方之间传输?数据格式:通信数据在数据包中如何排列?
2023-01-13 11:23:48 2522 1
原创 Redis(1)缓存雪崩、缓存击穿、缓存穿透介绍及详细解决方案
Redis专栏目录(1)Redis有序集合跳表实现原理1.三种概念(1)缓存雪崩 缓存同一时间大面积失效,所以后续请求大面积落到数据库上,造成数据库短时间内承受大量请求而崩掉(2)缓存击穿 频繁访问的热点数据过期(3)缓存穿透 缓存和数据库中都有没有数据,导致所有请求都落在数据库上。2.解决方案(缓存雪崩)(1)缓存雪崩理解 背景:通常我们为了保证缓存中的数据与数据库中的数据一致性,会给 Redis 里的数据设置过期时...
2021-12-14 23:00:22 3589
原创 (4)Kafka高效读写原理、选举过程和事务实现
1.Kafka高效读取数据(1)顺序写入磁盘 kafka的broker收到producer数据时,以log文件尾部追加方式顺序写入。顺序写入大于随机写入效率在于,省去了大量磁头寻址时间。 一次完整的输入输出(IO)操作的时间=磁盘轴旋转时间(旋转延迟)+磁盘臂移动时间(寻道时间)+数据传输时间。三者所需时间的平均经验值为:0.004秒、0.008秒和0.0005秒。所以,一次完整的IO时间的经验值是0.0125秒,即1/80秒。 因为磁盘的盘片可分为多个扇区,顺序写只需要...
2021-10-23 02:15:41 1703
原创 (3)Kafka消费者工作机制详解
1.消费方式(pull vs push) 传统Push模式虽然实时性高,但是容易造成consumer来不及处理消息,导致拒绝服务及网络拥塞。 consumer采用pull(拉)模式从broker读取数据,这样可以控制消费速度。 pull缺点:如果kafka没有数据,消费者可能会限于获取空数据的循环中。因此可以设置timeout参数,如果没有数据可供消费,consumer会等待一段时间再返回拿。 2.消费时分区分配策略 由于CG中有多个 consumer,一个 top...
2021-10-23 01:27:25 1575
原创 (2)Kafka中生产者工作机制详细介绍
1.生产者分区机制(1)分区原因 提高可扩展性:集群可通过设置Topic的Partition数量,以适应合适大小的数据。 提高并发:以Partition为单位读写。 (2)数据分区原则 ①直接指明partition值 ②不执行partition,而通过key-value,进行哈希取余得到partition ③轮询算法:只有value时,随机生成一个整数值,与Topic可用的partition数量取余。2.生产者可靠性保证(1)可靠...
2021-10-21 01:50:12 1286
原创 (1)Kafka设计架构综述
1.Kafka介绍(1)基本概念 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者的所有动作流数据。 这种动作如: 活动数据:网站用户行为数据,例如PV(页面浏览量),UV(用户访问量) 运营数据: 监控系统性能指标(cpu利用率、负载,内存使用率,磁盘利用率,IO性能) 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决,特性如下: 海量数据不可变 实时处理 对于像Hadoop的一样的日志数据和离线分析系统,...
2021-10-21 01:38:29 1385
原创 (8) 散列表(Hash Table)原理和业界应用场景
1.散列思想和散列函数(1)散列思想 散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。 例如将运动员编号和运动员信息一一对应。 数组实现:因为参赛编号1~n跟数组下标一一对应,当我们需要查询参赛编号为x的选手的时候,我们只需要将下标为x的数组元素取出来就可以了,时间复杂度就是O(1)。 散列函数实现:使用复杂能够区分用户的编号XXXXX作为key。 把参赛编号key转化为数组下标的映射方法就叫作散列函数...
2021-09-22 23:09:26 2110 1
原创 (7)Redis有序集合跳表实现原理
数据结构&算法模块总结(1)复杂度分析原理与方法 (2)数组与链表原理和使用场景讲解 (3)栈原理与应用场景讲解 (4)队列原理与应用场景讲解 (5)递归原理与虚拟机栈场景应用 (6)二分查找及其应用场景 1.跳表与链表 ①原始链表查找效率为O(N) ②跳表优化思路:每隔两个或两个以上节点时,提取一个节点到上一级,抽取出来的一级称为索引或索引层。down指针,可以指向下一级结点。 这种链表加多级索引的结构,就是跳表。 例如要查找节点16,可以现在...
2021-09-22 01:05:22 1861
原创 (2)Mysql索引原理和优化总结
1.索引理解和常见面试题(1)本质 索引是一种能够高效获取数据的数据结构 索引存放在硬盘上 (2)常见面试问题①为什么用B+,而不用B、红黑树、AVL、二叉查找、Hash、跳表 二叉(不平衡):如图单边增长插入,查找最大值和全表扫描一样 树平衡(二叉->AVL):二叉查找树可能出现树不平衡,但AVL二叉平衡树是平衡的(查找会稳定些)! 树高度/多路平衡(AVL->Btree):AVL子节点数少于B树,树高度必然会高于B树(红黑树也一样,高度
2021-09-16 00:06:10 2050
原创 (1)Mysql架构和常用引擎介绍
1.MySQL逻辑架构图(1)Server层:包括图中XX,以及所有内置函数和所有跨存储引擎功能,比如存储过程、触发器、视图等。(2)存储引擎:负责数据存储与提取,支持InnoDB(5.5.5后默认)、MyISAM、Memory等存储引擎。注意:在create table时使用engine=memory可以指定引擎,且不同存储器共有同一Server层。(1)连接器:负责建立连接(TCP三次握手)、获取权限(用户已连接不受管理员权限修改,只有重新连接生效)。(建议不要再-p后直接拼接密码,
2021-09-15 23:33:06 2255
原创 (6)二分查找及其应用场景
数据结构&算法模块总结(1)复杂度分析原理与方法 (2)数组与链表原理和使用场景讲解 (3)栈原理与应用场景讲解 (4)队列原理与应用场景讲解 (5)递归原理与虚拟机栈场景应用 1.传统二分查找模板问题public int bsearch(int[] a, int n, int value) { int low = 0; int high = n - 1; while (low <= high) { int mid = (l
2021-09-13 22:51:03 3425
原创 (1)JVM体系结构面试简述
1.JVM五大部分(1)JVM五大部分作用简述 类加载器(Class Loader): 加载字节码文件到内存(次要) 运行时数据区(Runtime Data Area): JVM 核心内存空间结构模型(核心),其中方法区域和堆线程共享 执行引擎(Execution Engine): 对 JVM 指令进行解析,翻译成机器码,解析完成后提交到操作系统中。 本地库接口(Native Interface): 供 Java 调用的融合了不同开发语言的原生库。 本地方法
2021-09-12 00:14:50 2404
原创 (5)Kafka原理和高可用介绍
1.Kafka介绍(1)基本概念 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者的所有动作流数据。 这种动作如: 活动数据:网站用户行为数据,例如PV(页面浏览量),UV(用户访问量) 运营数据: 监控系统性能指标(cpu利用率、负载,内存使用率,磁盘利用率,IO性能) 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决,特性如下: 海量数据不可变 实时处理 对于像Hadoop的一样的日志数据和离线分析系统,...
2021-09-12 00:03:08 2672
原创 (5)递归原理与虚拟机栈场景应用
1.递归需要满足的三个条件①一个问题的解可以分解为几个子问题的解②这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样(子问题和父问题完全一样)③存在递归终止条件如经典递归跳台阶代码:int f(int n) {if (n == 1) return 1;return f(n-1) + 1;}2.递归缺点(1) 深度问题 递归会利用栈保存临时变量如果递归过深,会造成栈溢出。解决方案是控制递归的深度。// f(...
2021-09-06 01:14:13 2584
原创 (2)数组与链表原理和使用场景讲解
1.数组结构、原理和使用场景数组官方定义:数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。数组使用容易,但从线性表和非线性表角度思考效果更好一些。(1) 线性表顾名思义,线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。(2) 非线性表相对立的概念是非线性表,比如二叉树、堆、图等。之所以叫非线性...
2021-09-05 16:32:33 4418
原创 (1)复杂度分析原理与方法
// array表示⼀个⻓度为n的数组// 代码中的array.length就等于nint[] array = new int[n];int count = 0;void insert(int val) { if (count == array.length) { int sum = 0; for (int i = 0; i < array.length; ++i) { sum = sum + array[i]; ...
2021-09-05 16:03:54 2483
原创 (4)队列原理与应用场景讲解
1.链式队列和数组队列(1)数组队列 队列与栈的最大特点就是:队列有队头和队尾指针(下标),而栈只有顶端指针(下标)。 一句话总结两者特点:“队列吃多了会拉(头进尾出),而栈吃多了会吐 (头进头出)”public class ArrayQueue { private String[] items; // 数组 private int n = 0; // 数组大小 // ★★head表示队头下标,tail表示队尾下标。栈只有一个顶部下标! priva...
2021-09-05 14:54:36 2271 1
原创 (3)栈原理与应用场景讲解
1.顺序栈和链表栈(1)顺序栈①顺序栈基于数组,数组满时需要动态扩容②代码实现// 基于数组实现的顺序栈public class ArrayStack { private String[] items; // 数组 private int count; // 栈中元素个数 private int n; //栈的大小 // 初始化数组,申请一个大小为n的数组空间 public ArrayStack(int n) { thi
2021-09-05 14:13:17 2070
转载 SQL表连接Join含义
1.Join连接方式 内连接( inner join…on…) select * from A (inner) join B on A.id=B.id; 左(外)连接 select * from A left (outer) join B b on A.id=B.id; 右(外)连接(lright join…on…) select * from A right (outer) join B on A.id=B.id;
2021-08-22 13:58:24 1935
原创 (3)HDFS原理与高可用技术原理介绍
1.HDFS简介 HDFS也是由Doug Cutting基于Google公司03年10月开源的论文GFS做的开源实现。目前为止,HDFS的运用非常广泛,基本上很多大数据平台大部分都会选用HDFS(或者类似HDFS)这样的分布式文件系统、来作为海量数据存储的一个解决方案。最初在设计HDFS时的背景是当时设备的存储和读写性能都很差,并且单一设备运行稳定性低的情况(现在硬件设备优化很好了,目前HDFS已经不是最优方案了),于是HDFS在设计之初就是为了解决大规模、海量数据的存储以及读写,并且尽可能的保...
2021-08-21 00:31:54 3299
原创 (2)大数据技术综述总结
1.技术发展综述(1)两大重要事件 大数据技术发展的基础:03和04年Google开源了GFS以及MapReduce这两篇论文。其中,GFS(Google File System)提供了相对于传统存储方案,更加高效、海量的一种数据存储方案分布式文件系统。MapReduce是对于海量数据的高效的分布式计算框架。 大数据落地标志:之后Doug Cutting基于这这两篇文论通过Java做了开源实现,GFS对应于开源的HDFS,MapReduce名称不变,HDFS、MapReduce构...
2021-08-19 02:16:16 4112
原创 (1)大数据和应用场景介绍
1.大数据基本特征(1)传统数据与大数据的区别: Volume :从数据量上来说,传统数据规模相对较小,最大维持在GB-TB,而大数据领域中我们需要处理的数据集规模基本都是在TB、乃至PB级别以上; Variety:速度方面,从两个方面来说,第一、从数据的增长速度来说,随着互联网以及物理网的带动,数据量增长非常迅猛;第二、从数据的处理速度上来说,现实场景中我们需要更低延时的高效分析,例如一些秒级别、毫秒级别的实时分析。 Velocity:多样化,在数据类型上,除了传统的结...
2021-08-19 01:43:43 5400
原创 Git生产环境上commit提交多次解决办法
1.模拟测试环境:创建Test分支做测试,模拟commit提交多次(1)现在远程仓库上有两个分支,我们将使用Test(2)现在需要在本地也创建一个Test分支方便对应上(因为公司项目一般有上十分支,有些只是临时的开发完就删除) checkout不能直接创建(Test是本地分支名,fork_origin/Test是远程仓库别名+远程分支名) 应该直接创建分支:git branch -m Test (3)现在先push到远程Test分支,可以看到我这里的本地仓库昨天已经被com
2021-08-04 23:54:36 6966
原创 Git生产环境上管理fork项目更新
1.git remote -v 查看远程项目信息 其中origin是主项目,也就是我们要提交的最终分支。而fork_origin是从主项目上fork创建的分支(可以理解为复制了一份,可以单独更新不影响主项目),一般公司会有要求不让员工从本地直接提交merge request给主项目的对应分支 添加远程项目的命令为: git remote add trunk http://xxx.git #添加原项目repository,已经添加过则不需要执行2.真实场景问题:主项目...
2021-08-04 12:02:25 2882
原创 Hive中Floor函数精度计算问题
前言公司数据库部分产品基于Hive进行开发,其中出现一个Bug。Oracle中表t1有个字段类型为decimal(38,0),当Hive这边执行了select Floor(col) from dblink,显示 Floor函数计算的精度太大。但是select Floor(col) from oracle_table 在Oracle这边本身就可以执行,而且Floor的意思是取小于等于的最大整数。首先介绍一下精度问题:precision和scale1.数据库中precesion和scale问题
2021-07-30 23:59:30 4454
nltk数据最全资源(2021年官方已更新)
2021-01-29
湖北省农村信用化引入战略投资者可行性分析
2020-04-18
互联网消费信贷的发展分析——以蚂蚁花呗为例
2020-04-18
JavaWeb.zip
2020-04-18
C语言通讯录.cpp
2020-01-02
基于Python的实时考研调剂信息挖掘实现
2019-12-31
C语言矩阵操作.cpp
2019-12-31
C语言日期操作.cpp
2019-12-31
LDA源码复现和实现轻松讲解.zip
2019-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人