自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 IO多路复用,0拷贝,直接内存

BIO-> NIO -> 多路复用,是内核发生了变化BIO 多线程的缺点:大量线程上下文切换,线程利用率不高NIO的缺点:加入有1w连接,每次循环中的read都要进行一次系统调用,需要进行用户态内核态切换多路复用:一次系统调用可监控多个文件描述符的是否都相应事件发生select原理:将要监控的文件描述符以bitmap的方式传入内核空间,内核遍历传入的所有文件描述符,对满足条...

2020-02-26 21:10:32 660

原创 如何生成免密钥

免密钥(2)生成公钥和私钥:[atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)(3)将公钥拷贝到要免密登录的目标机器上[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102[atguigu@hadoop102 .ssh]$ s...

2020-02-18 23:43:55 265

原创 mysql之索引数据结构

数据结构的选择:数据库文件是存储在磁盘上,因此内存上的比较次数不再是操作的瓶颈,根据指针从磁盘IO读取数据的次数才是,磁盘与内存交互的单位一次是一页(4K)。红黑树:极端情况下,数据量大的时候,红黑树也很深(失衡时)hash:将所以列hash映射为存储地址,不支持查范围,地址重合什么是B+树:B树:实现方法:初始化度的大小(C)与负载因子(Y)当一个节点中元素的个数大于&gt...

2020-02-16 11:55:53 144

原创 日志收集 Flume

1.flume结构:一个flume进程就是一个agent=source+channel+sink在source channel sink之间流动的是list[exent]event=header+byte payload,一般header是空的,传输数据的单位flume串联的坏处:一个坏了全坏 好处:多级缓冲 处理复杂的逻辑 chanel处理器不宜进行...

2020-02-15 21:57:50 207

原创 java并发脑图

https://www.processon.com/view/link/5b71947ce4b0be50eadcdad0

2020-02-12 23:20:06 157

原创 copyONWriteArrayList

CAS:CAS 操作包含三个操作数 :内存偏移量位置(V)、预期原值(A)和新值(B)。 如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值 。否则,处理器不做任何操作。cas的aba问题:每次更改后在后面添加版本号Atomicatomic包的都是valotile变量HashMap的扩容和如何优化?如果知道自己的hashmap数据会很多,那么初始时就设置让他的...

2020-02-12 21:47:04 58

原创 消息中间件-kafka

kafka架构模型:kafka在zk中保存的元数据目录:producer写流程:1. producer 先从 zookeeper 的 "/brokers/.../state" 节点找到该 partition 的 leader2. producer 将消息发送给该 leader3. leader 将消息写入本地 log4. followers 从 leader pull 消息,写...

2020-02-12 16:18:14 133

原创 理解零拷贝

上面的图片是传统方式,需要两次copy,下面的是零拷贝方式

2020-02-12 11:04:53 79

原创 同步工具概览

ReentrantLock:• void lock() 获取锁,调用该方法当前线程将会获取锁,当锁获取后,该方法将返回。• void lockInterruptibly() throws InterruptedException 可中断获取锁,与 lock()方法不同之处在于该方法会响应中断,即在锁的获取过程中可以中断当前线程• boolean tryLock() 尝试非阻塞的获取锁,调用该...

2020-02-11 22:30:47 100

原创 spark shuffle细则及调优

什么是Spark Shuffle• 问题:每一个key对应的value不一定都是在一个partition中,也不太可能在同一个节点上,因为RDD是分布式 的弹性的数据集,他的partition极有可能分布在各个节点上。• 如何聚合?– Shuffle Write:上一个stage的每个map task就必须保证将自己处理的当前分区中的数据相同的key写入一 个分区文件中,可能会写入多...

2020-02-11 18:12:41 124

原创 spark Executor上的内存管理

2020-02-11 16:59:57 76

原创 saprk的reduce如何向map拉取文件

2020-02-11 16:58:21 76

原创 MapReducer的shuffle机制

2020-02-11 14:10:43 80

原创 spark任务调度源码分析

用到了,有向无环图,递归,栈,队列等

2020-02-11 13:19:30 107

原创 spark资源调度源码分析

2020-02-11 12:55:59 89

原创 JVM 垃圾回收算法

什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?一旦 Java 代码被编译为 Java 字节码,便可以在不同平台上的 Java 虚拟机实现上运行。此外,虚拟机还提供了一个代码托管的环境,代替我们处理部分冗长而且容易出错的事务,例如内存管理。Java 虚拟机将运行时内存区域划分为五个部分,分别为方法区、堆、PC 寄存器、Java 方法栈和本地方法栈。Java 程序编译而成的 ...

2020-02-11 10:26:10 70

原创 java之线程

线程实现的方式及区别:Runnable、Thread、Callable实现 Runnable 接口相比继承 Thread 类有如下优势 1)可以避免由于 Java 的单继承特性而带来的局限 2)增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的 3)线程池只能放入实现 Runable 或 Callable 类线程,不能直接放入继承 Thread 的类实现 Runnable 接...

