PineApple_Chan
码龄5年
关注
提问 私信
  • 博客:8,999
    8,999
    总访问量
  • 21
    原创
  • 1,533,677
    排名
  • 3
    粉丝
  • 0
    铁粉

个人简介:大三狗 分享面经 学习心得 知识总结 + 欢迎 Follow me

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2019-08-09
博客简介:

weixin_45508154的博客

查看详细资料
个人成就
  • 获得0次点赞
  • 内容获得2次评论
  • 获得20次收藏
创作历程
  • 21篇
    2021年
成就勋章
TA的专栏
  • 数据结构
    2篇
  • BigData
    10篇
  • Java
    4篇
  • CS
    3篇
兴趣领域 设置
  • 大数据
    hadoophivesparketl
  • 人工智能
    机器学习
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Flink 如何实现 Exactly Once语义(含Kafka Offset实现)

Flink跟其他的流计算引擎相比,最突出或者做的最好的就是状态的管理.什么是状态呢?比如我们在平时的开发中,需要对数据进行count,sum,max等操作,这些中间的结果(即是状态)是需要保存的,因为要不断的更新,这些值或者变量就可以理解为是一种状态,拿读取kafka为例,我们需要记录数据读取的位置(即是偏移量),并保存offest,这时offest也可以理解为是一种状态.Flink是怎么保证容错恢复的时候保证数据没有丢失也没有数据的冗余呢?checkpoint是使Flink 能从故障恢复的一种内部机制。
原创
发布博客 2021.10.04 ·
0 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

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

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

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

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

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

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

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

Kafka架构特性——知识总结

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

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

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

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 ·
472 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Hive调优思路——知识总结

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

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

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

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

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

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

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

数据结构——B/B+ Tree

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

数据结构——Hash表

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

JVM——知识总结

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

操作系统——知识总结

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

计算机网络——知识总结

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

Java多线程——知识总结

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

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 ·
129 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java集合——知识总结

Java集合Java集合主要用来存储数值数据和引用数据Java集合框架Collections和Arrays是集合工具类类集合的顶层都是接口 Collection是单列集合的顶层接口,Map是双列集合的顶层接口Collection下的集合类都包含(add,remove,contains,isEmpty)等方法,也都包括Iterator方法,可以使用具体对象.iterator()方法获取迭代器List/Set/Map之间的基本区别List集合下基本都是有序的,并且可以存储重复数据Set集合
原创
发布博客 2021.05.08 ·
123 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多