- 博客(201)
- 资源 (4)
- 收藏
- 关注

原创 Hadoop-job作业执行流程+MapReduce实现手机流量统计
1.分析题目要求知道,对于一个用户手机流量文件进行统计,我们想要得到的结果肯定是<key:手机号,value:[上传量 下载量]>
2020-12-07 00:00:09
969

原创 Hadoop-第一个MapReduce程序(WordCount)开发
1.准备数据文件aa.log(注意空格)wenxin xaiowen wangwuxiaowen xiaoxin wenxinxiaowen zhangshan lisi2. 启动Hadoop集群3. 将数据文件上传到HDFS文件系统中[root@Cluster00 ~]# hdfs dfs -mkdir /wordcount[root@Cluster00 ~]# hdfs dfs -put aa.lpg /wordcount3.开发MapReduce引入相关依赖 <
2020-11-29 17:10:07
263

原创 Hadoop-job作业体系结构与每个阶段分析
1. job作业的体系结构A. 一组MapReduce代表一个job作业,代表一次计算B. job作业的来源一定是HDFS,最终结果保存到HDFS中C. 在整个阶段中,Map和Reduce需要程序员手工编码2. 各个阶段分析(WordCount-单词计数)...
2020-11-29 15:54:27
299

原创 Hadoop-MapReduce+Yarn核心原理
1. MapReduce核心:Hadoop体系下一个编程模型(计算框架),主要是用来操作HDFS中存储数据并对HDFS中数据进行计算2. Map+ReduceMap:用来对局部数据进行运算 局部运算Reduce:对局部运算的结果做汇总运算 汇总运算3. Yarn(统一资源调度器,任务资源管理器)a. 整合hadoop集群中资源(CPU,内存)进行统一调度。 比如:12核,1234G;监控map和reduce的执行情况b. Yarn=Resoucer
2020-11-05 12:34:12
209

原创 Hadoop-HA的HDFS集群原理分析
简单HDFS集群中存在的问题?如何解决NameNode 单节点问题 单节点自动故障转移如何解决NameNode单节点问题?a. 找一个额外的NameNode备份原有数据b. 如何解决集群中脑裂(一个集群中多个管理者数据不一致这种情况叫做脑裂)如何解决启动多个NameNode时保证统一时刻只有一个NameNode工作,避免脑裂问题?QJM 使用zookeeper完成高可用zookeeper作为一个监控者,NameNode相互切换的工作,如果活跃节点active宕机,自动切换sta.
2020-11-05 01:00:08
196

原创 Hadoop-windows10安装部署Hadoop2.7.3
1.到官网下载hadoo安装到windows本地地址 https://archive.apache.org/dist/hadoop/core/hadoop-2.7.3/hadoop-2.7.3.tar.gz2. 解压3. 进行设置环境变量1)新建 HADOOP_HOME D:\Hadoop\hadoop-2.7.3\hadoop-2.7.32) Path中增加 %HADOOP_HOME%\bin 和 %HADOOP_HOME%\sbin3)并且把hadoop.dll和win
2020-11-04 22:31:22
887

原创 Hadoop-HDFS的简单架构原理
1. Hadoop引言Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。对于Hadoop的集群来讲,可以分成两大类角色:Master和Slave。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件
2020-11-03 20:44:59
310
1

