Sean's Blog

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

读HashMap源码

发表于 2019-03-07 | 更新于 2019-03-14 | 分类于 Java | 评论数: | 阅读次数:

前言

HashMap是Java中常用的数据结构,是集合类中的重要存在,其中包含了散列表、链表和红黑树。散列表解决冲突的方法是链地址法,即将散列值相同的元素存放在一个链表中。当冲突过多,链表过长会造成查找效率降低,因此java8中在HashMap中引入红黑树进行优化,当某个散列值下的链表长度过长(长度大于8),会将其转变为红黑树存储,优化查询。涉及到红黑树的操作不会再这里细讲

阅读全文 »

ambaria安装HDP

发表于 2019-03-07 | 分类于 Hadoop | 评论数: | 阅读次数:

前言

Hadoop的生态非常的庞大,如果要对其一一搭建,并配置好相应的配置文件,需要耗费很大的精力和时间。利用Ambari + HDP能帮助我们快速搭建Hadoop平台,同时Ambari提供了监控集群的功能,能在其上面方便的添加Hadoop生态的组件以及相关的分布式框架,如spark,kafka等等。

阅读全文 »

Hadoop的搭建

发表于 2019-02-25 | 分类于 Hadoop | 评论数: | 阅读次数:

前言

Hadoop的搭建此次分为伪分布式和分布式,伪分布式分为windows和mac Os、Linux

伪分布式

Hadoop的伪分布式搭建需要提前安装好jdk1.8,选用hadoop3.0.0版本,官方提供的二进制和源码下载网址:https://archive.apache.org/dist/hadoop/common/hadoop-3.0.0/ ,此次的搭建使用二进制包安装,不涉及源码的编译,所以下载的文件为hadoop-3.0.0.tar.gz。

Windows

首先将下载好hadoop-3.0.0.tar.gz压缩包,解压到合适的目录下(目录位置用于配置环境变量,用户可以自行选择),为了接下来方便配置的讲解,假设本次例子解压目录为:E:\hadoop-3.0.0,后文的hadoop的xx目录都是该目录下的子目录。

阅读全文 »

InnoDB数据页结构及其与聚簇索引的关系

发表于 2018-12-24 | 分类于 Mysql | 评论数: | 阅读次数:

表空间

InnoDB中数据都存放在一个空间中,就是表空间。在文件系统中就是idb文件,每个idb文件都是一个表空间。它们之间通过表空间id来区分,在默认情况下,InnoDB使用的是共享表空间,所有数据存放在一个共享表空间ibdata1中。共享表空间可以通过参数innodb_data_file_path进行配置。

可以同时配置多个文件组成一个共享表空间,如

1
innodb_data_file_path=/data/ibdata1:2000M;/data/ibdata2:2000M:autoextend

这里配置了/data/ibdata1和/data/ibdata2两个文件组成表空间,如果两个文件在不同磁盘上,能降低各个磁盘的负载,可以提高数据库的性能。同时,两个文件名后跟了存储大小,表示文件的最大存放空间,而autoextend表示/data/ibdata2若用完了2000M,文件可以自动增长。

阅读全文 »

布隆过滤器-Bloom Filter

发表于 2018-12-18 | 更新于 2019-08-13 | 分类于 算法 | 评论数: | 阅读次数:

简介

​ Bloom Filter是由 Burton Howard Bloom在1970提出的,用来判断一个元素是否存在集合中的概率算法。经过Bloom Filter判断过不在集合中的元素就一定不在集合中,若判断结果是在集合中,则可能会误判,即该元素可能不在集合中。换句话说,可能会误判,但绝不可能漏判。元素可以添加到集合中,但不会被删除(尽管可以通过“计数”过滤器来解决); 添加到集合中的元素越多,误判的概率就越大。Bloom Filter将元素映射到位数组中,所以极大的节省空间。

阅读全文 »

超平面

发表于 2018-12-10 | 分类于 算法 | 评论数: | 阅读次数:

什么是超平面

数学中的超平面

以下内容均来自:https://www.cnblogs.com/dengdan890730/p/5554787.html

在数学中,超平面(Hyperplane)是n维欧氏空间中余维度等于1的线性子空间。这是平面中的直线、空间中的平面之推广.

$n$维超平面的方程定义为:

​ $a_1x_1+…+a_nx_n=b$,其中$a_1,…,a_n$是不全为0的常熟

​ 即$w^Tx+b=0,$

阅读全文 »

HBase客户端的写缓存BufferedMutator

发表于 2018-11-28 | 分类于 HBase | 评论数: | 阅读次数:

客户端的写缓存

HBase的每一个put操作实际上是一个RPC操作,将客户端的数据传输到服务器再返回结果,这只适用于小数据量的操作,如果数据量多的话,每次put都需要建立一次RPC的连接(TCP连接),而建立连接传输数据是需要时间的,因此减少RPC的调用可以提高数据传输的效率,减少建立连接的时间和IO消耗。

HBase的客户端API提供了写缓存区,put的数据一开始放在缓存区内,当数量到达指定的容量或者用户强制提交是才将数据一次性提交到HBase的服务器。这个缓冲区可以通过调用 HTable.setAutoFlush(false) 来开启。而新版HBbase的API中使用了BufferedMutator替换了老版的缓冲区,通过BufferedMutator对象提交的数据自动存放在缓冲区中。

阅读全文 »

HBase 简介

发表于 2018-11-28 | 更新于 2019-08-22 | 分类于 HBase | 评论数: | 阅读次数:

数据模型

在Hbase中,数据同样是存储在表中,有行和列。但是hbase和关系型数据库(RDBMS)有很大的区别,hbase更像是多维度的map。

hbase的同样有着表(table), 行(row),列(Column),根据表、行、列可以定位到一个单元格(cell)上,这样看来hbase和关系型数据库形式一样,其实不是的,hbase的列包括列簇(column family)和列限定符(column qualifier),一般将列限定符成为列,一行有固定的列簇(由表结构决定),一个列簇包含一系列的列,列没有固定的结构,每一行的列簇下的列可以不相同,列由添加数据决定,可以将hbase的表想象成一个Map<row, Map<column family,Map>>,由行、列簇寻找一个key不固定的map。而且相同单元格会存储着不同的版本值,每一次存储新值会添加时间戳Timestamp,并不会覆盖掉上次值,一个hbase表默认能存储三个版本值,若第四次设置新增,则会把第一次的值覆盖掉。因此一个单元格的定位需要row,family,qualifier和timestamp来确定。

阅读全文 »
123

sean

24 日志
6 分类
20 标签
RSS
© 2021 sean
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Gemini v6.5.0
0%