IT阿牛
码龄3年
关注
提问 私信
  • 博客:93,640
    社区:105
    动态:446
    视频:8
    94,199
    总访问量
  • 83
    原创
  • 61,838
    排名
  • 820
    粉丝

个人简介:不定时更新计算机专业相关知识

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:山西省
  • 加入CSDN时间: 2021-10-21
博客简介:

weixin_63257947的博客

查看详细资料
  • 原力等级
    领奖
    当前等级
    5
    当前总分
    1,129
    当月
    0
个人成就
  • 获得609次点赞
  • 内容获得95次评论
  • 获得869次收藏
  • 代码片获得1,970次分享
创作历程
  • 36篇
    2024年
  • 18篇
    2023年
  • 29篇
    2022年
成就勋章
TA的专栏
  • Java  SE
    13篇
  • Linux
    1篇
  • Flink
    11篇
  • Hadoop
    12篇
  • python
    6篇
  • Git
    2篇
  • Maven
    5篇
  • 小菜坤的编程题之旅
    4篇
  • 数据结构
    3篇
  • 机器学习
    1篇
  • Mysql
    3篇
  • 算法
    1篇
  • 力扣
  • C语言知识的学习
    19篇
  • C语言经典编程题
    4篇
兴趣领域 设置
  • 大数据
    大数据
  • 学习和成长
    职场和发展
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

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

Linux常用命令