原创 Hadoop-大数据引言
1. 什么是大数据?对大量的数据集文件处理的过程,称之为大数据(TB级以上)大量数据集:b—k---M—G---T—PB—EB—ZB 换算单位:10242. 为什么是大数据?通过对海量数据进行统计分析,从而在这些分析和统计过程中找出内在规律,从而伪国家和企业创造价值3. 大数据特点?4v特征1.Volume(大量) 数据集非常大 TB级以上||如果数据增长在每天/GB级2.Variety(多样) 数据格式多样 非格式化:音频,视频 半结构:json,mongdb3.Velocity(快
2020-11-02 22:33:15
671
原创 常见面试提问
维度建模是一种用于数据仓库和商业智能系统的数据建模方法,旨在优化查询性能和分析效率。其核心思想是将数据组织为易于理解和分析的结构,通常包括事实表和维度表两部分。。
2025-02-14 16:37:42
267
原创 Clickhouse-复杂json数组解析
arrayJoin: 类似于explode ,将array中的element裂变为行。JSONExtractArrayRaw: 将JsonString 转换为Json。JSONExtractRaw: 抽取json中的key、value。
2024-10-16 11:27:48
568
原创 大数据面试-Zookeeper
ZooKeeper的选举机制是基于Paxos算法的一种分布式选举算法,用于在ZooKeeper集群中选择一个节点作为Leader,负责处理客户端的写请求和协调其他节点。而在偶数个节点的集群中,当有一个节点故障时,剩余节点的数量不足以达到多数派原则,可能导致集群无法正常工作。在奇数个节点的集群中,存在一个节点拥有超过半数的支持,因此选举过程可以更容易达成一致。综上所述,ZooKeeper的选举机制确保了集群的高可用性和一致性,而奇数个节点的配置是推荐的最佳实践,因为它能提供更好的性能、容错性和一致性。
2024-08-23 15:25:04
681
原创 大数据面试-Hive
存储效率上:char即使字符串较短也占用完整的 n 个字符的存储空间,有可能浪费存储。使用varchar(10),则表示只占3个字节,10是最大值,当存储的字符小于10时,按照实际的长度存储。这就表示,存储字符串’abc’,使用char(10),表示存储的字符将占10个字节(包括7个空字符);char类型的长度是固定的,不足的部分用隐藏空格填充,varchar的长度是可变的。使用 char 类型来存储固定长度的字符串,以便于优化存储和查询效率。char类型的效率比varchar的效率稍高。
2024-06-21 14:16:02
377
原创 大数据面试-Scala
如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包。函数柯里化,其实就是将复杂的参数逻辑变得简单化,函数柯里化一定存在闭包。闭包在函数式编程中是一个重要的概念,广泛用于高阶函数、柯里化等技术中。函数柯里化:把一个参数列表的多个参数,变成多个参数列表;高阶函数:1)函数可以作为值进行传递。3)函数可以作为函数返回值返回。2)函数可以作为参数进行传递。
2024-06-21 13:54:04
342
原创 大数据面试-Hadoop
脑裂最简单的理解就是一山不容二虎,当Leader节点出现故障,系统开始改朝换代,当Follower 完成全部工作并且成为 Leader 后,原 Leader 又复活了(它的故障可能是暂时断开或系统暂时变慢,不能及时响应,但其NameNode 进程还在),并且由于某种原因它对应的 ZKFC 并没有把它设置为 Standby,所以原 Leader 还认为自己是 Leader,客户端向它发出的请求仍会响应,于是脑裂就发生了。但是,每条数据之间有交集,需要做聚合汇总,就必须有reduce 阶段。
2024-06-17 16:39:42
430
原创 Spark 收集常见面试题
内存计算:mapreduce在编程模型上,只有简单map和reduce,而且map阶段的所以数据都要写入到磁盘,导致磁盘io开销很大,速度也很慢,而spark是完全基于内存的计算框架,只有当内存溢出的时候,才会写入到磁盘,这减少了磁盘读写操作,提高了计算效率。在早期spark还没有出现的时候,是没人觉得mapreduce慢的,直到spark的出现,让众多大数据开发人员眼前一亮,经过统计,某些情况下,spark的处理效率要比mapreduce快100倍。所以在内存有限的情况下,不推荐使用。
2024-06-17 16:36:16
856
原创 Java 收集常见面试题
查询效率:通常情况下,Set在查询方面比List更高效,尤其是使用HashSet时,其contains方法的时间复杂度为O(1),而ArrayList的contains方法时间复杂度为O(n)。要从Set或List集合中查询出相关的数据,可以使用常见的集合操作方法,例如contains()方法。顺序性:Set不保证元素的顺序,而List保持元素的插入顺序。重复性:Set不允许存储重复的元素,而List允许。保持元素插入的顺序(即迭代时按照插入顺序)。没有顺序(即不保证元素的迭代顺序)。允许包含重复的元素。
2024-06-17 16:23:52
254
原创 Doris Doris分区表-动态分区
动态分区是在 Doris 0.12 版本中引入的新功能。旨在对表级别的分区实现生命周期管理(TTL),减少用户的使用负担。目前实现了动态添加分区及动态删除分区的功能。动态分区只支持 Range 分区。
2024-04-16 14:59:46
951
1
原创 大数据面试
对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name)。早期也是没有内部表和外部表的说法的,在传统的RDMS数据数据库领域中,如果想要对一个数据库表进行例如增删改查等操作,就需要在数据库引擎中规范建立对应的数据库表,并且把数据导入其中才可以操作。但是随着行业、大数据组件的不断发展,这种传统的玩法已经不能满足使用了,因此就提出了能不能通过外部表的形式与外界任何形式的数据建立连接。
2024-03-13 14:10:26
699
原创 Linux-screen
Screen 是在多个进程间多路复用一个物理终端的全屏窗口管理器,Screen 也叫会话,一个Screen 会话中可以有多个 Screen 窗口, 每个窗口类似于一个 SSH 连接。
2024-03-13 13:46:37
425
原创 Flink Window中典型的增量聚合函数(ReduceFunction / AggregateFunction)
在Flink Window中定义了窗口分配器,我们只是知道了数据属于哪个窗口,可以将数据收集起来了;至于收集起来到底要做什么,其实还完全没有头绪,这也就是窗口函数所需要做的事情。所以在窗口分配器之后,我们还要再接上一个定义窗口如何进行计算的操作,这就是所谓的“窗口函数”(window functions)。窗口可以将数据收集起来,最基本的处理操作当然就是基于窗口内的数据进行聚合。我们可以每来一个数据就在之前结果上聚合一次,这就是“增量聚合”。
2023-12-08 17:09:54
1231
原创 Flink Flink数据写入Kafka
flink官方集成了通用的 Kafka 连接器,使用时需要根据生产环境的版本引入相应的依赖。通过socket模拟数据写入Flink之后,Flink将数据写入Kafka。
2023-12-06 20:21:30
2639
原创 Flink Flink中的合流
但我们知道一个DataStream中的数据只能有唯一的类型,所以连接得到的结果并不是DataStream,而是一个“连接流”。事实上内部仍保持各自的数据形式不变,彼此之间是相互独立的。要想得到新的DataStream,还需要进一步定义一个“同处理”(co-process)转换操作,用来说明对于不同来源、不同类型的数据,怎样分别进行处理转换、得到统一的输出类型。所以整体上来,两条流的连接就像是“一国两制”,两条流可以保持各自的数据类型、处理方式也可以不同,不过最终还是会统一到同一个DataStream中。
2023-11-28 16:26:41
1112
原创 Flink Flink中的分流
所谓“分流”,就是将一条数据流拆分成完全独立的两条、甚至多条流。也就是基于一个DataStream,定义一些筛选条件,将符合条件的数据拣选出来放到对应的流里。
2023-11-24 17:50:24
1497
原创 Flink 常用物理分区算子(Physical Partitioning)
在上述实验中,我们设置全局env的并行度为2,尝试执行2次job,发现2次执行的结果不一致,因为shuffle的完全随机性,将输入流分配到不同的分区中,且每次分配可能不一样。这种做法非常极端,通过调用.global()方法,会将所有的输入流数据都发送到下游算子的第一个并行子任务中去。通过调用 DataStream 的.shuffle()方法,将数据随机地分配到下游算子的并行任务中去。这种方式其实不应该叫做“重分区”,因为经过广播之后,数据会在不同的分区都保留一份,可能进行重复处理。
2023-11-24 15:22:57
1241
原创 ClickHouse LIMIT分页查查询
如果为 LIMIT n[,m] 设置了 WITH TIES ,并且声明了 ORDER BY expr_list, 除了得到无修饰符的结果(正常情况下的 limit n, 前n行数据), 还会返回与第n行具有相同排序字段的行(即如果第n+1行的字段与第n行 拥有相同的排序字段,同样返回该结果.虽然指定了LIMIT 5, 但第6行的n字段值为2,与第5行相同,因此也作为满足条件的记录返回。LIMIT n, m 允许选择个 m 从跳过第一个结果后的行 n 行。LIMIT m 允许选择结果中起始的 m 行。
2023-11-23 16:23:33
2904
原创 Flink 将数据写入MySQL(JDBC)
在实际的生产环境中,我们经常会把Flink处理的数据写入MySQL、Doris等数据库中,下面以MySQL为例,使用JDBC的方式将Flink的数据实时数据写入MySQL。
2023-10-26 21:41:07
3588
原创 Flink 中KeyBy、分区、分组的正确理解
数据具体去往哪个分区,是通过指定的 key 值先进行一次 hash 再进行一次 murmurHash,通过上述计算得到的值再与并行度进行相应的计算得到。在Flink中,KeyBy作为我们常用的一个聚合类型算子,它可以按照相同的Key对数据进行重新分区,分区之后分配到对应的子任务当中去。Flink中的KeyBy底层其实就是通过Hash实现的,通过对Key的值进行Hash,再做一次murmurHash,取模运算。注意:数据如果具有相同的key将一定去往同一个分组和分区,但是同一分区中的数据不一定属于同一组。
2023-10-13 17:08:20
4657
原创 Flink 中的时间和窗口
Flink中的窗口并不是提前创建好了的,而是动态创建的,当有落在这个窗口区间范围 的数据达到时,才创建对应的窗口。简单来说,Flink是一个流式计算引擎,主要用来处理无界数据流的,数据源源不断、无穷无尽,想要方便高效的处理这种无界数据流,一种方式就是将这种无界数据划分为多个有界的"数据块",这其实就是窗口(Window)。时间窗口以时间点来定义窗口的开始(start)和结束(end),所以截取出的就是某一时间段的数据。通过上面的图我们可以看到,时间窗口的时间固定,计数窗口的计数固定。
2023-10-11 17:27:31
1349
2
vue-基于springboot+vue+redis实现的前后端分离员工管理系统
2020-10-22
Python-基于Django开发的商场后端管理系统
2020-10-22
dolphinscheduler_dindgding_monitoring-1.0-SNAPSHOT.jar
2021-09-03
结合Vue+axios+SpringBoot开发的用户管理系统
2020-12-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人