2020-02-10 23:02:39 163

原创 java并发之线程池

Java 中有几种线程池?普通线程池 ThreadPoolExecutor定时线程池 ScheduledThreadPoolExecutor线程池架构轮廓:Worker继承了AQS,其他四个各自代表一种拒绝策略ThreadPoolExecutor的两种执行方式的区别:Submit 和 execute 方法1、有返回值和无返回值2、Task 不一样 futuretas...

2020-02-10 22:47:25 88

原创 spark之初识算子

算子:完整的spark代码执行下来叫做一个application,有多个job个数与action算子相同。action触发流程:RDD-->RDD-->RDD-->RDD,不持久化情况下,每次action触发都会从头计算具体的算子算子分为两类,action算子与transformation算子,持久化算子属于transformation算子action算子不会...

2020-02-09 21:45:21 125

原创 spark之任务调度

从job触发到结束任务调度可以从一个Action类算子开始。因为Action类算子会触发一个job的执行。然后划分stage,以taskSet形式提交任务。什么是stage:如何划分stage,根据宽依赖:宽窄依赖:每个stage的数据处理模式:任务如何调度1.从job到task执行有哪几个主要的类...

2020-02-09 21:20:57 97

原创 spark:初识RDD、任务提交模式

算子:完整的spark代码执行下来叫做一个application,有多个job个数与action算子相同。action算子不会返回RDD,transformation总是返回RDD。transfoamation:懒执行,只有当action算子出现才会执行,否则不执行。count返回数据集中的元素数。会在结果计算完成后回收到Driver端。take(n)返回一个包含数据集前n个元...

2020-02-09 14:09:34 197

原创 synchronized、volatile轮廓

synchronized:monitor对象对象:对象头,实例变量,填充信息偏向锁 --> 轻量级锁(自旋锁) --> 重量级锁保证原子性,可见性(?),有序性(?)volatile:内存屏障 cpu执行时指令重排 mesi缓存一致性协议、store buffer,异步执行...

2020-02-08 16:22:40 70

原创 初识scala

scala:1)类的声明 class cc(x:Int=1){ }2)object的声明 object gg(){ } 里面声明的变量与方法都是静态的,main方法在里面3)方法的声明 def 函数名(参数名:参数类型[=default值]):返回值类型={ }4)变量的声明 val:常量,推荐使用 var5)trait的...

2020-02-07 19:43:25 83

原创 hbase性能优化初探

表的设计 1. 考虑提前设置多个region‘ 2. 列族尽量少 3. raw key的设计:尽量短,有利于业务需求,尽量散列开考虑提前设置多个region‘默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创...

2020-02-06 16:05:34 106

原创 hbase之protocol buffer

Protobuf 是什么?是一种数据存储格式,能将一个对象描述为若干字节,同时也具备从它描述的若干字节解析为一个对象的能力。主要三个优点:1)用户要做的仅仅是给出数据的描述便可以生成对应源文件,无需自己开发想要的Reader和Writer2)采用Varint 等方式编码,将对象串行化后的数据比其它工具的要小3)以key-value方式存储,解析速度很快<资料>下面的wor...

2020-02-06 12:25:23 246

原创 zookeeper原理(一)

zookeeper:dataTree,日志文件等一、过半机制:>n/2脑裂(奇数个节点):考虑一个集群,一个机房有3台,一个机房有4台,如果两个机房网络断了,如果这时候再没有过半机制,那么这两个机房里的集群可能各选出一个leader,它们又开始了运行(这就叫脑裂),这时外界可能将数据存在一个集群,然后从另外的集群读取 相关的数据。而过半机制可以避免脑裂,但如果两机房的服务器数量一样多...

2020-02-05 20:17:15 175

原创 初识habse

1、hbase是什么,基于hdfs的非关系型数据库,可存储非结构化半结构化数据,实时,高性能hbase数据模型:2、hbase架构:client zookeeper HMaster regionserver regionserver regionserver dfsclient dfsclient dfsclie...

2020-02-04 19:43:12 191

原创 初识Hive

hive利用元数据将结构化文件映射成一张表数据的流入流出均是hdfs,元数据的存储在自己的关系型数据库中函数:内部表,外部表:默认创立内部表,删除内部表,元数据和数据一起删除,删除外部表只删除元数据分区:1.静态分区2.动态分区优点:有利于提高查询的速度分桶:应用场景:map join,数据抽样视图:类似于mysql,其本质是一条sql语句,可以将复杂sql语句简便化索...

2020-02-03 16:53:01 84

原创 hadoop重要组件

1.hdfs重要组件:ConfigrationFileSystemFileStatusBlockLocationPathIOUtils2.mapreduce重要组件Fileinputformat:计算切片信息的默认组件FileoutputformatMapperReducerLineRecordReader:默认进行切片读取的组件(initialize方法)MapperT...

2020-02-02 11:45:56 131

空空如也

空空如也

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

TA关注的人

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