(复制a.txt b.txt文件到test目录中,要求这些文件和目录都是存在的,并且当cp 要复制的源是多个文件组成时,目标必须是已存在的目录,不能不存在,不能是文件;(当cp命令复制的源是目录时,会递归的将该目录下的所有子目录和子文件都复制一份,但是cp命令本身不会递归,需要加-r选项)如果后面的参数是一个软链接,但是该软链接指向的真实文件已被删除,则指的是创建该软链接指向的真实文件,新的,空白的。交互式命令,在命令执行的过程中,通过提示,提供相应的参数即可;r:可读,可以读取目录中的子目录或者文件;
原创
发布博客 2024.06.30 ·
1088 阅读 ·
17 点赞 ·
0 评论 ·
28 收藏

Flink的状态后端(State Backends)(管理状态)

Flink中提供了两类不同的状态后端,一种是“哈希表状态后端”(HashMapStateBackend),另一种是“内嵌RocksDB状态后端”(EmbeddedRocksDBStateBackend)。在Flink中,状态的存储、访问以及维护,都是由一个可插拔的组件决定的,这个组件就叫作状态后端(state backend)。普通的状态,以及窗口中收集的数据和触发器,都会以键值对的形式存储起来,所以底层是一个哈希表(HashMap),这种状态后端也因此得名。的机制,这在很多情况下可以大大提升保存效率。
原创
发布博客 2024.06.03 ·
1387 阅读 ·
10 点赞 ·
1 评论 ·
17 收藏

Hadoop数据压缩和压缩案例实操

Hadoop数据压缩是一种通过特定的算法来减小计算机文件大小的机制。这种机制在Hadoop中尤其重要,因为它可以有效减少底层存储系统(如HDFS)的读写字节数,从而提高网络带宽和磁盘空间的效率。在运行MapReduce程序时,尤其是在数据规模很大和工作负载密集的情况下,IO操作、网络数据传输、Shuffle和Merge等过程会花费大量的时间,因此数据压缩显得尤为重要。在Hadoop中,压缩可以在MapReduce的任意阶段启用。对于运算密集型的job,建议少用压缩以减少CPU开销;
原创
发布博客 2024.05.25 ·
743 阅读 ·
6 点赞 ·
0 评论 ·
15 收藏

Flink的状态生存时间(TTL)

状态的失效其实不需要立即删除,所以我们可以给状态附加一个属性,也就是状态的“失效时间”。之后如果有对状态的访问和修改,我们可以再对失效时间进行更新;当设置的清除条件被触发时(比如,状态被访问的时候,或者每隔一段时间扫描一次失效状态),就可以判断状态是否失效、从而进行清除了。在实际应用中,很多状态会随着时间的推移逐渐增长,如果不加以限制,最终就会导致存储空间的耗尽。这时就需要配置一个状态的“生存时间”(time-to-live,TTL),当状态在内存中存在的时间超出这个值时,就将它清除。
原创
发布博客 2024.05.25 ·
484 阅读 ·
6 点赞 ·
0 评论 ·
8 收藏

Flink中的按键分区状态

顾名思义,状态中只保存一个“值”(value)。这里的T是泛型,表示状态的数据内容可以是任何具体的数据类型。如果想要保存一个长整型值作为状态,那么类型就是ValueState< Long >。我们可以在代码中读写值状态,实现对于状态的访问和更新。T value():获取当前状态的值;:对状态进行更新,传入的参数value就是要覆写的状态值。在具体使用时,为了让运行时上下文清楚到底是哪个状态,我们还需要创建一个“状态描述器”(StateDescriptor)来提供状态的基本信息。
原创
发布博客 2024.05.25 ·
486 阅读 ·
6 点赞 ·
0 评论 ·
11 收藏

Map Join案例实操

在Reduce端处理过多的表,非常容易产生数据倾斜。我们可以在Map端缓存多张表,提前处理业务逻辑,这样增加Map端业务,减少Reduce端数据的压力,尽可能的减少数据倾斜。具体办法:采用DistributedCache(1)在Mapper的setup阶段,将文件读取到缓存集合中。(2)在Driver驱动类中加载缓存。//缓存普通文件到Task运行节点。//如果是集群运行,需要设置HDFS路径。
原创
发布博客 2024.05.18 ·
508 阅读 ·
4 点赞 ·
1 评论 ·
11 收藏

数据清洗(ETL)案例实操

ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。在运行核心业务MapReduce程序之前,往往要先对数据进行清洗,清理掉不符合用户要求的数据。清理的过程往往只需要运行Mapper程序,不需要运行Reduce程序。
原创
发布博客 2024.05.18 ·
1222 阅读 ·
10 点赞 ·
0 评论 ·
6 收藏

Reduce Join案例实操

我们要将商品信息表中数据根据商品pid合并到订单数据表中。
原创
发布博客 2024.05.17 ·
362 阅读 ·
5 点赞 ·
0 评论 ·
10 收藏

自定义OutputFormat案例实操

我们可以看到这里的需求跟分区差不多,可能会想到用Partition分区去做,但是不行,在Hadoop的MapReduce框架中,OutputFormat接口和Partitioner类在数据处理和结果输出方面扮演着不同的角色。在这个实现中,我们可以根据某些条件(如键的特定值或值的特定属性)将数据写入不同的文件。过滤输入的log日志,包含atguigu的网站输出到e:/atguigu.log,不包含atguigu的网站输出到e:/other.log。
原创
发布博客 2024.05.16 ·
782 阅读 ·
26 点赞 ·
0 评论 ·
13 收藏

Top N案例

实时统计一段时间内的出现次数最多的水位。例如,统计最近10秒钟内出现次数最多的两个水位,并且每5秒钟更新一次。我们知道,这可以用一个滑动窗口来实现。于是就需要开滑动窗口收集传感器的数据,按照不同的水位进行统计,而后汇总排序并最终输出前两名。一种最简单的想法是,我们干脆不区分不同水位,而是将所有访问数据都收集起来,统一进行统计计算。所以可以不做keyBy,直接基于DataStream开窗,然后使用全窗口函数ProcessAllWindowFunction来进行处理。在窗口中可以用一个HashMap来保存每个
原创
发布博客 2024.05.15 ·
428 阅读 ·
5 点赞 ·
0 评论 ·
5 收藏

基于时间的合流——双流联结(Join)

于是对于时间戳为2的A中元素,它的可匹配区间就是[0, 3],流B中有时间戳为0、1的两个元素落在这个范围内,所以就可以得到匹配数据对(2, 0)和(2, 1)。顾名思义,间隔联结的思路就是针对一条流的每个数据,开辟出其时间戳前后的一段时间间隔,看这期间是否有来自另一条流的数据匹配。这里.window()传入的就是窗口分配器,之前讲到的三种时间窗口都可以用在这里:滚动窗口(tumbling window)、滑动窗口(sliding window)和会话窗口(session window)。
原创
发布博客 2024.05.11 ·
365 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

Flink对于迟到数据的处理

比如一个0-10s的窗口,设置了延迟时间是2s,后来来了一条12s的数据,窗口要触发然后关闭,紧接着又来了一条6s的数据,这个数据应该属于0-10s,但是窗口的延迟时间已经过去并且窗口已经关闭了,此时这条数据就叫做迟到数据。
原创
发布博客 2024.05.06 ·
427 阅读 ·
4 点赞 ·
0 评论 ·
3 收藏

Flink中的水位线

在Flink中,用来衡量事件时间进展的标记,就被称作“水位线”(Watermark)。具体实现上,水位线可以看作一条特殊的数据记录,它是插入到数据流中的一个标记点,主要内容就是一个时间戳,用来指示当前的事件时间。而它插入流中的位置,就应该是在某个数据到来之后;这样就可以从这个数据中提取时间戳,作为当前水位线的时间戳了。周期性生成器一般是通过onEvent()观察判断输入的事件,而在onPeriodicEmit()里发出水位线。import org。
原创
发布博客 2024.05.03 ·
523 阅读 ·
4 点赞 ·
0 评论 ·
7 收藏

Flink中的时间窗口和计数窗口效果演示

会话窗口中,最重要的参数就是会话的超时时间,也就是两个会话窗口之间的最小距离。如果相邻两个数据到来的时间间隔小于指定的大小那说明还在保持会话,它们就属于同一个窗口;这里的结果如果觉得不好理解就不要想那么多,反正就是一个步长一定有一个窗口触发和输出。还有一种方法可以动态的获取时间间隔,也就是说超时时间是动态变化的。那么新来的数据就应该属于新的会话窗口,而前个窗口就应该关闭了。20s一个窗口,窗口是连续的,而且没有时间重叠。
原创
发布博客 2024.05.03 ·
329 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

Flink中的窗口

注意:Flink中窗口并不是静态准备好的,而是动态创建——当有落在这个窗口区间范围的数据达到时,才创建对应的窗口。另外,这里我们认为到达窗口结束时间时,窗口就触发计算并关闭,事实上“触发计算”和“窗口关闭”两个行为也可以分开,这部分内容我们会在后面详述。我们定义了窗口分配器之后,我们只是知道了数据属于哪一个窗口,可以将数据收集起来了,至于收集起来要干什么,做什么计算,还是未知。与增量聚合函数不同,全窗口函数需要先收集窗口中的数据,并在内部缓存起来,等到窗口要输出结果的时候再取出数据进行计算。
原创
发布博客 2024.05.03 ·
535 阅读 ·
4 点赞 ·
0 评论 ·
10 收藏

Flink的转换算子【2】

调用.map()方法时传入的不再是一个简单的MapFunction,而是一个CoMapFunction,表示分别对两条流中的数据执行map操作。这种做法非常极端,通过调用.global()方法,会将所有的输入流数据都发送到下游算子的第一个并行子任务中去。轮询就是雨露均沾,很有规律,比如一共有两个分区,第一条数据去一号分区,第二条数据就去二号分区,第三条数据又去了一号分区…根据条件筛选数据的需求,本身非常容易实现:只要针对同一条流多次独立调用.filter()方法进行筛选,就可以得到拆分之后的流了。
原创
发布博客 2024.05.03 ·
426 阅读 ·
3 点赞 ·
0 评论 ·
10 收藏

Flink的转换算子【1】

数据源读入数据之后,我们就可以使用各种转换算子,将一个或多个DataStream转换为新的DataStream。return id;return ts;return vc;} }Objects;return id;return ts;return vc;@Override@Override类是公有(public)的有一个无参的构造方法所有属性都是公有(public)的。
原创
发布博客 2024.05.03 ·
1047 阅读 ·
22 点赞 ·
0 评论 ·
10 收藏

