![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据
大数据常见基础知识和问题
埋头陆
学无止境
展开
-
柯里化(Currying)技术
柯里化(Currying)技术 Christopher Strachey 以逻辑学家 Haskell Curry 命名的(尽管它是 Moses Schnfinkel 和 Gottlob Frege 发明的)。它是把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数且返回结果的新函数的技术。object Demo { def main(args: Array[String]): Unit = {原创 2021-03-02 15:50:51 · 171 阅读 · 0 评论 -
关于Zookeeper的原子广播和崩溃恢复
ZAB协议一、概念1.ZAB(Zookeeper Atomic Broadcast)是一套专门为Zookeeper设计的用于原子广播和崩溃恢复的协议2.ZAB基于2PC算法进行设计,利用了过半性和PAXOS算法进行了改进Atomic Broadcast - 原子广播二、Atomic Broadcast - 原子广播1.作用:保证数据一致性。(强一致性+最终一致性)2.原子广播基于2PC进行设计的3.2PC - Two Phase Commit - 二阶段提交 &nbs原创 2021-02-22 17:28:47 · 437 阅读 · 0 评论 -
zookeeper的客户端框架Curator,封装了Zookeeper的基本操作,并且还提供了一些高级特性
import org.apache.curator.RetryPolicy;import org.apache.curator.framework.CuratorFramework;import org.apache.curator.framework.CuratorFrameworkFactory;import org.apache.curator.framework.recipes.cache.TreeCache;import org.apache.curator.framework.recip原创 2021-02-22 15:11:32 · 161 阅读 · 0 评论 -
Atomiclnteger的使用场景和底层原理
1.说说Atomiclnteger的使用场景 AtomicInteger提供原子操作来进行Integer的使用,适合并发情况下的使用,比如两个线程对同一个整数累加。2.为什么Atomiclnteger是线程安全的,原理是什么 AtomicInteger是对int类型的一个封装,提供原子性的访问和更新操作,其原子性操作转载 2021-02-22 11:10:53 · 883 阅读 · 0 评论 -
红黑树基础知识,帮助小白更好理解!
红黑树1.本质上是一种自平衡二叉查找树2.二叉查找树的特征⑴左子树小于根,右子树大于根⑵没有相等的节点3.红黑树的特征⑴所有节点非红即黑⑵根节点必须是黑节点的⑶红节点的子节点必须是黑色的⑷最底层的叶子节点必须是黑色的空节点⑸从根节点到任意一个叶子节点经过的路径中的黑色节点个数一致,即黑节点高度相同⑹新添的节点颜色必须是红色的4.红黑的修正 - 前提:父子节点为红⑴涂色:叔父节点为红,那么将父节点和叔父节点涂黑,将祖父节点涂红⑵左旋:叔父节点为黑,且子节点是右子叶,那么需要以子节点原创 2021-02-22 10:17:19 · 146 阅读 · 0 评论 -
Java-BlockingQueue 接口5大实现类的使用场景
关于BlockingQueueBlockingQueue即我们所说的阻塞队列,它的实现基于ReentrantLock,通常我们谈及到阻塞队列,都会和生产者/消费者模式关联起来(这是最常用的场景),和一般的非阻塞队列区别在于实现生产者/消费者模式中不需要额外的实现线程同步和唤醒。标题中说的是五大实现类,但是该接口实际上拥有7个实现类,它们的区别主要体现在存储结构上或对元素操作上的不同,如下:ArrayBlockingQueue :一个由数组结构组成的有界阻塞队列。LinkedBlockingQueue转载 2021-02-16 15:30:25 · 674 阅读 · 0 评论 -
NIO中的三大组件:Buffer、Channel、Selector基础知识,小白须知
一、NIO1.它是同步非阻塞式IO2.同步:一个对象在某个时段,只能被一个线程使用3.非阻塞:线程无论是否获取到结果,都会继续往下执行或者报错4.IO:传输数据二、NIO三大组件1.Buffer(缓冲区)⑴作用:临时存储数据⑵Buffer底层是基于数组来进行存储的,只能存储基本类型的数据。Buffer针对八种基本类型,提供了7个实现类,唯独没有针对boolean类型的实现类⑶重要位置:capacity >= limit >= position  原创 2021-02-16 14:32:13 · 396 阅读 · 4 评论