摘要:
1、rowKey设计原则: (1)rowkey 长度原则: rowkey是一个二进制码流,可以为任意字符串,最大长度为64kb,实际应用中一般为10-100bytes,它以byte[]形式保存,一般设定成定长。一般越短越好,不要超过16个字节,注意原因如下: 1、目前操作系统都是64位系统,内存8字 阅读全文
摘要:
一、Spark中的基本概念 1、spark中的概念: (1)Application:指的是用户编写的Spark应用程序,包含了Driver功能代码和分布在集群中多个节点上运行的Executor代码。Spark应用程序,由一个或多个作业JOB组成 https://blog.csdn.net/liuxi 阅读全文
摘要:
什么是ThreadLocal变量 ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。这里有几点需要注意: 因为每个 Thread 内有自己的实例副本,且该副本只能由当前 Thread 使用。这是也是 ThreadLocal 阅读全文
摘要:
1、悲观锁: 执行操作前假设当前的操作肯定(或有很大几率)会被打断(悲观)。基于这个假设,我们在做操作前就会把相关资源锁定,不允许自己执行期间有其他操作干扰。Redis不支持悲观锁。Redis 作为缓存服务器使用时,以读操作为主,很少写操作,相应的操作被打断的几率较少。不采用悲观锁是为了防止降低性能 阅读全文
摘要:
1、redis 是单线程的为什么还这么快 1)完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。 2)数据结构简单,对数据操作也简单,Redis 中的数据结构是专门进行设计的。 3)采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁 阅读全文
摘要:
1、平衡二叉树:若一个二叉树,任意节点的深度差不超过1,这个二叉树就是平衡二叉树。 2、如何判断一个树是平衡二叉树:求每个节点的左子树和右子树的深度,做差。 参看剑指offer:https://www.cnblogs.com/guoyu1/p/12190567.html 阅读全文
摘要:
1. join时将大表放后,小表放在前 正确的说法:把重复关联键少的表放在join前面做关联可以提高join的效率,实际操作中也没法看什么重复连接键多少,因此一般都是小表在前了,表越少,重复的连接键总量就越少。 因此通常需要将小表放前面,或者标记哪张表是大表:/*streamtable(table_ 阅读全文
摘要:
正向代理:a通过b向c借钱,a知道c的存在。 反向代理:a 通过b借钱,b找c借钱,a不知道c的存在。 https://www.cnblogs.com/puls/p/8634505.html 阅读全文
摘要:
Scala提供的隐式转换的特性的作用,简单说就是:当Scala编译器进行类型匹配时,如果找不到合适的类型,那么隐式转换会让编译器在作用范围内自动推导出合适的类型,在代码重构设计上,可以避免冗余的代码,使得代码非常优雅。 使用场景一:隐式参数 scala> def sayHello(age: Int) 阅读全文
摘要:
1、spark中默认的分区器: Spark目前支持Hash分区和Range分区,用户也可以自定义分区,Hash分区为当前的默认分区,Spark中分区器直接决定了RDD中分区的个数、RDD中每条数据经过Shuffle过程属于哪个分区和Reduce的个数。 只有Key-Value类型的RDD才有分区器的 阅读全文