
大数据技术学习路线指南
文章平均质量分 91
如果你正在寻找一份系统、全面的大数据技术学习路线指南,那么这个博客专栏就是为你量身打造的!我们致力于帮助你从零开始,一步步掌握大数据领域的核心技术,最终成为一名合格的大数据工程师。
小技工丨
所有的等待终将有所归属
展开
-
Flink之Q&A在极端乱序下,Flink还能处理吗?
Flink通过水印策略优化、状态存储扩展及旁路输出等机制配合可应对大部分极端乱序场景。但对于延迟无上限或要求绝对数据完整性的场景,需结合外部存储和离线计算实现最终一致性。实际应用中需根据业务容忍度在延迟、吞吐量、计算成本之间进行权衡。原创 2025-03-12 07:45:00 · 663 阅读 · 0 评论 -
Flink之水印(watermark)的补充理解
水印(Watermark):用于==事件时间==处理,标记数据流的进度,解决乱序和延迟问题,触发窗口计算原创 2025-03-11 22:25:12 · 1175 阅读 · 0 评论 -
Impala查询引擎一篇应该够用额
impala是cloudera提供的一款高效率的sql查询工具,提供实时的查询效果,官方测试性能比hive快10到100倍,其sql查询比sparkSQL还要更加快速,号称是当前大数据领域最快的查询sql工具原创 2025-03-11 08:00:00 · 1740 阅读 · 0 评论 -
hbase-04 协处理器、热点、数据备份、二级索引
为了HBase的数据查询更高效、适应更多的场景,诸如使用非rowkey字段检索也能做到秒级响应,或者支持各个字段进行模糊查询和多字段组合查询等, 因此需要在HBase上面构建二级索引, 以满足现实中更复杂多样的业务需求。hbase的二级索引其本质就是建立HBase表中列与行键之间的映射关系。原创 2025-03-10 08:00:00 · 962 阅读 · 0 评论 -
hbase-03 实践、整合hive
HBase表中的数据最终都是存储在HDFS上,HBase天生的支持MR的操作,我们可以通过MR直接处理HBase表中的数据,并且MR可以将处理后的结果直接存储到HBase表中。Hive提供了与HBase的集成,使得能够在HBase表上使用hive sql 语句进行查询、插入操作以及进行Join和Union等复杂查询,同时也可以将hive表中的数据映射到Hbase中原创 2025-03-10 07:45:00 · 1976 阅读 · 0 评论 -
hbase-02 存储原理、读写流程、region拆分合并、预分区
一个HRegionServer会负责管理很多个region一个**==region==**包含很多个==store==一个**==列族==就划分成一个==store==**如果一个表中只有1个列族,那么每一个region中只有一个store如果一个表中有N个列族,那么每一个region中有N个store==一个store==里面只有==一个memstore==memstore是一块内存区域,写入的数据会先写入memstore进行缓冲,然后再把数据刷到磁盘一个store里面有很多个**==Sto原创 2025-03-09 09:15:00 · 845 阅读 · 0 评论 -
hbase-01 架构、数据模型、shell命令、javaAPI、过滤器
HBase基于Google的BigTable论文,是建立的==HDFS==之上,提供**高可靠性**、**高性能**、**列存储**、**可伸缩**、**实时读写**的分布式数据库系统。* 在需要==实时读写随机访问==超大规模数据集时,可以使用HBase。原创 2025-03-09 09:00:00 · 862 阅读 · 0 评论 -
Flink之SQL join
Flink sql 支持对动态表进行复杂且灵活的join操作。考虑到查询可能需要的各种语义,flink提供了多种不同类型的join。默认情况下,join的顺序没有做过优化。表是按照他们在from子句中指定的顺序进行join的。你可以通过把更新频率最低的表放在最前面,把更新频率最高的表放在最后面,来调整连接查询的性能。确保指定表的顺序不会产生交叉连接(笛卡儿积),flink不支持这样的操作,会导致查询失败。原创 2025-03-08 19:28:28 · 1081 阅读 · 0 评论 -
hbase-06 Phoenix安装部署&构建二级索引
对于HBase而言,如果想精确地定位到某行记录,唯一的办法是通过rowkey来查询。如果不通过rowkey来查找数据,就必须逐行地比较每一列的值,即全表扫瞄。对于较大的表,全表扫描的代价是不可接受的。原创 2025-03-08 18:50:40 · 635 阅读 · 0 评论 -
hbase-05 namespace、数据的确界&TTL
在HBase中,namespace命名空间指对一组表的逻辑分组,类似RDBMS中的database,方便对表在业务上划分。在HBase当中,我们可以为数据设置上界和下界,其实就是定义数据的历史版本保留多少个,通过自定义历史版本保存的数量,我们可以实现数据多个历史版本的数据查询在实际工作当中经常会遇到有些数据过了一段时间我们可能就不需要了,那么这时候我们可以使用定时任务去定时的删除这些数据或者我们也可以使用Hbase的TTL(Time To Live)功能,让我们的数据定期的会进行清除原创 2025-03-08 18:27:12 · 656 阅读 · 0 评论 -
Flink之Barrier对齐会影响执行效率,怎么跳过Barrier对齐,跳过后还能保证Exactly-Once语义吗?
特性Barrier对齐检查点非Barrier对齐检查点执行效率可能因等待Barrier产生延迟无等待,吞吐量更高检查点大小较小较大(含未处理数据)Exactly-Once保证支持支持适用场景常规数据流高吞吐/数据倾斜/反压严重通过合理选择检查点模式,可在效率与资源消耗之间取得平衡。原创 2025-03-08 15:04:07 · 568 阅读 · 0 评论 -
Sqoop数据迁移工具一篇应该够用额
并不需要将表中的数据全部导入到hive或者hdfs当中去,肯定会出现重复的数据的状况,所以我们一般都是选用一些字段进行增量的导入,为了支持增量的导入,sqoop也给我们考虑到了这种情况并且支持增量的导入数据。在MySQL数据库服务器中创建一个数据库userdb, 然后在创建一张表 emp,添加点测试数据到表中。从MySQL数据库服务器中的userdb数据库下的emp表导入HDFS上。sqoop在发展中的过程中演进出来了两种不同的架构.增量导入是仅导入新添加的表中的行的技术。版本号为1.4.x0。原创 2025-03-08 11:22:37 · 703 阅读 · 0 评论 -
Flume日志采集框架一篇应该够用额
1、案例场景在数据采集之后,通过flume的拦截器,实现不需要的数据过滤掉,并将指定的第一个字段进行加密,加密之后再往hdfs上面保存2、数据文件 user.txt3、创建maven工程添加依赖</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</</4、代码开发import com。原创 2025-03-08 11:03:31 · 775 阅读 · 0 评论 -
Flink SQL 读取 Kafka 数据到 Mysql 实战
通过Flinksql使用DDL的方式,实现读取kafka用户行为数据,对数据进行实时处理,根据时间分组,求PV 和UV ,然后输出到 mysql 中。5、观察mysql数据库中。原创 2025-03-08 10:37:48 · 1320 阅读 · 0 评论 -
Flink深入浅出之05:CEP复杂事件
定义 Pattern 可以是单次执行模式,也可以是循环执行模式。单次执行模式一次只接受 一个事件,循环执行模式可以接收一个或者多个事件。通常情况下,可以通过指定循环次数将单次执行模式变为循环执行模式。每种模式能够将多个条件组合应用到同一事件之上,条件组合可以通过 where 方法进行叠加。每个 Pattern 都是通过 begin 方法定义的。原创 2025-03-08 10:35:04 · 1169 阅读 · 0 评论 -
Flink深入浅出之04:时间、水印、Table&SQL
在Spark中有DataFrame这样的关系型编程接口,因其强大且灵活的表达能力,能够让用户通过非常丰富的接口对数据进行处理,有效降低了用户的使用成本。Flink也提供了关系型编程接口 Table API 以及基于Table API 的 SQL API,让用户能够通过使用结构化编程接口高效地构建Flink应用。同时Table API 以及 SQL 能够统一处理批量和实时计算业务,无须切换修改任何应用代码就能够基于同一套 API 编写流式应用和批量应用,从而达到真正意义的批流统一。原创 2025-03-07 23:47:49 · 1079 阅读 · 0 评论 -
Flink深入浅出之03:状态、窗口、checkpoint、两阶段提交
Flink 是一个默认就有状态的分析引擎,前面的WordCount 案例可以做到单词的数量的累加,其实是因为在内存中保证了每个单词的出现的次数,这些数据其实就是状态数据。但是如果一个 Task 在处理过程中挂掉了,那么它在内存中的状态都会丢失,所有的数据都需要重新计算。从容错和消息处理的语义(At -least-once 和 Exactly-once)上来说,Flink引入了State 和 CheckPoint。原创 2025-03-07 18:15:42 · 1077 阅读 · 0 评论 -
Flink深入浅出之02:编程模型、数据源、算子、connector
addSource可以实现读取第三方数据源的数据自定义单并行度数据源继承SourceFunction来自定义单并行度source代码开发/*** 自定义单并行度source*///继承SourceFunction来自定义单并行度source自定义多并行度数据源继承ParallelSourceFunction来自定义多并行度的source代码开发/*** 多并行度的source*///构建流处理环境//添加source//处理。原创 2025-03-06 16:23:44 · 930 阅读 · 0 评论 -
Flink深入浅出之01:应用场景、基本架构、部署模式
掌握Flink的编程规范了解Flink的集群模式。原创 2025-03-06 14:53:26 · 1494 阅读 · 0 评论 -
kafka-4:常见面试题
用什么作为前置判断条件呢?更加通用的方法是,给你的数据增加一个版本号属性,每次更数据前,比较当前数据的版本号是否和消息中的版本号一致,如果不一致就拒绝更新数据,更新数据的同时将版本号 +1,一样可以实现幂等更新。1)如果acks=0,那么producer根本不管写入broker的消息到底成功没有,发送一条消息出去,立马就可以发送下一条消息,这是吞吐量最高的方式,但是可能消息都丢失了,你也不知道的,但是说实话,你如果真是那种实时数据流分析的业务和场景,就是仅仅分析一些数据报表,丢几条数据影响不大的。原创 2025-03-05 00:03:30 · 934 阅读 · 0 评论 -
kakfa-3:ISR机制、HW&LEO、生产者、消费者、核心参数&负载均衡
ISR机制:就是跟leader同步的follower的数量,默认再ISR列表中的follower才可以参与leader的选举,【unclean.leader.election.enable】参数默认是false,修改为true,就可以让不在ISR列表中的follower参与leader选举HW:Highwatermark,标定了一个偏移量值,该偏移量之前的消息对消费者可见,可以消费。LEO:last end offset,日志末端偏移量,标记当前log文件中下一条待写入的消息的offset。HW<=LEO。原创 2025-03-05 00:01:36 · 1033 阅读 · 0 评论 -
kakfa-2:分区策略、文件存储机制、读写效率、整合flume、监控工具
同一个topic下有多个不同的partition,每个partition为一个目录,partition命名的规则是topic的名称加上一个序号,序号从0开始。每一个partition目录下的文件被平均切割成大小相等(默认一个文件是1G,可以手动去设置)的数据文件,每一个数据文件都被称为一个段(segment file),但每个段消息数量不一定相等,这种特性能够使得老的segment可以被快速清除。默认保留7天的数据。每次满1G后,在写入到一个新的文件中。原创 2025-03-04 23:50:21 · 712 阅读 · 0 评论 -
kakfa-1:了解架构、集群部署、命令、生产消费代码
解耦允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。冗余消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。扩展性因为消息队列解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可。灵活性 & 峰值处理能力。原创 2025-03-04 23:28:29 · 988 阅读 · 0 评论 -
SparkStreaming之04:调优
你在工作当中有SparkStreaming调优过项目吗?怎么调优的?效果怎么样?原创 2025-03-04 15:16:33 · 1167 阅读 · 0 评论 -
SparkStreaming之03:容错、语义、整合kafka、Exactly-Once、ScalikeJDBC
ScalikeJDBC是一款给Scala开发者使用的简洁DB访问类库,它是基于SQL的,使用者只需要关注SQL逻辑的编写,所有的数据库操作都交给ScalikeJDBC。这个类库内置包含了JDBC API,并且给用户提供了简单易用并且非常灵活的API。并且,QueryDSL(通用查询查询框架)使你的代码类型安全的并且可重复使用。我们可以在生产环境大胆地使用这款DB访问类库。原创 2025-03-04 15:00:53 · 658 阅读 · 0 评论 -
SparkStreaming之02:高级算子、SparkSQL整合
注意阅读代码中注释原创 2025-03-04 14:24:25 · 557 阅读 · 0 评论 -
SparkStreaming之01:简介、DStream、数据源
离散数据流或者DStream是SS提供的基本抽象。其表现数据的连续流,这个输入数据流可以来自于源,也可以来自于转换输入流产生的已处理数据流。内部而言,一个DStream以一系列连续的RDDs所展现,这些RDD是Spark对于不变的,分布式数据集的抽象。一个DStream中的每个RDD都包含来自一定间隔的数据,如下图:在DStream上使用的任何操作都会转换为针对底层RDD的操作。原创 2025-03-04 14:13:28 · 363 阅读 · 0 评论 -
Spark调优、基于内存模型调优
分配更多的资源> 它是性能优化调优的王道,就是增加和分配更多的资源,这对于性能和速度上的提升是显而易见的,> 基本上,在一定范围之内,增加资源与性能的提升,是成正比的;写完了一个复杂的spark作业之后,进行性能调优的时候,首先第一步,就是要来调节最优的资源配置;原创 2025-03-03 19:34:39 · 1277 阅读 · 0 评论 -
Spark之数据倾斜调优
数据本身问题(1)、key本身分布不均衡(包括大量的key为空)(2)、key的设置不合理spark使用不当的问题(1)、shuffle时的并发度不够(2)、计算方式有误数据倾斜调优的场景和解决方式,也适用于SparkStremaing中去Shuffle调优面试题:你在工作当中遇到哪些数据倾斜的场景,你是如何处理的?你在工作当中调过优吗?怎么处理的?效果怎么样?Spark Shuffle的发展过程。原创 2025-03-03 19:18:35 · 1011 阅读 · 0 评论 -
SparkSQL全之RDD、DF、DS ,UDF、架构、资源划分、sql执行计划、调优......
- Shark是专门针对于spark的构建大规模数据仓库系统的一个框架- Shark与Hive兼容、同时也依赖于Spark版本- Hivesql底层把sql解析成了mapreduce程序,Shark是把sql语句解析成了Spark任务- 随着性能优化的上限,以及集成SQL的一些复杂的分析功能,发现Hive的MapReduce思想限制了Shark的发展。- 最后Databricks公司终止对Shark的开发,决定单独开发一个框架,不在依赖hive,把重点转移到了sparksql这个框架上。原创 2025-03-03 18:46:36 · 1286 阅读 · 0 评论 -
Vocal~怎么没人告诉我?大数据技术组件(更新中......)
大数据技术组件学习框架:hadoop、hive、sparkCore、sparkSQL、sparkStreaming、zookeeper原创 2025-03-03 02:35:33 · 263 阅读 · 0 评论 -
Spark核心之06:知识点梳理
默认是HashPartitioner该函数对key进行哈希,然后对分区总数取模,取模结果相同的就会被分到同一个partition中HashPartitioner分区逻辑:key.hashcode % 分区总数 = 分区号如果嫌HashPartitioner功能单一,可以自定义partitioner。原创 2025-03-03 02:21:11 · 985 阅读 · 0 评论 -
Spark核心之05:sparkOnYarn、资源参数、调度模式、资源分配策略、shuffle机制??
Shuffle就是对数据进行重组,由于分布式计算的特性和要求,在实现细节上更加繁琐和复杂。在MapReduce框架,Shuffle是连接Map和Reduce之间的桥梁,Map阶段通过shuffle读取数据并输出到对应的Reduce;而Reduce阶段负责从Map端拉取数据并进行计算。在整个shuffle过程中,往往伴随着大量的磁盘和网络I/O。所以shuffle性能的高低也直接决定了整个程序的性能高低。Spark也会有自己的shuffle实现过程。原创 2025-03-03 02:14:48 · 1089 阅读 · 0 评论 -
Spark核心之04:spark程序运行架构流程、共享变量(广播变量和累加器)、程序序列化问题
在对RDD数据进行分区时,默认使用的是该函数对key进行哈希,然后对分区总数取模,取模结果相同的就会被分到同一个partition中HashPartitioner分区逻辑:key.hashcode % 分区总数 = 分区号如果嫌HashPartitioner功能单一,可以自定义partitioner实现自定义partitioner大致分为3个步骤1、继承2、重写方法3、重写方法1、spark任务的提交、任务的划分、任务的调度(★★★★★)2、spark自定义分区。原创 2025-03-03 01:52:11 · 1208 阅读 · 0 评论 -
Spark核心之03写mysql、写HBase、RDD宽窄依赖、DAG、缓存、Checkpoint
可以把一个rdd的数据缓存起来,后续有其他的job需要用到该rdd的结果数据,可以直接从缓存中获取得到,避免了重复计算。缓存是加快后续对该数据的访问操作。1、rdd的算子操作案例(★★★★★)重点是掌握算子的使用2、rdd的依赖关系宽依赖窄依赖3、rdd的缓存机制(★★★★★)cachepersist4、checkpoint机制(★★★★★)5、DAG有向无环图是什么6、如何划分stage(★★★★★)原创 2025-03-03 01:38:38 · 1121 阅读 · 0 评论 -
Spark核心之02:常用算子详解
1.1 基本转换1) mapmap是对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD。 任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。举例:上述例子中把原RDD中每个元素都乘以2来产生一个新的RDD。filter 是对RDD中的每个元素都执行一个指定的函数来过滤产生一个新的RDD。 任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。3) flatMap与map类似,区别是原RDD中的元素经map处理后只能生成一个元素,而原RDD中的元素经flatmap处理后可生原创 2025-03-03 00:42:51 · 1236 阅读 · 0 评论 -
Spark核心之02:RDD、算子分类、常用算子
在一个(K,V)的RDD上调用,返回一个(K,V)的RDD,使用指定的reduce函数,将相同key的值聚合到一起,与groupByKey类似,reduce任务的个数可以通过第二个可选的参数来设置 ,在类型为(K,V)和(K,W)的RDD上调用,返回一个相同key对应的所有元素对在一起的(K,(V,W))的RDD。在类型为(K,V)和(K,W)的RDD上调用,返回一个(K,(Iterable,Iterable))类型的RDD。返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成。原创 2025-03-03 00:27:35 · 1166 阅读 · 0 评论 -
Spark核心之01:架构部署、sparkshell、程序模板
(1)mapreduce任务后期再计算的时候,每一个job的输出结果会落地到磁盘,后续有其他的job需要依赖于前面job的输出结果,这个时候就需要进行大量的磁盘io操作。(2)spark任务后期再计算的时候,job的输出结果可以保存在内存中,后续有其他的job需要依赖于前面job的输出结果,这个时候就直接从内存中获取得到,避免了磁盘io操作,性能比较高。spark是基于内存计算框架,计算速度非常之快,但是它仅仅只是涉及到计算,并没有涉及到数据的存储,后期需要使用spark对接外部的数据源,比如hdfs。原创 2025-03-02 23:41:54 · 1180 阅读 · 0 评论 -
Hive-10之数据倾斜处理办法
由于数据分布不均匀,造成数据大量的集中到一点,造成数据热点。原创 2025-03-02 16:56:50 · 462 阅读 · 0 评论 -
Hive-08之数据仓库之建模、分析
英文名称为,可简写为DW或DWH。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持它出于分析性报告和决策支持目的而创建。数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用,这也是为什么叫“仓库”,而不叫“工厂”的原因。数据仓库是面向主题的集成的稳定性的(Non-Volatile)和时变的(Time-Variant )数据集合,用以支持管理决策。原创 2025-03-02 16:54:39 · 1798 阅读 · 0 评论