- 博客(57)
- 资源 (5)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 大数据Hadoop生态圈介绍
大数据Hadoop生态圈-组件介绍 Hadoop是目前应用最为广泛的分布式大数据处理框架,其具备可靠、高效、可伸缩等特点。 Hadoop的核心组件是HDFS、MapReduce。随着处理任务不同,各种组件相继出现,丰富Hadoop生态圈,目前生态圈结构大致如图所示: 根据服务对象和层次分为:数据来源层、数据传输层、数据存储层、资源管理层、数据计算层、任务调度层、业务...
2019-07-12 14:22:47
52124
4
原创 Abstract Queue Synchronizer——AQS
AQS 的全称为(AbstractQueuedSynchronizer),是一个用来构建锁和同步器的框架,使用 AQS 能简单且高效地构造出同步器, 如ReentrantLock,Semaphore,ReentrantReadWriteLock ,SynchronousQueue等。当然,我们自己也能利用 AQS 非常轻松容易地构造出符合我们自己需求的同步器。
2023-02-08 15:17:42
430
原创 Centos7编译安装OpenLDAP(2.5.11)
1、准备工作因为OpenLDAP会依赖openssl-1.1.1版本,因此需要检查环境的openssl版本,如果低于openssl-1.1.1,则需要重新安装查看当前环境openssl版本,不满足条件,则先进行openssl-1.1.1安装[root@control-plane local]# openssl versionOpenSSL 1.0.2k-fips 26 Jan 20171.1 openssl-1.1.1安装1)从openssl官网https:...
2022-03-31 16:24:42
2172
原创 单机部署Kube-batch
1、环境信息 利用虚拟机,通过Minikube搭建kubernetes环境,安装和使用kube-batch,虚拟机基础环境参数如下: 操作系统 Centos 7 (Linux 3.10.0-1160.el7.x86_64) CPU 8 核 内存 4 GB 磁盘 50 GB 2、kubernetes安装1)关闭防火墙、s...
2021-10-18 09:32:31
284
原创 设计模式——装饰器模式(Golang)
设计模式——装饰器模式(Golang)装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。应用场景当不能用继承的方式来扩展功能时;或者要扩展的功能比较多,而且这些功能每一种组合都要实现时,用装饰器模式很显然更简单。 当对象的功能要求可以动态地添加,也可以再动态地撤销时。模式结构.
2021-02-08 12:39:20
1088
原创 开源关系数据库——PostgreSQL
一、什么是PostgreSQLPostgreSQL是一个功能强大的开源对象-关系数据库系统,使用和扩展了SQL语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。1、PostgreSQL架构PostgreSQL采用客户端/服务器的架构提供服务,整个系统由:连接管理系统、编译执行系统、存储管理系统、事务系统、系统表五部分组成。连接管理系统:由系统控制器负责接受外部操作请求,然后对请求进行预处理与分发;编译执行系统:由查询编译器负责操作请求在数据库中的分析处理和转化工作,查询执
2020-09-07 11:37:30
1161
原创 目录访问协议——LDAP
一、什么是LDAPLDAP(Lightweight Directory Access Protocol),轻型目录访问协议,是一个为查询、浏览和搜索而优化的数据库存储协议,该协议以树状结构存储数据,类似文件目录一样,LDAP只是一个协议,没有涉及到如何存储数据,因此,需要后端数据库组件来实现。与传统的关系数据库不同,它有优异的读写性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。常与第三方系统相结合,做到账号互通,实现网站/系统的登录,以及用户权限统一管理。1、LDAP特
2020-09-02 09:12:02
975
原创 线程安全与锁机制
一、什么是线程安全线程安全:当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,即这个对象是线程安全的。Java中的线程安全,就是多个线程之间访问共享数据时,能够正确访问。将Java中访问共享数据的操作由线程安全的“安全程度”由强至弱分为:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。(1)不可变:不可变对象一定是线程安全的,如final关键字修饰的基本数据类
2020-09-01 14:15:36
530
原创 工作流调度引擎——Oozie
一、什么是OozieOozie由Cloudera公司贡献给Apache的基于工作流引擎的开源框架,用于Hadoop平台的工作流调度。由Oozie Client和Oozie Server两个组件构成,Oozie Server运行于Java Servlet(Tomcat)容器中的web程序。1、组件特性1)Oozie不仅实现多个MR工作流调度,也可以将多种异构程序合成一个工作流。使用Oozie时,若前一个任务执行失败,后一个任务就不会被调度。2)Oozie工作流是一个DAG,当需要执行多个关
2020-08-31 16:54:50
928
原创 交互式SQL查询引擎——Impala
一、什么是ImpalaImpala是Cloudera公司推出的,提供对HDFS、HBase数据的高性能、低延迟的交互式SQL查询功能,与Hive(底层使用MR引擎)相比,具备更快的处理速度。1、组件特性(1)基于内存进行计算,能够对PB级数据进行交互式实时查询、分析(2)无需通过MR,直接与HDFS和HBase交互(3)兼容HiveSQL,支持Hive基本查询操作(4)具有数据仓库特性,可对hive数据直接做数据分析(5)支持Data Local数据本地化,减少网络数据传输(
2020-08-27 09:19:48
845
原创 大数据存储引擎——Kudu
一、什么是Kudu【Fast Analytics on Fast Data】是一个既支持随机读写,又支持OLAP(Online analytical processing)分析的大数据存储引擎,平衡HDFS和HBase随机读写和批量分析性能的存储引擎。1、组织架构Master Server:负责监听集群tserver状态、管理元数据catalog tablet等功能Table Server:负责数据tablet存储,并向client提供数据读写服务。对于给定tabl...
2020-08-26 14:28:21
1156
1
原创 集中权限管理框架——Ranger
一、什么是RangerApache Ranger是提供集中式权限管理的框架,可以实现Hadoop生态中的HDFS、YARN、Hive、Kafka、Storm和Solr等组件进行细粒度的权限访问控制。同时提供审计功能,如日志审计,记录各个组件资料的访问信息。1、组件特性1)基于策略(Policy)的访问权限模型;2)通用的策略同步与决策逻辑,方便控制插件的扩展接入;3)内置常见系统(HDFS、YARN、HBase等)的控制插件,且可扩展;4)内置基于LDAP(轻量级目录访问协议)、
2020-08-24 17:08:46
1610
原创 NoSQL数据库——Redis
一、什么是Redis Redis是一个开源的,基于C语言编写的,包含多种数据结构、支持网络交互的、可基于内存也可持久化的日志型、key-value存储的NoSQL数据库。1、Redis数据类型 1)字符串(strings):可以进行数值计算; 2)列表(lists):链表方式实现,可以实现常数级别的头尾数据插入; 3)无序集合(sets):可以进行数据的求交、并、差集; 4)有序集合(sorted sets):...
2020-08-21 21:01:31
342
原创 分布式存储系统——HBase
一、HBase简介 Google三驾马车:GFS、MapReduce和BigTable代表Google针对大数据存储与处理提出的三种框架。其中,GFS是面向大规模数据密集型应用的、可伸缩的分布式文件系统(HFDS);MapReduce是处理海量数据的分布式并行计算的执行框架(MapReduce);BigTable是处理海量数据的分布式结构化数据存储系统。 因为BigTa...
2020-08-12 15:35:43
1550
原创 分布式消息订阅-发布系统——Kafka
一、什么是KafkaKafka是一个高吞吐量的分布式消息订阅-发布系统,其具备高性能、持久化、多副本备份、横向扩展能力。通过生产者向队列里写消息,消费者从队列里取消息进行业务逻辑,相对于传统的消息队列,实现业务逻辑的解耦,削峰和异步处理。二、基本概念主题(Topic):是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名。生产者(Producer):是能够发布消息到主题的任何对象。服务代理(Broker):已发布的消息保存在一组服务器中,它们
2020-08-12 09:29:00
1154
原创 大数据之分布式协调服务——Zookeeper
一、什么是Zookeeper ZooKeeper是Hadoop的正式子项目,是Google的Chubby一个开源的实现,为分布式应用提供高效,可靠的分布式协调服务,提供诸如统一命名、状态同步、集群管理、配置同步、分布式锁等分布式基础服务。二、相关概念1、事务 事务是Zookeeper系统中能够改变服务器状态的操作,一般包括数据节点的创建和删除,数据节点内容更新和客户端会话创建于失效等操作。对于每一个事务请求,Zookeeper都会分配一个全局唯一的事务ID,用zxid表示,通常是一个64位的1
2020-07-31 18:12:52
604
原创 校招字节跳动——面试
1、join、left join 、 full join和cross join区别 join等价于inner join内连接,返回两个表中都有的符合条件的行; left join左连接,返回左表中所有的行和右表中符合条件的行; full join全连接,返回左表中所有的行和右表中所有的行,并按条件连接。 cross join笛卡尔积,返回左表...
2020-07-25 09:49:12
352
原创 大数据——数据流式处理
一、概念 大数据中包含两种处理方式:流处理和批处理。流处理:即流式处理。流式处理假设数据的潜在价值是数据的新鲜度,需要尽快处理得到结果。在这种方式下,数据以流的方式到达。在数据连续到达的过程中,由于流携带了大量数据,只有小部分的流数据被保存在有限的内存中。流处理方式用于在线应用,通常工作在秒或毫秒级别。 批处理:批处理方式中,数据首先被存储,然后再分析。MapReduce是非常重要的...
2020-07-22 10:47:49
13416
原创 快速检索与存储系统——Elasticsearch
一、什么是Elasticsearch? ELASTICSEARCH(弹性搜索):是一款开源的分布式、RESTful风格的搜索和数据分析引擎,它底层基于Apache Lucene开源库进行封装,其不仅仅提供分布式多用户能力的全文搜索引擎,还可以被准确形容为:1、一个分布式的实时文档存储,每个字段可以被索引与搜索;2、一个分布式实时分析搜索引擎;3、能胜任上百个节点的扩展,并支持PB级别额结构化和非结构化数据。二、Elasticsearch基本概念全文搜索(Full-text Search)
2020-07-22 10:30:42
670
原创 Java面试——手撕快速排序
public class test { public static void quickSort(int[] a, int left, int right) { if (left > right || left < 0 || right > a.length - 1) { return; } int key = a[left]; int i = l...
2020-06-04 20:21:52
390
原创 电信平台北向Java开发——证书校验
关于JAVA 北向应用服务器开发,Demo证书问题:Demo工程无法对接电信平台(证书问题)将Demo工程导入Eclipse后,修改相应电信平台的IP——BASE_URL,应用ID——appId,应用SERCRET——secret;运行出错,问题显示为:原因: 电信在2019-3月之后,将平台的证书做了更换,所以在SSL校验的时候,证书校验不通过,导致了如上问题:解决方法有两种:1、将ca.jks文件替换成电信平台的,CA证书连接为:。 2、取消证书校验。方法如下:...
2020-06-04 20:17:10
465
原创 Java开发+大数据开发-凉面考点总结
1、HDFS数据完整性校验 (a)校验和:Hadoop在写入数据到HDFS上时,会为每一个固定长度(默认是512字节)的数据执行一次“校验和”,“校验和”的值和数据一起保存起来。在传输前和传输后分别计算一个校验和,比较两者之间的值,常采用32位循环校验码的方式(CRC32)。 (b)数据块检测程序DataBlockScanner:DataNode运行着一个后台进程(DataBl...
2019-08-22 21:22:44
224
原创 LeetCode——SingleNubmber Ⅱ
题目 给定一组数字,这些数字里面每一个都重复出现了三次,只有一个数字只出现了一次,要求在O(n)时间和O(1)空间消耗内解出来。解题思路 时间复杂度要求O(n),因此不能排序后再进行遍历,同时空间复杂度为O(1),考虑通过位图计算,因为计算机中任何数据都是以二进制方式进行存储,因此可以利用位运算得出出现一次的数字。设计one,two,three分别表示出现一次、两次...
2019-08-16 16:52:58
177
原创 剑指offer(第二版)面试题48:最长不含重复字符的子字符串(Java)
题目 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。假设字符串中只包含从’a’到’z’的字符。例如,在字符串中”arabcacfr”,最长非重复子字符串为”acfr”,长度为4。解题思路动态规划思想 通过一个额外数组存储出现过字符的地址,数组默认为0,额外变量Max记录最长不重复子字符串长度,len积累当前子字符串长度。分两种情况:...
2019-08-09 14:54:46
928
转载 MySQL底层实现机制
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第...
2019-08-06 14:29:19
5348
原创 剑指offer(第二版)面试题36:二叉搜索树与双向链表(Java)
题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。解题思路 利用分治策略,将排序二叉树分为左子树和右子树两个部分,其中左子树的最后一个节点为根节点的前一节点,右子树的第一个节点为根节点的后一个节点,二叉排序树中分为左节点和右节点,可以利用左节点存储前节点,右节点存储后节点,利用迭代计算的方式得到双向...
2019-08-05 15:39:48
178
原创 剑指offer(第二版)面试题34:二叉树中和为某一值的路径(Java)
题目输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。二叉树结点的定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;}解题思路先说一个具体的例子,输入下图的二叉...
2019-08-05 14:37:36
159
转载 关系数据设计-5大范式
数据库设计五大范式 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。过程 影响 1NF——>2NF 消除非主属性对码的部分依赖 2NF——>3NF 消除非主属性对码的函数传递依赖 3NF——>BCNF 消除主属性之间的部分函数依赖和传...
2019-07-28 10:00:50
892
原创 剑指offer(第二版)面试题31:栈的压入、弹出序列(Java)
题目输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路建立一个辅助栈,把输入的第一个序列中的数字因此压入该辅助栈,并按照第二...
2019-07-26 09:05:11
112
原创 剑指offer(第二版)面试题29:顺时针打印矩阵(Java)
题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1、2、3、4、8、12、16、15、14、13、9、5、6、7、11、10。解题思路 ...
2019-07-25 21:52:24
187
原创 JAVA基础-第五部分
1、进程与线程关系 1)一个线程只属于一个进程,一个进程至少拥有一个或多个线程; 2)进程作为资源调度的基本单位,所有线程共享该进程资源; 3)线程作为调度的基本单位,真正实现在处理机上执行; 4)线程执行过程需要协作同步,不同进程的线程利用消息通信同步。2、进程与程序的区别 1)程序是一组有序的静态指令,进程是一次程序的执行过程 2)程序可以长期保...
2019-07-25 14:24:14
228
原创 剑指offer(第二版)面试题28:对称的二叉树(Java)
题目请实现一个函数,用来判断一棵二叉树是不是对称的,如果一棵二叉树和他的镜像是一样的,那么它是对称的。解题思路可以递归的方式进行查找,首先第二层,满足左节点等于右节点,然后分别将左节点和右节点作为参数传入checknext函数,在函数中,利用左节点的left与右节点的right、左节点的right与右节点的left递归判断,同时满足条件时进行下一层判断,当其中有一个为空或者不等,跳出递...
2019-07-25 11:12:22
149
原创 剑指offer(第二版)面试题26:树的子结构(java)
题目输入两棵二叉树A和B,判断B是不是A的子结构。例如图中所示的两棵二叉树,由于A中有一部分子树的结构和B 是一样的,因此B是A的子结构。解题思路要查找树A中是否存在和树B结构一样的子树,思路是第一步:先在树A中查找与根结点的值一样的结点,这实际就是树的先序遍历,当树A和树B为空时,定义相应的输出。如果树A某一结点的值和树B头结点的值相同,则调用findnext,做第二步判断。...
2019-07-25 10:42:23
115
原创 剑指offer(第二版)面试题24:反转链表(Java)
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。解题思路:运用两个额外节点保存当前节点上一节点和当前节点下一节点,依次遍历时,改变当前节点指向前一节点,直到遍历完成代码如下:import java.io.IOException;public class test { public static void main(String[] a...
2019-07-25 09:56:55
177
原创 剑指offer(第二版)面试题23:链表中环的入口节点(Java)
题目如果一个链表中包含环,如何找出环的入口节点?解题思路可以用两个指针来解决这个问题。先定义两个指针P1和P2指向链表的头结点。如果链表中环有n个结点,指针P1在链表上向前移动n步,然后两个指针以相同的速度向前移动。当第二个指针指向环的入口结点时,第一个指针已经围绕着环走了一圈又回到了入口结点。剩下的问题就是如何得到环中结点的数目。我们可以使用一快一慢的两个指针。如果两个指针相遇,...
2019-07-24 21:38:45
109
原创 剑指offer(第二版)面试题19:正则表达式匹配(Java)
题目请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配解题思路递归实现每次分别在str 和pattern中取一个字符进行匹配,如果匹配,则...
2019-07-23 12:20:11
113
Zookeeper笔记.docx
2020-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人