KM

Java IO基础知识

分类 输入输出流 根据数据流向的不同,IO分为两大类,一类是输入流,一类是输出流。 输入流:只能从中读取数据,而不能写入数据。输出流:只能向其中写入数据,而不能读取数据。 字符字节流 根据处理的数据单元的不同,可以分为两类,一类是字符流,一类是字节流。字节流和字符流的用法几乎一样,区别在于字符流就是专门用来处理字符的。字符流的本质其实是由于数据编码的不同,字节字符流在处理数据时,查...

flink运行架构

flink运行组件 作业管理器(JobManager) JobManager负责管理应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的JobManager控制 JobManager会先接收要执行的应用程序,这个应用程序包括:作业图(JobGraph)、逻辑数据流图(logical dataflow graph)和打包了所有的类、库和其他资源的jar包 JobMan...

InnoDB存储引擎(1)

InnoDB体系架构 从上图可以看到,Innodb内部由多个内存块构成了内存池,主要负责以下工作: 维护所有进程/线程需要访问的多个内部数据结构。 缓存磁盘中的数据,并且修改后的数据先缓存在缓存池中。 redo log缓冲。 …. 后台线程 后台线程的主要作用是负责刷新内存池中的数据,保证缓存池中的内存缓存的是最近的数据。同时将已修改的数据文件刷新到磁盘。 ...

I/O模型学习

为什么会有多种IO模型 对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说,当一个read操作发生时,它会经历两个阶段: 等待数据准备 (Waiting for the data to be ready) 将数据从内核拷贝到进程中 (Copying the data from the ker...

Kerberos集群配置

在实习的时候接触到了kerberos,按照网上的博客搞了好久才把kerberos调通,调通后续还是遇到了许多关于kerberos的问题,在这里我使用本机的三台虚拟机,搭了个开启kerberos的kafka,把整个流程给记录下,以后如果还有需要自己搭建kerberos的话,有个参考~。 整个配置流程: 首先在其中某台机器上安装kdc,其他几台机器安装kerberos客户端即可,安装过程这里...

LSM

LSM(Log Structured Merge Trees),LSM-Tree应用于HBase、Druid等大数据组件中,它也是一种树形的数据结构,那它和之前所学的B+树、B树这些有什么区别呢(B树、B+树相关的可以看这篇B树、B+树、红黑树、AVL树)。 众所周知,无论是机械硬盘(HDD),还是固态硬盘(SSD),对数据的顺序读写都远高于随机读写(差距至少是三个数量级),而在前面的博客...

Druid初识

由于实习工作的需要,需要使用Kafka+Druid+grafana,将kafka数据导入到Druid并使用grafana进行数据的可视化,在这里记录下Druid的学习笔记。(注:这里的Druid不是阿里的那个druid数据库连接池,这两个是完全不一样的东西,这里的Druid仍然是apache开源的) 什么是Druid Druid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数...

JDK源码阅读—ThreadPoolExecutor

ThreadPoolExecutor是Java中的线程池 ThreadPoolExecutor继承了AbstractExecutorService,而AbstractExecutorService实现了ExecutorService接口,ExecutorService继承了Executor,关于这几个类之间的关系,可以看下深入理解 Java 线程池:ThreadPoolExecutor ...

ElasticSearch初识

索引增删改查 创建索引 格式:PUT /索引名/Type名/id PUT /ecommerce/produce/1 { “name” : “gaolujie yagao”, “desc” : “gaoxiao meibai”, “price” : 30, “producer” : “gaolujie producer”, “tags” : [“meibai”,”fa...

Mapreduce原理

Map过程 第一阶段把输入文件按照一定的标准分片(InputSplit),每个输入分片的大小是固定的,默认情况下,输入分片的大小和数据块(block)的大小是相同的,每一个分片由一个Map进程处理。 第二阶段是把输入分片的数据按照一定的规则解析成键值对,默认规则是以文件每一行的内容为值,每一行起始位置的字节作为键 第三阶段是调用Mapper的Map方法,第二阶段有多少键值对,...