- 博客(82)
- 收藏
- 关注
原创 大数据开发(离线实时音乐数仓)
数据集成:在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息,这个过程中会有 ETL 操作,以保证数据的一致性、完整性、有效性、精确性。在以上事实表的示例中,“地区 ID”、“产品 ID”、“月份 ID”为键值列,“销售量”、“销售额”为度量列,所谓度量列就是列的数据可度量,度量列一般为可统计的数值列。维度建模是面向分析,为了提高查询性能可以增加数据冗余,反规范化的设计技术。每个主题下面都有对应的表。
2024-03-27 20:00:42
1036
原创 大数据开发(日志离线分析项目)
不采用ip来标识用户的唯一性,通过在cookie中填充一个uuid来标识用户的唯一性。埋点:在页面(jsp或html)中植入js代码。用户基本信息:pageview事件+launch事件浏览器信息分析:在用户基本信息分析的基础上添加浏览器这个维度信息,pageview事件地域信息:通过nginx服务器来收集用户的ip地址来进行分析,pageview事件外链数据分析、用户浏览深度分析:在pageview事件中添加访问页面的当前url和前一个页面的url,pageview事件。
2024-03-26 19:12:12
1222
原创 大数据开发(Kafka面试真题)
Kafka是一种高吞吐量的分布式分布订阅消息系统,常用于构建实时数据流管道和可靠的消息系统。消息传递:Kafka通过发布订阅模式,将消息从一个应用程序传递到另一个应用程序。它提供了高吞吐量,低延迟的消息传递机制。存储系统:Kafka可以持久化地存储消息,并允许消费者按需读取。这使得Kafka可以作为一个高性能地分布式存储系统,用于处理大规模的数据。流处理:Kafka可以与流处理框架(如Apache Storm、Apache Spark等)集成,用于处理实时数据流。
2024-03-21 20:06:29
931
原创 大数据开发(Hive面试真题)
Hive的三种自定义函数包括UDF(User-Defined Function(用户定义函数))、UDAF(User-Defined Aggregate Function(用户定义聚合函数))和UDTF(User-Defined Table-Generating Function(用户定义表生成函数))。UDF是最常见的自定义函数类型,用于对单个输入值进行处理并返回一个输出值。
2024-03-21 19:44:43
1378
原创 大数据开发(HBase真题)
HDFS是Hadoop生态系统中的一部分,是一种高容错、高可靠性、分布式文件系统。数据以块的形式进行存储,在集群中分布在多个节点上。HDFS适合用于大规模数据处理,具有高吞吐量和扩展性,并且支持并行读写操作。HBase是一个构建在Hadoop上的面向列的NoSQL分布式数据库。它提供了快速随机访问大型数据集的能力,并具有强大的横向扩展能力。HBase适合用于需要实时访问和查询海量结构化数据的场景,例如提供实时分析和查询。HMasterHBase集群的主节点,负责管理和协调整个集群的操作。
2024-03-21 19:32:54
1723
原创 大数据开发(Spark面试真题)
Spark Streaming是Spark提供用于实时流式数据处理和分析的库。它基于离散时间间隔将原始流式数据划分为小的批处理,然后将这些批次数据提供给Spark引擎进行处理。Spark内存管理机制通过动态划分内存空间为执行引擎和缓存两个部分来优化计算和访问速度。Executor Memory(执行内存):执行内存用于保存RDD转换操作生成的执行结果及相关遍历。它直接影响了并行处理任务时可利用的资源量。Storage Memory(缓存内存):缓存部分被称为Storage Memory,并且用于。
2024-03-21 19:19:12
1603
原创 大数据开发(Hadoop面试真题)
HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的简称。它是一个可扩展的分布式文件系统,设计用于存储和处理大规模数据集的应用程序。高容错性:HDFS将文件划分为多个块,并在多个节点上进行复制存储,以实现数据的冗余备份。当某个节点或块发生故障时,HDFS可以自动恢复数据,保证数据的高可用性。高吞吐量:HDFS通过并行处理数据块,能够以较高的速度读取和写入数据。它适合存储大量数据,并且能够高效地进行批处理操作。适应大文件存储。
2024-03-20 22:42:14
1402
原创 大数据开发(Kafka面试真题-卷三)
具体来说,蓄水池机制通过引入两个参数来控制消息的消费速率:‘fetch.min.bytes’和’fetch.max.wait.ms’。'fetch.min.bytes’表示每次从Kafka服务器获取的最小字节数,而’fetch.max.wait.ms’表示等待服务器返回数据的最大时间。因此,在使用Kafka时,通常建议将其视为一个不可变的数据源,并使用其它工具或方法来处理数据的删除需求。通过这种分区和副本的备份机制,Kafka实现了数据的高可用性和容错性。然而,Kafka提供了一种方式来删除数据,即。
2024-03-14 16:33:31
677
原创 大数据面试(Kafka面试真题-卷二)
OSR:是指Out-of-Sync Replicas,是指与leader副本失去同步的副本集合。当ISR中的副本失去与leader副本的同步,它们将被移动到OSR中,直到重新与leader副本同步。ACK:是指Ackowledgement,用于控制生产者发送消息时的可靠性和性能。ACK=0生产者不等待任何确认,将消息发送到Kafka后即认为发送成功,适用于对可靠性要求不高的场景。ACK=1生产者等待leader副本成功写入消息后即认为发送成功,适用于对可靠性要求较高的场景。ACK=all。
2024-03-13 22:11:04
602
原创 大数据开发(Kafka面试真题-卷一)
Kafka是一种高吞吐量的分布式分布订阅消息系统,常用于构建实时数据流管道和可靠的消息系统。消息传递:Kafka通过发布订阅模式,将消息从一个应用程序传递到另一个应用程序。它提供了高吞吐量,低延迟的消息传递机制。存储系统:Kafka可以持久化地存储消息,并允许消费者按需读取。这使得Kafka可以作为一个高性能地分布式存储系统,用于处理大规模的数据。流处理:Kafka可以与流处理框架(如Apache Storm、Apache Spark等)集成,用于处理实时数据流。
2024-03-13 20:11:09
1266
1
原创 大数据开发(Hive面试真题-卷二)
Hive的三种自定义函数包括UDF(User-Defined Function(用户定义函数))、UDAF(User-Defined Aggregate Function(用户定义聚合函数))和UDTF(User-Defined Table-Generating Function(用户定义表生成函数))。UDF是最常见的自定义函数类型,用于对单个输入值进行处理并返回一个输出值。
2024-03-13 14:43:50
1218
1
原创 大数据开发(Hive面试真题-卷一)
外部表的元数据由Hive负责管理,但数据本身由外部存储系统管理。当删除外部表时,Hive只删除元数据而不删除实际数据。外部表适用于需要与其它系统共享数据的场景,如与其它工具或框架进行数据交互。
2024-03-12 21:34:16
908
原创 大数据开发(HBase面试真题-卷二)
通过Get操作,可以获取到指定行键对应的完整数据行,包括所有的行族和列的数据。预分区键可以是任意的字节数组,通常是根据数据的特点和访问模式来选择的。另外,HBase还提供了强一致性的数据模型和灵活的数据模式,可以根据需求动态地添加和删除列。是的,HBase的rowkey不能超过一定的长度是为了保证HBase的性能和存储效率。此外,rowkey的唯一性是HBase中数据的检索和存储的重要依据。读缓存可以提高读取性能,因为内存的读取速度远快于磁盘的读取速度。预分区的规则可以是基于哈希值,也可以是基于范围。
2024-03-12 15:09:52
1849
原创 大数据开发(HBase面试真题-卷一)
HDFS是Hadoop生态系统中的一部分,是一种高容错、高可靠性、分布式文件系统。数据以块的形式进行存储,在集群中分布在多个节点上。HDFS适合用于大规模数据处理,具有高吞吐量和扩展性,并且支持并行读写操作。HBase是一个构建在Hadoop上的面向列的NoSQL分布式数据库。它提供了快速随机访问大型数据集的能力,并具有强大的横向扩展能力。HBase适合用于需要实时访问和查询海量结构化数据的场景,例如提供实时分析和查询。HMasterHBase集群的主节点,负责管理和协调整个集群的操作。
2024-03-12 10:33:19
1248
原创 大数据开发(Java面试真题)
Java中的String是不可变的,这是因为String类被设计成了不可变的对象。这意味着一旦一个String对象被创建,它的值就不能被修改。线程安全:不可变的特性使得String对象在多线程环境中是安全的。因为它的值不可变,不会被其它线程修改,所以不需要同步控制。缓存哈希值:String类将哈希值缓存在对象中,因为它是不可变的,所以哈希值只需要计算一次,而不需要每次使用时重新计算。这样可以提高性能。字符串池:Java中的字符串池是为了节省内存而设计的。不可变的String对象可以。
2024-03-11 19:51:30
1280
原创 大数据开发(Spark面试真题-卷六)
Spark客户端将应用程序提交给集群的Spark主节点(Master)。Spark主节点接收到应用程序后,会将应用程序的信息存储在调度器中,并将应用程序的任务分配给可用的工作节点(Worker)。工作节点根据分配的任务,在本地启动Spark执行器(Executor)进程。每个Executor进程会启动一个或多个执行线程,用于执行应用程序的任务。Executor进程会从Spark主节点获取应用程序的代码和依赖,并将其加载到内存中。一旦Executor进程准备好,它会。
2024-03-11 19:16:33
1172
原创 大数据开发(Spark面试真题-卷五)
Spark RDD是Spark中最基本的数据抽象,是一种分布式的、不可变的数据集合。RDD可以看作是Spark中的一个弹性分布式的内存数据集,它可以在集群中进行并行计算。弹性:由于RDD是不可变的,所以可以通过重新计算来恢复丢失的数据,保证了数据的弹性和容错性。分区:RDD将数据分为多个分区,每个分区可以在集群中的不同节点上进行并行计算。依赖:RDD之间通过依赖关系构建了有向无环图(DAG),这样可以在数据丢失时进行恢复。惰性计算。
2024-03-11 15:57:54
883
原创 大数据开发(Spark面试真题-卷四)
Spark Application(应用程序):一个独立的Spark作业,它是由一系列的任务(tasks)组成的。一个Spark Application通常包含多个任务(jobs),每个作业由一个或多个RDD转换和操作组成。Job(作业)Job是一组相互依赖的RDD转化和动作操作的有向无环图(DAG)。一个Job代表了一个完整的作业执行过程,它从输入数据开始,经过一系列的RDD转化和动作操作,最终产生输出结果。一个Spark应用程序通常包含多个Job。
2024-03-10 11:28:58
996
原创 大数据开发(Spark面试真题-卷三)
Spark Shuffle是Apache Spark中的一个关键概念,用于在数据分区的过程中重新分配和重组数据。当Spark执行对数据进行重新分区或聚合操作时,它需要将数据重新发送到不同的节点上,以便进行下一步的计算。这个过程就是Shuffle。数据本地性Spark Shuffle可以在节点之间移动数据,以便在计算过程中最大限度地利用数据本地性。这减少了数据传输地开销,提高了计算的性能。分布式计算Shuffle运行Spark在多个节点上进行执行计算操作,从而实现了分布式计算的能力。
2024-03-09 21:43:28
1189
原创 大数据开发(Spark面试真题-卷二)
同时,通过合理配置堆内存和堆外内存的大小,可以充分利用集群的资源,提升Spark应用的性能。Spark作业调度是指对Spark应用中的任务进行合理的调度和分配资源的过程。:将RDD中的所有元素收集到驱动程序节点,以数组的形式返回。:将RDD中的元素按键分组,生成(键,值列表)对的RDD。:对RDD中的每个元素应用一个函数,返回一个新的RDD。:根据给定的条件筛选RDD中的元素,返回一个新的RDD。:使用给定的二元运算符函数对RDD中的元素进行归约操作。:去除RDD中的重复元素,返回一个新的RDD。
2024-03-09 11:21:16
1111
原创 大数据开发(Spark面试真题-卷一)
Spark Streaming是Spark提供用于实时流式数据处理和分析的库。它基于离散时间间隔将原始流式数据划分为小的批处理,然后将这些批次数据提供给Spark引擎进行处理。不断从流源接收数据,并将其划分为微批次。将每个微批次传递给Spark引擎。Spark引擎对每个微批次执行相同的操作,如数据转换、过滤和聚合等。处理结果可以写入外部存储系统或输出到其它系统。Spark内存管理机制通过动态划分内存空间为执行引擎和缓存两个部分来优化计算和访问速度。Executor Memory(执行内存)
2024-03-08 16:56:12
1443
原创 大数据开发(Hadoop面试真题-卷八)
YARN是Apache Hadoop生态系统中的一个集群资源管理器。它的主要目的是管理和分配集群中的资源,并为运行在Hadoop集群上的应用程序提供资源。YARN的架构基于两个主要组件:ResourceManager(资源管理器)和NodeManager(节点管理器)。负责整个集群的资源管理和调度。它接收来自客户端的应用程序提交请求,并根据可用资源进行分配。ResourceManager也负责监控集群中的资源使用情况,并在需要时进行重新分配。:每个集群节点上运行一个NodeManager,它。
2024-03-07 15:24:10
1238
2
原创 大数据开发(Hadoop面试真题-卷七)
具体来说,Map阶段输出的每个键值对都会根据键的哈希值被分配到不同的分区中,同一个键的所有值都会被发送到同一个分区中。Combiner是在Mapper阶段对输出的键值对进行合并和压缩,减少了传输到Reduce阶段的数据量。总的来说,Map的分片大小是根据多个因素综合考虑的,包括文件大小、集群配置、硬件资源和数据位置等。Map的分片大小取决于多个因素,包括所用的分布式文件系统、集群的配置和硬件资源。因此,使用Combiner可以减少网络传输和磁盘IO的开销,提高整体的性能。,以减少数据传输的开销。
2024-03-06 15:07:22
1245
原创 大数据开发(Hadoop面试真题-卷六)
这个过程通常称为分区操作。因此,Reduce任务知道去哪里拉Map结果集是通过分区操作来实现的。每个Reduce任务会收集到属于自己的分区中的键值对,然后对这些键值对进行处理,最终生成最终的结果。所以,Reduce任务知道去哪里拉Map结果集是。
2024-03-06 11:13:40
984
原创 大数据开发(Hadoop面试真题-卷五)
在导入大文件到HDFS时,可以通过自定义分片来更好地管理和利用存储空间。使用Hadoop Archive(HAR)文件:HAR文件是将多个小文件打包成一个大文件的一种方式。可以使用Hadoop提供的’hadoop archive’命令将多个小文件打包成HAR文件。这样可以减少NameNode的元数据开销,并提高文件读取效率。使用SequenceFile:SequenceFile是一种二进制文件格式,可以将多个小文件合并成一个大文件,并保留原始文件的键值对关系。
2024-03-06 09:07:28
959
原创 大数据开发(Hadoop面试真题-卷四)
HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的简称。它是一个可扩展的分布式文件系统,设计用于存储和处理大规模数据集的应用程序。高容错性:HDFS将文件划分为多个块,并在多个节点上进行复制存储,以实现数据的冗余备份。当某个节点或块发生故障时,HDFS可以自动恢复数据,保证数据的高可用性。高吞吐量:HDFS通过并行处理数据块,能够以较高的速度读取和写入数据。它适合存储大量数据,并且能够高效地进行批处理操作。适应大文件存储。
2024-03-05 14:05:12
763
原创 大数据开发(Hadoop面试真题-卷三)
网络带宽:大数据集群中的节点通常通过网络进行数据通信和传输。如果网络带宽不足,会导致数据传输速度慢,从而影响整个集群的计算性能。存储性能:Hadoop集群通常使用分布式存储系统,如HDFS来存储大量的数据。如果存储系统的读写性能较低,会影响数据的读取和写入速度,从而降低整个集群的计算效率。处理能力:集群中的计算节点数量和每个节点的计算能力都会影响集群的整体处理能力。如果集群规模较小或者每个节点的计算能力较低,可能无法满足大规模数据处理的要求,从而称为瓶颈。内存容量。
2024-03-04 14:51:06
1010
原创 大数据开发(Hadoop面试真题-卷二)
Hadoop是一个开源的分布式计算框架,用于处理大规模数据集的存储和处理。它由Apache基金会开发和维护,为处理大数据提供了可靠和高效的解决方案。HDFS:HDFS是一个可扩展的分布式文件系统,用于存储大规模数据集。它将数据分割成多个块,并在集群中的多个节点上进行分布式存储。YARN:YARN是Hadoop的资源管理系统,负责集群资源的调度和管理。它允许不同的应用程序在同一个Hadoop集群上运行,提供了更好的资源利用率和多样化的应用支持。MapReduce。
2024-03-04 10:37:02
1806
原创 大数据开发(Hadoop面试真题-卷一)
输入分片是将大文件切割成适合并行处理的小块数据,每个小块数据叫做一个输入分片。作为MapReduce任务的基本单元,输入分片使得多个计算节点可以同时处理不同的输入数据,并发执行任务。这样可以提高整体任务的执行效率和并发度。数据倾斜指在分布式计算环境下,某个或几个计算节点负责处理的数据量远大于其它计算节点。这导致部分计算节点负载过重、任务执行时间延长。为了解决MapReduce任务中的数据倾斜问题,可以采取以下措施:使用Combiner函数来减少网络传输和磁盘IO。
2024-03-03 20:03:26
982
原创 大数据开发(Java面试真题-卷三)
Serial收集器:Serial收集器是JVM中最古老的一种垃圾回收器,它以单线程方式进行垃圾收集工作,适用于小型或者单核处理器的应用场景。Parallel收集器:Parallel收集器是Serial收集器的改进版本,它使用多线程进行垃圾收集,提高了垃圾收集的效率,适用于多核处理器的应用常见。CMS收集器:CMS收集器是一种以获取最短回收停顿时间为目标的收集器,它通过并发的方式进行垃圾收集,能够在主程序运行的同时进行垃圾收集,适用于对响应时间有较高要求的应用场景。G1收集器:G1收集器是一种。
2024-03-03 17:46:38
807
原创 大数据开发(Java面试真题-卷二)
常见的实现有AbortPolicy(直接抛出异常)、CallerRunsPolicy(用调用者的线程执行任务)、DiscardPolicy(静默丢弃任务)和DiscardOldestPolicy(丢弃队列中最旧的任务)。需要注意的是,如果引用类型成员变量也实现了Cloneable接口并进行了深拷贝,那么在进行深拷贝时需要在clone()方法中递归调用成员变量clone()方法,确保所有层级的引用类型对象都被正确复制。,如果有引用类型的成员变量,浅拷贝仅仅复制了引用而不是创建新的对象。
2024-03-03 15:13:35
1052
原创 大数据开发(Java面试真题-卷一)
JVM垃圾回收指的是当Java应用程序运行时,自动释放不再使用的对象内存空间,并进行资源回收和整理过程。标记-清除算法首先标记所有被引用对象,在清除阶段将未标记的对象释放。复制算法将内存分为相同大小的两块,每次只使用其中的一块。当一块内存用完了之后,将活着的对象复制到另一块内存上,并清除原来使用过的内存。标记-整理算法先标记所有被引用对象,然后将活着的对象移动到一端,最后清除边界以外的对象。分代收集算法根据对象生命周期划分为不同代,在垃圾回收时更关注年轻代,因为大多数新生的对象很快就会死去。
2024-03-03 09:27:50
677
原创 大型电商日志离线分析系统(一)
该部分的主要目标就是描述本次项目最终七个分析模块的页面展示。该文档的主要作用是为了开发人员参考可以参考本文档,了解js sdk的集成方法以及提供的各种不同的api。注意:不采用ip来标示用户的唯一性,我们通过在cookie中填充uuid来标示用户的唯一性。埋点:在页面(jsp或html)中植入js代码。初级埋点:在产品流程关键部位植入相关统计代码,用来追踪每次用户的行为,统计关键流程的使用程度。中级埋点:植入多段动作代码,追踪用户在该模块每个页面上的系统行为,事件之间相互独立。
2024-02-26 22:19:58
978
原创 大数据开发之离线数仓项目(4-1电商数据仓库系统)(可面试使用)
事实表作为数据仓库维度建模的核心,紧紧围绕着业务过程来设计。其包含与该业务过程有关的维度引用(维度表外键)以及该业务过程的度量(通常是可累加的数据类型字段)事务事实表用来记录各业务过程,它保存的是各业务过程的原子操作事件,即最细粒度的操作事件。粒度是指事实表中一行数据所表达的业务细节程度。周期快照事实表以其规律性的、可预见性的时间间隔来记录事实,主要用于分析一些存量型(例如商品库存,账户余额)或者状态型(空气温度,行驶速度)指标。
2024-02-02 16:59:45
1581
原创 大数据开发之离线数仓项目(3数仓数据同步策略)(可面试使用)
按照规划,该flume需将kafka中topic_log的数据发往hdfs。并且对每天产生的用户行为日志进行区分,将不同天的数据发往hdfs不同天的路径。此处选择kafkasource、filechannel、hdfssink。业务数据是数据仓库的重要数据来源,我们需要每日定时从业务数据库中抽取数据,传输到数据仓库中,之后再对数据进行分析统计。为保证统计结果的正确性,需要保证数据仓库中的数据与业务数据库是同步的,离线数仓的计算周期通常为天,所以数据同步周期也通常为天,即每天同步一次即可。
2024-02-01 22:03:25
953
原创 大数据开发之离线数仓项目(2业务数据采集平台)(可面试使用)
字段名字段说明id活动id活动名称活动类型(1:满减,2:折扣)活动描述start_time开始时间end_time结束时间创建时间。
2024-02-01 14:37:29
1105
原创 大数据开发之离线数仓项目(用户行为采集平台)(可面试使用)
按照规划,需要采集的用户行为日志文件分布在102,103两台日志服务器,故需要在102,103两台节点配置日志采集flume。日志采集flume需要采集日志文件内容,并对日志格式(JSON)进行校验,然后将校验通过的日志发送到kafka。此处可选择taildirsource和kafkachannel,并配置日志校验拦截器。选择taildirsource和kafkachannel的原因如下:taildirsource相比execsource、spoolingdirectorysource的优势。
2024-01-31 19:57:22
2435
原创 大数据开发之Spark(完整版)
第 1 章:Spark概述1.1 什么是spark回顾:hadoop主要解决,海量数据的存储和海量数据的分析计算。spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。1.2 hadoop与spark历史hadoop的yarn框架比spark框架诞生的晚,所以spark自己也涉及了一套资源调度框架。区别:1、mr是基于磁盘的,spark是基于内存2、mr的task是进程3、spark的task是线程,在executor进程里执行的是线程4、mr在container里执行(留有
2024-01-25 15:13:26
1071
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人