小白数据猿
码龄8年
关注
提问 私信
  • 博客:77,969
    77,969
    总访问量
  • 75
    原创
  • 1,204,721
    排名
  • 44
    粉丝
  • 0
    铁粉

个人简介:专注高并发,大数据,人工智能&机器学习

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

进击的数据小白

博客描述:
专注于高并发、大数据、人工智能&机器学习
查看详细资料
个人成就
  • 获得57次点赞
  • 内容获得21次评论
  • 获得179次收藏
  • 代码片获得210次分享
创作历程
  • 8篇
    2022年
  • 60篇
    2020年
  • 7篇
    2019年
成就勋章
TA的专栏
  • Spark
    42篇
  • clickhouse
    7篇
  • flink实战&源码分析
    1篇
  • Hadoop&Hive
    15篇
  • kafka源码分析系列
    1篇
  • zookeeper
    3篇
  • 机器学习
    1篇
  • java
  • leetcode
    3篇
兴趣领域 设置
  • 大数据
    hadoophivestormsparketl
创作活动更多

超级创作者激励计划

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

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

Clickhouse原理&源码分析系列,持续更新

ClickHouse原理&源码分析系列,不定时更新中、
原创
发布博客 2022.12.28 ·
455 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

MergeTree概述

Clickhouse 中最强大的表引擎当属 MergeTree (合并树)引擎及该系列(MergeTree)中的其他引擎。MergeTree 系列的引擎被设计用于插入极大量的数据到一张表当中,数据可以以数据片段的形式一个接着一个的快速写入,数据片段在后台按照一定的规则进行合并。
原创
发布博客 2022.12.28 ·
1744 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

MergeTree写入&查询流程分析

分区,索引,数据存储这些组件配合在一起给Clickhouse数据库带来非常高效的查询性能,本文从写入过程、查询过程,以及数据标记与压缩数据块的三种对应关系的角度展开介绍。
原创
发布博客 2022.12.28 ·
883 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MergeTree原理之存储

我们都知道在MergeTree中数据是按列存储的,但是具体到存储的细节、以及如何工作的,都存在很多疑问。数据存储,就好比一本书中的文字,在排版时,绝不会密密麻麻地把文字堆满,这样会导致难以阅读。更为优雅的做法是,将文字按段落的形式精心组织,使其错落有致。本节将介绍MergeTree在数据存储方面的细节,尤其是其中关于压缩数据块的概念。
原创
发布博客 2022.12.28 ·
692 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MergeTree原理之二级索引

除了一级索引之外,MergeTree同样支持二级索引,二级索引又称跳数索引,由数据的聚合信息构建而成。根据索引类型的不同,其聚合信息的内容也不同,当然跳数索引的作用和一级索引是一样的,也是为了查询时减少数据的扫描范围
原创
发布博客 2022.12.28 ·
1091 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MergeTree原理之一级索引

MergeTree的主键使用`PRIMARY KEY`定义,待主键定义之后,MergeTree会依据`index_granularity`间隔(默认8192行),为数据表生成一级索引并保存至`primary.idx`文件内,索引数据按照PRIMARY KEY排序。相比使用PRIMARY KEY定义,更为常见的简化形式是通过ORDER BY指代主键。在此种情形下,PRIMARY KEY与ORDER BY定义相同,所以索引(primary.idx)和数据(.bin)会按照完全相同的规则排序。
原创
发布博客 2022.12.27 ·
575 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MergeTree原理之分区

在MergeTree表引擎中,数据是以分区目录的形式进行组织的,每个分区独立分开存储,这样子在数据查询时候可以跳过无用的数据分区,最小化扫描的数据文件,从而达到加快查询的效果。本文将从分区的规则,底层目录的格式以及分区的合并规则等方面详细讲解数据分区目录具体是如何运作的。
原创
发布博客 2022.12.27 ·
796 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

leetcode系列-1642. Furthest Building You Can Reach

1642. Furthest Building You Can Reach
原创
发布博客 2022.06.21 ·
230 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive常见调优总结

基础设置队列选择yarn队列分配,选择合适的队列进行运行,避免都在同一个繁忙的队列中运行。SET mapreduce.job.queuename=xx;控制mapper&reducer数目合理控制文件切分的各种参数,使Mapper和Reducer数目达到一个合适的值,可以加快处理速度。// HiveInputFormat文件格式# 文件分割最大大小set mapreduce.input.fileinputformat.split.maxsize=536870912;# 文件分割最
原创
发布博客 2020.12.14 ·
1272 阅读 ·
3 点赞 ·
0 评论 ·
11 收藏

Hive调优之map&reduce数目

map数目确定方法Map数目的划分是由输入文件大小,个数等因素决定的,另外不同的文件输入格式切分map数目的方法也是不一样的,我们来看下Hive使用的两种输入格式的Map数目确定方法。HiveInputFormatMapTask的数目主要有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改),控制这些变量的参数如下:set hive.input.format=org.apa
原创
发布博客 2020.12.09 ·
830 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

Hadoop深入浅出Hadoop Streaming&MRJob

Hadoop Streaming 是Hadoop提供的一个 MapReduce 编程工具,它允许用户使用任何可执行文件、脚本语言或其他编程语言来实现 Mapper 和 Reducer 作业。Hadoop Streaming 使用了 Unix 的标准输入输出作为 Hadoop 和其他编程语言的开发接口,因此在其他的编程语言所写的程序中,只需要将标准输入作为程序的输入,将标准输出作为程序的输出就可以了。原理分析Hadoop Streaming是Hadoop的一个工具, 它帮助用户创建和运行一类特殊的ma.
原创
发布博客 2020.12.09 ·
561 阅读 ·
2 点赞 ·
0 评论 ·
7 收藏

