自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 常见排序算法及其实现——知识总结

排序:内部排序:数据记录在内存中进行排序外部排序:排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存冒泡排序:冒泡排序,是通过每一次遍历获取最大/最小值将最大值/最小值放在尾部/头部然后除开最大值/最小值,剩下的数据在进行遍历获取最大/最小值public static void main(String[] args) { int arr[] = {8, 5, 3, 2, 4}; //冒泡 for (int i = 0; i &l..

2021-08-16 23:49:08 152 1

原创 Zookeeper底层技术细节及常用使用场景——知识总结

Zookeeper简介:Zookeeper 是一个开源的分布式协调服务,目前由 Apache 进行维护。Zookeeper 可以用于实现分布式系统中常见的发布/订阅、负载均衡、命令服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。它具有以下特性:顺序一致性:从一个客户端发起的事务请求,最终都会严格按照其发起顺序被应用到 Zookeeper 中原子性:所有事务请求的处理结果在整个集群中所有机器上都是一致的;不存在部分机器应用了该事务,而另一部分没有应用的情况单一视图

2021-08-16 23:44:11 199

原创 Kafka细节及常见问题——知识总结

Kafka特点:高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作可扩展性:Kafka集群支持热扩展持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)高并发:支持数千个客户端同时读写Kafka架构:多个Producer,一个Kafka Cluster,多个Co

2021-08-16 23:43:09 199

原创 Kafka底层细节梳理——知识总结

Kafka特点:高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作可扩展性:Kafka集群支持热扩展持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)高并发:支持数千个客户端同时读写Kafka架构:多个Producer,一个Kafka Cluster,多个Co

2021-08-16 23:41:54 140

原创 Kafka架构特性——知识总结

Kafka定义:最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于Hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等Kafka特性:高吞吐量、低延迟:Kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition,

2021-08-15 11:16:19 632

原创 Hive与数据仓库——知识总结

Hive介绍:Hive建立在Hadoop上的数据仓库基础框架,提供了一系列工具,存储,查询和分析存储在分布式存储系统中的大规模数据集,可以将结构化的数据文件映射为一张数据库表如(csv),并提供类SQL查询功能Hive它能存储很大数据集,可以直接访问存储在HDFS中的文件,Hive支持MR,Spark,Tez三种分布式计算引擎,Hive的简单的类SQL查询语言,通过底层的计算引擎,将SQL转为具体的计算任务进行执行Hive底层与数据库交互原理:由于Hive的元数据可能要面临不断地更新、修改和读

2021-08-15 11:14:44 649

原创 Hive中排序、JOIN——知识总结

