摘要: (一)Kafka Kafka是一个基于zookeeper的高吞吐低延迟的分布式的发布、订阅消息系统【消息队列】。它能实时处理大量的消息数据以满足各种需求。Kafka是中间件的一种。 在java高并发中有 生产者-消费者-仓库模式。为解决生产能力和消费能力不匹配的问题。其中,仓库是为了降低生产者和消费 阅读全文
posted @ 2020-11-09 13:39 IT迷途小书童 阅读(155) 评论(0) 推荐(0) 编辑
摘要: (一)多线程API 1. 进程和线程 进程:操作系统管理的基本运行单位。也是资源分配的最小单位。进程内的线程共享这部分资源。 线程:进程中独立运行的子任务。 2. 常用的方法 (1) CurrentThread() 返回正在调用代码的那个线程。(需要注意:自定义线程中,只有run方法中执行的时候,c 阅读全文
posted @ 2020-11-09 13:30 IT迷途小书童 阅读(65) 评论(0) 推荐(0) 编辑
摘要: (一)内存管理 内存管理指的是executor的内存管理。 1. 内存分类--堆内存和堆外内存 内存分类分为 堆内存和堆外内存。堆内存分为存储storage内存、execution运算内存、other内存。比例是6:2:2 堆内存:Executor内存管理是建立在JVM内存管理之上的。JVM内存就是 阅读全文
posted @ 2020-11-09 13:08 IT迷途小书童 阅读(216) 评论(0) 推荐(0) 编辑
摘要: (一)任务(作业)调度 任务调度相关的3个概念:job、stage、task。 Job:根据用的的spark逻辑任务。以action方法为界,遇到一个action 方法,则触发一个job。 Stage:stage是job的子集。以宽依赖(shuffle)为界。遇到遇到一个shuffle,做一次划分。 阅读全文
posted @ 2020-11-09 13:06 IT迷途小书童 阅读(121) 评论(0) 推荐(0) 编辑
摘要: (一)RDD、DataFream、DataSet 理解 1. RDD理解 (1) RDD定义为弹性分布式数据集合。 MR运算之间数据共享差: MR的计算之间的数据共享只能通过将数据写入外部存储系统。后一步计算需要从外部存储系统中加载进来的方式进行。 Spark 思路相反,设计了一种抽象-RDD(弹性 阅读全文
posted @ 2020-11-09 13:00 IT迷途小书童 阅读(167) 评论(0) 推荐(0) 编辑
摘要: YARN是hadoop的资源调度平台。 1. YARN的基本架构 YARN由以下几个组件组成。Resource Manager、Node Manager、Application Master和Container组成。 Resource Manager :RM是一个全局的资源管理器。负责整个系统的资源 阅读全文
posted @ 2020-11-09 12:52 IT迷途小书童 阅读(103) 评论(0) 推荐(0) 编辑
摘要: MR是HADOOP的核心计算框架。是一个可容错的并行处理集群。 1. 核心思想 MR的核心思想是分而治之(本来是基于整体数据的运算,结果将数据数据分割成很多个小的数据集。然后并行计算这些小数据集,最后将每个小数据集的计算结果进行汇总。得到最终的计算结果)。 整个过程分为Map阶段和Reduce阶段。 阅读全文
posted @ 2020-11-09 12:51 IT迷途小书童 阅读(157) 评论(0) 推荐(0) 编辑
摘要: (一)HDFS 分布式文件系统,用于大数据的存储。具有高容错性、高可靠性、高可扩展型和高吞吐量等特征。 1. HDFS架构 HDFS是master/slave架构设计模式。一个HDFS集群有一个元数据节点(NameNode)和一些数据节点(DataNode)组成。NameNode是主节点,主要用来存 阅读全文
posted @ 2020-11-09 12:50 IT迷途小书童 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 高效并发 TPS:每秒事务处理数。 1. JAVA的内存模型 JAVA内存组织为主内存和工作内存两部分。 (1) 主内存 所有线程所共享的。主要包括本地方法区和堆。 (2) 工作内存 每个线程都有一个工作内存,不是共享的。工作内存包含两部分。 l 该线程私有的栈 l 主内存部分变量拷贝的寄存器(程序 阅读全文
posted @ 2020-11-09 11:52 IT迷途小书童 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 执行子系统 虚拟机和物理机的区别。两种都有代码执行能力。物理机的执行引擎是建立在处理器、硬件、指令集和操作系统上。而虚拟机的执行引擎是有自己实现的。因此可以自行的制定指令集和执行引擎的结构关系。 个人理解:分为三个部分。分别是方法的表示,栈帧结构【程序计数器、java虚拟机栈【局部变量表、操作数栈、 阅读全文
posted @ 2020-11-09 11:50 IT迷途小书童 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 1. 判断对象存活 回收内存首先需要判断,那些内存需要回收。即需要判断那些对象还存活着,则这些是不需要被回收的。 (1) 引用计数法 原理:对象中添加一个引用计数器。被引用则累计。则计数器中数值大于0,则代表仍然被引用,不能被回收。 缺点:不能解决循环引用的情况。 (2) 可达性分析法 原理:从一些 阅读全文
posted @ 2020-11-09 11:47 IT迷途小书童 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 虚拟机整体内存结构如下: 1. 内存区域 内存区域核心包含以下几部分:程序计数器、JAVA虚拟机栈、本地方法栈、方法区和堆。有的是线程级别的【一个线程会单独启动一个内存区域】,比如:程序计数器、JAVA虚拟机栈、本地方法栈。有的是虚拟机启动就存在的,不同线程共享使用。比如:堆和方法区。所有线程加载的 阅读全文
posted @ 2020-11-09 11:45 IT迷途小书童 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 1. 类加载过程 JAVA动态类加载功能是由类加载器子系统完成。它是在运行时加载的(而不是编译时-也就是说准备使用类的时候才开始加载)。分为三个结点。加载、链接、初始化该类文件。其中,链接阶段包含验证、准备和解析三个子流程。 (1) 加载 加载主要是将.class文件(并不一定是.class。可以是 阅读全文
posted @ 2020-11-09 11:42 IT迷途小书童 阅读(74) 评论(0) 推荐(0) 编辑
摘要: JAVA 虚拟机整体回顾 阅读全文
posted @ 2020-11-09 11:30 IT迷途小书童 阅读(128) 评论(0) 推荐(1) 编辑