自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 消息系统Kafka笔试题:kafka 高效读写的因素

1.在磁盘只做Sequence I/O 顺序读写kafka 生产者写数据是有序的,即 Partition 内部有序,数据以 append 的方式顺序追加写入。Consumer 消费数据也是有序的,指定 offset 后顺序读出 offset 之后的数据。顺序读写可以避免磁盘读数据时的多次寻道和旋转延迟2.传统的IO流程举个例子说明传统IO流程,比如:从磁盘读取数据,然后从Socket发送到网络传统IO流程:1、第一次:将磁盘文件,读取到操作系统内核缓冲区;2、第二次:将内核缓.

2020-12-31 14:58:17 198

原创 消息系统Kafka笔试题:Kafka 底层的文件存储结构

分区目录文件, Partition 命名规则为:【topic 名称】+【从 0 开始的有序序号】drwxr-x % 2 root root 4096 Jul 26 19:35 kafka-topic-01-0drwxr-x % 2 root root 4096 Jul 24 20:15 kafka-topic-01-1drwxr-x % 2 root root 4096 Jul 24 20:15 kafka-topic-01-2 # 分区目录中的日志数据文件和日志索引文件-rw-r----- .

2020-12-31 14:54:32 188

转载 GitLab结合Git小乌龟实现dev,master,release等不同代码分支合并

GitLab结合Git小乌龟实现dev分支,合并代码到release,master等不同分支的操作步骤本案例以dev分支合并代码到master分支为例,Git小乌龟图形化界面步骤为:1.提交dev分支的新代码到本地和远程仓库中:①.进入到dev分支的目录下;②.提交代码到dev的本地和远程仓库中:右键dev目录的任意位置---->Git Sync...--->Fetch & Rebase---->填写必要的提交信息,Ok...不需要过多的操作---->

2020-12-22 15:02:43 2284

转载 Java面试题系列01之Java数据类型及类型转换

Java最新面试题精讲系列01之Java数据类型及类型转换对于初级或部分中级Java程序员来说,关于Java数据类型的面试题是属于比较高频的一个考点,关于数据类型的面试题及笔试题还是比较多的。一. Java数据类型1. 概述Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型在编译时就已经完全确定了。由于是statical typed,也就导致了Java语言是强类型(Strong typed)的。强类型则意味着每个变量都属于某一种类型,每个表达式也都属于某

2020-12-22 15:01:51 259

转载 订单号的生成

一.订单号生成的原则:1.全局的唯一性2.自增长3.长度的要求4.具有一定的可读性5.保密,不可推测性6.效率性二.实现方案常见的ID生成策略。 1. 数据库自增长序列或字段 2. UUID 3. UUID的变种*【UUID to Int64;NHibernate在其主键生成方式中提供了Comb算法(combined guid/timestamp)】 4. Redis生成ID 5. Twitter的snowflake算法 6. 利用zookeeper的znode生成唯一ID

2020-12-22 15:01:41 4980

转载 实时计算引擎Spark笔试题:Spark Shuffle 机制

说明:Spark是目前大数据中非常流行的运算框架,Spark的Shuffle机制是完成运算最重要的一环,面试时经常会被问到.在Spark中,Shuffle分为map阶段和reduce阶段,也可称之为shuffle write和shuffle read阶段,Spark在1.1以前的版本一直是采用Hash Shuffle的实现的方式,到1.1版本时参考Hadoop MapReduce的实现开始引入Sort Shuffle,在1.5版本时开始Tungsten钨丝计划,引入UnSafe Shuffle优化内存及

2020-12-18 11:06:41 207

转载 实时计算引擎Spark笔试题:Spark 内存管理模型&动态内存管理

内存结构图动态内存管理1.设定基本的存储内存和执行内存区域(spark.storage.storageFraction参数),该设定确定了 双方各自拥有的空间的范围。2.双方的空间都不足时,则存储到硬盘;若己方空间不足而对方空余时,可借用对方的空间;(存储空间不足是指不足以放下一个完整的Block)。3.执行内存的空间被对方占用后,可让对方将占用的部分转存到硬盘,然后“归还”借用的空间。4.存储内存的空间被对方占用后,无法让对方“归还”,因为需要考虑Shuffle过程中的很多因素,实

2020-12-18 11:00:52 225

转载 实时计算引擎Spark笔试题:Spark Streaming 反压机制(Back Pressure)

Spark Streaming 反压机制是1.5版本推出的特性,用来解决处理速度比摄入速度慢的情况,简单来讲就是做流量控制。当批处理时间(Batch Processing Time)大于批次间隔(Batch Interval,即BatchDuration)时,说明处理数据的速度小于数据摄入的速度,持续时间过⻓或源头数据暴增,容易造成 数据在内存中堆积,最终导致Executor OOM。反压就是来解决这个问题的。spark streaming的消费数据源方式有两种:1. 若是基于Receiver的数据源,

2020-12-17 17:05:34 214

转载 实时计算引擎Spark笔试题:一些常见的比较总结

1Sparkrepartition和coalesce的区别1.1. repartition只是coalesce接口中shuffle为true的实现1.2. 不经过 shuffle,也就是coaleasce shuffle为false,是无法增加RDD的分区数的,比如你源RDD 100个分区,想要变成200个分区,只能使用repartition,也就是coaleasce shuffle为true。1.3. 如果上游为Partition个数为N,下游想要变成M个PartitionN >..

2020-12-17 17:05:02 176

转载 实时计算引擎Spark笔试题:Spark Catalyst 查询优化器原理

这里我们讲解一下SparkSQL的优化器系统Catalyst,Catalyst本质就是一个SQL查询的优化器,而且和 大多数当前的大数据SQL处理引擎设计基本相同(Impala、Presto、Hive(Calcite)等)。了解Catalyst的SQL优化流程,也就基本了解了所有其他SQL处理引擎的工作原理。*SQL优化器核心执行策略主要分为两个大的方向:基于规则优化(RBO)以及基于代价优化(CBO),基于规则优化是一种经验式、启发式地优化思路,更多地依靠前辈总结出来的优化规则,简单易行且能够覆盖

2020-12-17 17:04:54 218 1

空空如也

空空如也

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

TA关注的人

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