WritableComparable排序案例实操

排序是MapReducer框架中最重要的操作之一。MapTask和ReduceTask均会对数据按照key进行排序,该操作属于Hadoop的默认行为,任何应用程序中的数据均会被排序,而不管逻辑上是否需要。默认排序是按照字典顺序排序,且实现该排序的方法是快速排序。自定义排序WritableComparable原理分析:@Overrideint result;// 按照总流量大小,倒序排列result = 1;
原创
发布博客 2024.04.11 ·
1110 阅读 ·
14 点赞 ·
0 评论 ·
22 收藏

python数据分析和可视化【5】泰坦尼克号幸存者数据分析

使用Seaborn库中的函数,对泰坦尼克号幸存者数据“titanic”进行数据分析与可视化。3)利用Seaborn绘制年龄的直方图和密度图。7)对年龄进行分级,分开老人和小孩的数据。4)显示登船地点(S,C,Q)的人数。6)基于性别,绘制乘客年龄分布箱线图。2)用年龄的均值进行缺失值的填充。5)用柱状图可视化乘客的性别分布。1)查看有无缺失值。
原创
发布博客 2024.04.11 ·
1394 阅读 ·
2 点赞 ·
1 评论 ·
13 收藏

Partition分区案例实操

我们自定义的分区数和在driver类中的设置的分区数之间有一定的关系。(1)如果ReducerTask的数量>getPartition的结果数,则会多产生几个空的输出文件part-r-00xx;(2)如果1
原创
发布博客 2024.04.10 ·
484 阅读 ·
5 点赞 ·
0 评论 ·
6 收藏
加载更多