- 博客(6)
- 收藏
- 关注
原创 二叉树中序遍历之Morris算法
Morris中序遍历Morris 遍历算法是另一种遍历二叉树的方法,它能将非递归的中序遍历空间复杂度降为 O(1)缺点是改变了整个树的结构,强行把一棵二叉树改成一段链表结构。我们将黄色区域部分挂到节点5的右子树上,接着再把2和5这两个节点挂到4节点的右边。这样整棵树基本上就变改成了一个链表了,之后再不断往右遍历。class Solution {public List<Integer> inorderTraversal(TreeNode root){ List&
2022-02-21 16:05:46
565
原创 链表的Floyd判环算法、环起始节点,环长
1,判环如上图,链表中进入环前的长度为m,环的长度为n,假设有两个指针,一个快一个慢,初始时都在head节点上。k为第一次相遇时所在的节点距离进入环的节点的距离(在上图中表示为5节点到3节点的距离)。ListNode fast = head;ListNode slow = head;slow指针每次走一步。fast指针每次走两步。fast = fast.next.next;slow = slow.next;两个指针同时从头结点开始出发,如果两个指针走了若干步之后相遇了,则表示此链表有环。
2021-09-09 10:27:23
260
原创 HDFS中NameNode、SecondaryNameNode和DataNode工作机制
1,NN和2NN的工作机制思考:NameNode中的元数据是存储在哪里的? 首先,我们做一个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有相应客户请求,必然是效率过低。因此元数据需要存放在内存中。但是如果只存放在内存中,一旦断电,元数据丢失,整个集群就无法工作了。由此,产生了在磁盘中用于备份元数据的Fsimage。 这样又会带来新的问题,当在内存中的元数据更新时,如果同时更新FsImage,就会导致效率过低,如果不更新,就会发生一致性问题,一旦NameNode节点断
2020-11-04 15:18:51
313
原创 HDFS上传、下载流程
上传过程参考此图 首先,有一个200M文件要上传,那么Client首先要读取这个文件,Distributed FileSystem就是整个集群的抽象封装。Client向NameNode发起一个上传请求,NameNode审查请求是否合法(比如相同路径下已经有了文件,有没有上传权限等),之后回复响应可否上传。此时文件就被切了块,分成了128M+72M,如下图。 之后,往HDFS上传,要开一个输出流,FSDataOutoutStream,...
2020-10-28 21:07:43
573
原创 HDFS概述(背景、优缺点、架构、块大小)
第一章 HDFS概述(1)HDFS产生背景 随着数据量越来越大,在一个操作系统下存放不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是却不方便管理和维护。于是就迫切的需要一种系统来管理多台机器上的文件,这就是分布式文件系统,HDFS即hadoop distributed file system,是分布式文件管理系统中的一种。 HDFS是一个文件系统,用于存储文件,通过目录树来定位文件。其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器各司其职。 HDFS的使用场景:适
2020-10-25 16:47:24
900
原创 CentOS7下Hadoop 2.9.2 虚拟机配置
写在前面由于自己对大数据开发也比较感兴趣,于是乎开始学习一些大数据的框架,将自己学习大数据的经历记录下来,一方面可以方便自己及时回顾,另一方面也起到督促自己的作用。第一步:配置前的准备(1)我采用的是Centos7.5(1804)版本的,下载地址为CentOS中文站:点此下载(2)Hadoop版本为2.9.2,下载地址为官网:点此下载(3)jdk版本为JDK8(JDK1.8),下载地址为官网:点此下载(4)虚拟机配置:一共三台。每台配置:硬盘40G,内存4G,CPU 2*2,分区设置:/bo
2020-10-24 20:00:23
234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人