Hive中的join:Hive中除了支持和传统数据库中一样的内关联(join)、左关联(left join)、右关联(right join)、全关联(outer join),还支持LEFT SEMI JOIN和CROSS JOIN,但这两种JOIN类型也可以用前面的代替注意:Hive中Join的关联键必须在ON ()中指定,不能在Where中指定,否则就会先做笛卡尔积,再过滤内关联(JOIN):只返回能关联上的结果左外关联(LEFT [OUTER] JOIN):以LEFT [OUTER

2021-08-15 11:11:26 408

原创 Hive调优思路——知识总结

Hive调优:对分析的数据选择合适的「存储格式」与「压缩方式」能提高hive的分析效率数据的压缩格式:选择压缩算法的时候需要考虑到是否可以分割,如果不支持分割(切片的时候需要确定一条数据的完整性),则一个map需要执行完一个文件,如果文件很大,则效率很低。一般情况下hdfs一个块(128M)就是一个map的输入切片,而block是按物理切割的,可能一条数据会被切到两个块中去数据的存储格式:TextFile(行存储、Gzip压缩)Hive数据表的默认格式,存储方式:行存储。

2021-08-15 11:09:04 183

原创 MapReduce细节流程及底层原理梳理——知识总结

MR整体流程:分片、格式化:分片操作:指的是将源文件划分为大小相等的小数据块(Hadoop 2.x 中默认 128MB ),也就是分片(split ),Hadoop 会为每一个分片构建一个 Map 任务,并由该任务运行自定义的 map() 函数,从而处理分片里的每一条记录。(MapTask的数量 == 文件分片的个数)格式化操作:将划分好的分片(split)格式化为键值对<key,value>形式的数据,其中, key 代表偏移量, value 代表每一行内容执行MapTa

2021-08-15 11:06:58 320

原创 YARN架构及原理——知识总结

Yarn介绍:Yarn是Hadoop集群中的资源管理系统模块,从Hadoop2.0引入Yarn模块,Yarn可以为各类计算框架提供资源管理和调度,主要用于管理集群当中的资源(主要是服务器的各种硬件资源,包括CPU、内存、磁盘、网络I/O)以及调度运行在Yarn上面的各种任务总结:调度系统资源、管理计算任务Yarn的组成部分(Master/Slave架构):Resource Manager(Applications Manager应用程序管理器、Scheduler调度器):处理Client

2021-08-15 11:05:08 342

原创 实时计算架构选型——自我总结

实时计算特征无限数据基本上无限的数据集。这些通常被称为“流数据”,而与之相对的是有限的数据集无限数据处理一种持续的数据处理模式,能够通过处理引擎重复的去处理上面的无限数据,是能够突破有限数据处理引擎的瓶颈的低延迟时效性将是需要持续解决的问题实时计算架构Lambda架构数据从底层的数据源开始,经过Kafka、Flume等数据组件进行收集,然后分成两条线进行计算一条线是进入流式计算平台(例如 Storm、Flink或者SparkStreaming),去计算实

2021-08-15 11:03:12 955

原创 数据结构——B/B+ Tree

引言:我们都知道二叉查找树的查找的时间复杂度是O(log N),其查找效率已经足够高了,那为什么还有B树和B+树的出现呢?难道它两的时间复杂度比二叉查找树还小吗?答案当然不是,B树和B+树的出现是因为另外一个问题,那就是「磁盘IO」。众所周知,IO操作的效率很低,当在大量数据存储中,查询时我们不能一下子将所有数据加载到内存中,只能逐一加载磁盘页,每个磁盘页对应树的节点。造成大量磁盘IO操作(最坏情况下为树的高度)。平衡二叉树由于树深度过大而造成磁盘IO读写过于频繁,进而导致效率低下所以,我们为了减

2021-08-15 11:00:03 649

原创 数据结构——Hash表

哈希表:定义:散列技术是指在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每一个关键字都对应一个存储位置。即:存储位置=f(关键字)。在查找的过程中,只需要通过这个对应关系f 找到给定值key的映射f(key)。只要集合中存在关键字和key相等的记录,则必在存储位置f(key)处。我们把这种对应关系f 称为散列函数或哈希函数采用散列技术将记录存储在一块连续的存储空间中,这块连续的存储空间称为哈希表。所得的存储地址称为哈希地址或散列地址哈希函数构造方法:原则:计算简单

2021-08-15 10:58:08 520

原创 JVM——知识总结

JVMJVM内存区域:线程私有:虚拟机栈、本地方法栈、程序计数器线程共享:堆、方法区、直接内存程序计数器:线程私有,其生命周期和线程相同,每个线程都有属于自己的程序计数器程序计数器是当前线程所执行的字节码的行号指令器,字节码解释器通过改变这个行号指令器的值来判断下一条需要执行的字节码指令分支、循环、跳转、异常处理、线程恢复都需要依赖程序计数器完成程序计数器是唯一不会出现OOM的地方虚拟机栈:线程私有,其生命周期和线程相同,每个线程都有属于自己的虚拟机栈虚拟机栈是由栈帧组成

2021-08-15 10:43:41 214

原创 操作系统——知识总结

操作系统操作系统定义:OS是管理计算机硬件与软件资源的程序,是计算机的基石OS本质上是一个运行在计算机上的软件程序,用于管理计算机硬件和软件资源OS存在屏蔽了硬件层的复杂性OS的内核是OS的核心部分,它负责系统的内存管理,硬件设备的管 理,文件系统的管理以及应用程序的管理。 内核是连接应用程序和硬件的桥梁,决定着系统 的性能和稳定性系统调用定义:用户态(user mode) : 用户态运行的进程或可以直接读取 用户程序 的数据系统态(kernel mode):可以简单的理解系统态运

2021-05-09 17:07:39 197

原创 计算机网络——知识总结

计算机网络五层协议:OSI为7层协议、TCP/IP为4层协议、融合理解为5层协议应用层:主要任务是通过 一台主机的应用进程之间 的交互来完成特定网络应用。 (应用层数据交换单元为报文)(HTTP、FTP、DNS)运输层:主要任务就是负责向 两台主机进程之间 的通信提供通用的数据传输服务(分用和复用)(TCP、UDP)传输控制协议 TCP(Transmission Control Protocol)–提供面向连接的,可靠的数据传输 服务用户数据协议 UDP(User Datagram P

2021-05-09 16:54:02 97

原创 Java多线程——知识总结

Java多线程Java程序:一段Java进程是由main线程和多个其他线程同时运行,一段Java进程对应一个JVM的实例JVM的角度解释进程和线程:一个进程可以包含多个线程,其中线程私有的为(虚拟机栈、本地方法栈、程序计数器),线程共享的为(堆区域、方法区)。一个Java进程对应一个JVM的实例,其中只有一个堆区域和方法区,还有n个线程私有区域(虚拟机栈、本地方法栈、程序计数器)程序计数器:线程私有,每一个线程有一个程序计数器,用于记录当前线程执行到的位置,为了线程切换后依然能恢复到正确的

2021-05-09 00:31:33 218

原创 Java基础——知识总结

JavaGuideJavaSE字节码文件:JVM可以理解的代码就叫做字节码 .class文件类加载的入口:是 .class文件JDK和JRE区别:JRE是Java的运行环境,包括JVM和核心类库,JDK比JRE多了javac编译器和工具(如jdbc)Java和C++的异同:都是面向对象语言,但是Java不提供指针访问内存、Java类是单继承而C++是多继承、Java有自动内存管理机制Java为编译型同时又为解释型语言:先通过javac编译生成 .class字节码文件,然后交给

2021-05-08 23:56:24 105

原创 Java集合——知识总结

Java集合Java集合主要用来存储数值数据和引用数据Java集合框架Collections和Arrays是集合工具类类集合的顶层都是接口 Collection是单列集合的顶层接口,Map是双列集合的顶层接口Collection下的集合类都包含(add,remove,contains,isEmpty)等方法,也都包括Iterator方法,可以使用具体对象.iterator()方法获取迭代器List/Set/Map之间的基本区别List集合下基本都是有序的,并且可以存储重复数据Set集合

2021-05-08 23:42:56 100

原创 B站 大数据开发实习 面经

B站 一面(凉经)为什么我面数仓岗 不问我数仓建模和HQL问我这些的东西???0.Java集合了解吗,继承图说一下1.ArrayList和HashMap底层原理说一下,扩容机制,底层存储结构2.为什么1.8之后HashMap用红黑树3.二叉树和红黑树区别4.Java锁机制了解过吗 Sychronize和Lock底层区别,线程池了解过吗5.JVM内存模型,各部分作用6.JVM垃圾回收算法有哪些,主要回收哪个区域,如何判断垃圾可以被回收7.堆新生代老年代比例,配置过JVM的参数吗8.类加载

2021-04-28 19:53:49 709

原创 DeNA China 大数据开发实习 面经

DeNA China 大数据开发实习面经技术面(数据中台Leader):1.做一个自我介绍2.讲述一下离线数仓项目的数据ETL流程,项目的目的,最后的收获3.想来我们公司学习什么技术,最近在学习什么技术,想以后做什么方向(实时计算,想来体验海量数据在企业实际应用的场景)4.阿里的闭源或者开源工具了解哪些,DataX,RocketMQ(RabbitMQ和Kafka区别)5.实时计算的应用场景,如果让你设计一个实时计算架构,你如何设计(业务DB->flume->Kafka->flu

2021-04-28 19:49:07 415 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除