- 博客(15)
- 收藏
- 关注
原创 yarn调度器及队列
yarn调度器前言Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。所以给任务分配资源则是yarn的核心功能之一。调度器在YARN中,提供了三种调度器(Scheduler):FIFO, Capacity, Fari。调度效果如下图:FIFO调度器FIFO调度器也就是平时所说的先进先出(First In First Out)调度器。FIFO调度器是Hadoop最早应用的一种调度策略,可以简单的将其理解为一个Java队列,它的含义在于集群中同时只能有一个作业在运行。将所有的Appl
2021-06-17 15:59:29
957
原创 java流
IO流IO流用来处理设备之间的数据传输,传输是通过流的方式Java用于操作流的对象都在java.io包中流就是指一连串流动的字符,以先进先出的方式发送信息的通道。流的方式按照流的方向划分输入流:将外部数据源的数据转换成流,程序通过读取流中的数据,完成对数据源读取的访问输出流:将流中的数据转换到对应的数据源中,程序通过向流中写入数据,完成对数据源写入按照类型划分字节流:以字节为单位(8位),可以访问所有文件字符流:以字符为单位(16位Unicode),只能访问文本文件
2021-04-02 14:36:35
174
原创 线程状态
一.对线程状态正确的理解:在java中,有一个枚举类来专门描述线程的状态,如下public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state for a runnable thread. A thread in the runnable
2020-10-15 15:22:58
83
原创 Kafka的基本原理和简单用法
未写完,待更一.简介Kafka 是一个实现了分布式、分区、提交后复制的日志服务。它通过一套独特的设计提供了消息系统中间件的功能。二.快速入门三.kafka术语消息消息是kafka中最基本的数据单元。消息由一串字节构成,其中主要由key和value构成,key和value也都是byte数组。key的主要作用是根据一定的策略,将消息路由到指定的分区中,这样就可以保证包含同一key的消息全部写入到同一个分区中,key可以是null。为了提高网络的存储和利用率,生产者会批量发送消息到kafka,并.
2020-08-04 16:45:49
472
原创 LTS分布式任务调度
LTS文档LTS(light-task-scheduler)主要用于解决分布式任务调度问题,支持实时任务,定时任务和Cron任务。有较好的伸缩性,扩展性,健壮稳定性而被多家公司使用,同时也希望开源爱好者一起贡献。框架概况LTS 有主要有以下四种节点:JobClient:主要负责提交任务, 并接收任务执行反馈结果。JobTracker:负责接收并分配任务,任务调度。TaskTracker:负责执行任务,执行完反馈给JobTracker。LTS-Admin:(管理后台)主要负责节点管理,任务队列
2020-08-04 14:44:14
2271
1
原创 java多线程学习笔记 --番外篇 多线程并发最佳实践
多线程并发最佳实践使用本地变量使用不可变类最小化锁的作用域范围:S=1/(1-a+a/n)使用线程池的Executor,而不是直接new Thread执行宁可使用同步也不要使用线程的wait和notify使用BlockingQueue实现生产-消费模式使用并发集合而不是加了锁的同步集合使用Semaphpore创建有界的访问宁可使用同步代码块,也...
2020-03-28 15:11:46
252
原创 java多线程学习笔记 --番外篇.J.U.C
J.U.C容器集合关系图线程分类大体分为两种:Iterable (Collection)QueueArraryDeque(实现了Deque的接口并继承了AbstractCollection类)ListLinkedList(实现了Deque接口和List接口)ArraryList(继承AbstractList类,AbstractList继承AbstractCollec...
2020-03-27 15:44:16
111
原创 java多线程学习笔记 --七.高并发处理思路和手段
高并发处理思路和手段扩容扩容—概念垂直扩容:提高系统部件能力(提升每辆卡车的运木材的多少)水平扩容:增加更多系统成员实现(增加卡车数量,例如集群)扩容—数据库读操作扩展:memcache,redis,CDN等缓存写操作扩展:Cassandra,Hbase等缓存缓存的特征命中率:命中数/(命中数+没有命中数)最大元素(空间)清空策略:FIFO,LFU,LRU,过期...
2020-03-26 13:08:50
156
原创 java多线程学习笔记 --六.线程池Executor
线程池Executornew Thread弊端每次new新建对象,性能差线程缺乏统一的管理,可能会无限制的新建线程,相互竞争,有可能占用过多系统资源导致死机或者OOM缺少更多的功能,如更多的执行,定期执行,线程中断线程池的好处重用存在的线程,减少对象创建 消亡的开销,性能佳可以有效的控制最大并发线程数,提高系统资源利用率,同时可以避免过多资源竞争,避免阻塞提供定时执行,定期执...
2020-03-25 19:33:56
145
原创 java多线程学习笔记 --五.AQS
J.U.C - AQS AbstractQueuedSynchronizerAQS简介AQS全名:AbstractQueuedSynchronizer,是并发容器J.U.C(java.lang.concurrent)下locks包内的一个类。它实现了一个FIFO(FirstIn、FisrtOut先进先出)的队列。底层实现的数据结构是一个双向列表Sync queue:同步队列,是一个双向列...
2020-03-24 20:11:43
163
原创 java多线程学习笔记 --四.线程安全策略
不可变对象概念通过在某些情况下,将不会修改的类对象设计成不可变对象,来让对象在多个线程间是线程安全的,其实就是相当于躲避了并发的问题。不可变对象满足的条件对象创建后其状态不能修改对象的所有域都是final类型(这样只能对每个域赋值一次,通过构造器初始化所有成员,进行深度拷贝,在get方法中不直接返回对象本身,而是克隆对象并返回克隆)对象是正确创建的(在对象创建期间,this引用没有逸...
2020-03-23 13:55:17
175
原创 java多线程学习笔记 --三.安全发布对象与多种单例模式
概念发布对象:使一个对象能够被当前范围之外的代码所使用。在我们的日常开发中,我们经常要发布一些对象,比如通过类的非私有方法返回对象的引用,或者通过公有静态变量发布对象。对象逸出:一种错误的发布。当一个对象还没有构造完成时,就使它被其他线程所见。代码演示见代码在publish包中安全发布对象示例(多种单例模式演示)1、在静态初始化函数中初始化一个对象引用2、将对象的引用...
2020-03-21 15:17:20
113
原创 java多线程学习笔记 --二.线程安全性
线程安全性线程安全性概念在多线程访问的情况下,程序还能够按照预期的行为去执行,(跟串行执行结果一样)原子性:提供了互斥访问,同一时刻只能有一个线程来对它进行操作可见性:一个线程对主内存的修改可以及时的被其他线程观察到有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序的存在,该观察结果一般杂乱无序原子性原子性–atomic包代码演示 count包AtomicXXX:C...
2020-03-20 11:21:29
131
原创 java多线程学习笔记--一.多线程的基础知识
需要学习的知识多线程基础知识讲解参考索隆和jim的视频,以及自己做的笔记导读为了充分利用CPU资源,人们发明了线程和进程进程由来:在单核cpu的时期,为了方便操作把一系列的操作的指令写下来,形成一个清单,一次性的交给计算机,这就是批处理系统。这样有很大的问题,在一个程序I/O操作时,cpu处于闲置状态,这样就浪费了cpu的性能进程的由来总结:这要从硬件谈起,cpu 内存 ...
2020-03-19 18:28:50
171
转载 SCRT安装
注意有残疾 没有FX 介意的朋友转战CRT8.0完整版吧 给你们连接:http://blog.csdn.net/sinat_29461437/article/details/790926271-9为&
2019-02-20 15:32:45
6443
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人