Hadoop实战&源码分析系列,持续更新

Hadoop实战MAC单机hadoop环境搭建&Wordcount实现mr实现join的功能–Map端Joinmr实现join的功能–Reduce端Join源码分析Hadoop源码分析之文件拆分Hive基础Hive实战-建表相关操作一文讲懂Hive窗口函数UDFHive深入浅出UDFHive深入浅出UDAFHive深入浅出UDTFHive深入浅出Transform-Scripts执行计划Hive执行计划分析之group by执行计划分析调优...
原创
发布博客 2020.12.08 ·
213 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive深入浅出Transform-Scripts

前面我们讲解了UDF,UDAF,UDTF的原理以及实现思路,本文我们介绍一种轻量级的自定义函数的实现方法,Hive的TRANSFORM关键字提供了在SQL中调用自写脚本的功能,适合实现Hive中没有的功能又不想写UDF的情况。使用实例脚本编写我们来看一个具体的实例,比较简单,直接读取列的值,解析出来,然后在封装返回,没有做任何业务处理,如下所示:#!/usr/bin/pythonimport sysfor line in sys.stdin: // 多列以\t分割 a, .
原创
发布博客 2020.12.08 ·
619 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Hive深入浅出UDTF

前面两篇文章我们分析了UDF和UDAF的原理以及实现思路,这一节我们介绍另外一种UDF: UDTF((User-Defined Table-Generating Functions),是用来解决输入一行输出多行的需求的,本节我们来详细分析下UDTF如何实现以及如何与lateral view一起结合使用。概述UDTF(User-Defined Table-Generating Functions)是用来解决输入一行输出多行的需求。执行步骤要实现UDTF,我们需要继承org.apache.hadoo.
原创
发布博客 2020.12.08 ·
2529 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

Hive深入浅出UDAF

上一篇我们讲解了基本UDF的编写,这一节我们来看下UDAF[User Defined Aggregation Functions],自定义聚合函数,用来处理输入多行,输出一行的操作,类似MapReduce中Reduce操作。UDAF是需要在hive的sql语句和group by联合使用,hive的group by对于每个分组,只能返回一条记录。概述Hive是构建在Hadoop上的数据仓库,我们的sql语句最终都是要变成Mapreduce函数,只不过hive已经帮助我们写好并隐藏mapreduce ,.
原创
发布博客 2020.12.08 ·
5145 阅读 ·
10 点赞 ·
1 评论 ·
17 收藏

Hive深入浅出UDF

Hive是一种构建在Hadoop上的数据仓库,Hive把SQL查询转换为一系列在Hadoop集群中运行的MapReduce作业,是MapReduce更高层次的抽象,不用编写具体的MapReduce方法,带来了很多便利,但是有时候hive提供的函数功能满足不了业务需要,就需要我们自己来写UDF函数来辅助完成。UDF函数其实就是一个简单的函数,执行过程就是在Hive转换成Mapreduce程序后,执行java方法,类似于像Mapreduce执行过程中加入一个插件,方便扩展。UDF只能实现一进一出的操作,如果需.
原创
发布博客 2020.12.08 ·
1579 阅读 ·
0 点赞 ·
1 评论 ·
5 收藏

Spark源码分析系列之RDD

面试过程中经常会遇到一个问题:谈谈你对Spark RDD的理解,你该如何回答呢?RDD是弹性数据集,是Spark的基础数据结构,然后呢,没了吗?那我觉得可能面试官觉得你应该处于最低级的水平,本文详细的介绍了RDD,面试过程中你如果按照下面的顺序进行描述RDD,面试官应该会对你刮目相看。概述RDD是(Resilient Distributed Dataset)弹性分布式数据集,Spark中数据的基本抽象,表示不可变的,分区的可以并行操作的元素集合。RDD有五大部分组成:分区集合: partitio.
原创
发布博客 2020.12.07 ·
418 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Spark DAGScheduler源码分析系列之二: 事件处理器

概述DAGScheduler中处理任务提交,任务失败,增加节点,删除节点等事件是通过事件处理器进行的。EventLoop用来接收来自调用者的事件并在线程中处理所有的事件。这是一个典型的生产消费模型:生产者通过调用DAGSchedulerEventProcessLoop.post(event: E)来将消息进行发布;消费者Eventloop内部维护了一个线程,循环的消费消息eventQueue.take(),调用onReceive(event)进行处理。DAGSchedulerEventProcessLoo
原创
发布博客 2020.12.04 ·
393 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Spark Shuffle源码分析系列之UnsafeShuffleWriter

前面我们介绍了BypassMergeSortShuffleWriter和SortShuffleWriter,知道了它们的应用场景和实现方式,本节我们来看下UnsafeShuffleWriter,它使用了Tungsten优化,排序的是二进制的数据,不会对数据进行反序列化操作,在某些情况下会加速Shuffle过程。概述UnsafeShuffleWriter提供了以序列化方式写入文件的方式,写入的内存既可以是on-heap也可以是off-heap,当数据到来时候,先序列化,然后使用序列化的数据排序,要想使.
原创
发布博客 2020.12.04 ·
634 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

Spark DAGScheduler源码分析系列之一: 基础

DAGSchedulerDAGScheduler是Spark中比较重要的类,实现了面向DAG的高层次调度,DAGScheduler通过计算将DAG中的一系列RDD划分到不同的Stage,然后构建这些Stage之间的父子关系,最后将每个Stage按照Partition切分为多个Task,并以TaskSet的形式提交给底层的TaskScheduler。所有的组件都通过向DAGScheduler投递DAGSchedulerEvent来使用DAGScheduler。DAGScheduler内部的DAGSchedu
原创
发布博客 2020.11.19 ·
499 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多