- 博客(159)
- 收藏
- 关注
原创 【Flink】初识 Flink,来一起做个 WordCount!
Apache Flink 是一个开源的流处理框架,专为分布式、高性能、随时可用且准确的流处理应用程序而设计。它提供了丰富的状态管理功能和事件时间支持,能够确保精确一次的计算语义,非常适合构建可扩展的ETL、数据分析和事件驱动的流式应用程序。Flink 能够处理无界和有界数据流,并且能够运行在各种集群资源管理器上,如 YARN、Mesos 和 Kubernetes,同时也支持裸机集群部署。有界数据集指的是数据量是有限的、已知的,并且可以在某个时间点完全获取或处理的数据集合。
2024-08-06 10:35:08 692
原创 【Hive SQL 每日一题】找出各个商品销售额的中位数
子查询中可以看到,如果总个数为奇数时,那么该组中的中位数有且仅有一个,因为它无论时正序还是逆序排列,中位数的排名都不会发生改变,这种情况时,那么是不是满足条件。这两个函数无法严格的计算出中位数,它们计算的只是一个近似值,意味着和真正的中位数是存在一定差异的,特别是在数据量较少或数据分布不均的情况下。如果总个数为偶数时,根据中位数的特性,该组的中位数一定是两个,那么如何设置条件呢?需求实现之前,我们需要明确中位数的概念,在日常生活中,我们是如何计算中位数的?,是一个奇数,故它的中位数为第。
2024-07-15 17:11:43 1286
原创 【Hive SQL 每日一题】在线峰值人数计算
当我们把登录和退出时间都放在同一列时,按照时间排序,是不是就可以精准算出每个时刻在线的人数了,这就是子查询。中将列转为了行,那为什么需要这样做呢?当然是为了方便统计。我们来想想,当一个用户登录后进入系统,那么人数是不是会。函数找出各个时间点内最大的峰值人数,完成~做的事情,通过窗口函数进行累加计算,,反之当用户退出时,人数是不是会。本题最核心的地方在于子查询。最终按时间点分组聚合,通过。
2024-07-11 14:22:48 645
原创 【Hive SQL 每日一题】统计每月用户购买商品的种类分布
所以,我们需要先过滤出每个月份符合这个条件的用户ID,由用户ID和月份构建联合键,完成过滤后,再去进行统计。需求说明中,要求我们统计每月各个商品种类的销售分布数据,前提是,只有当用户在当月的下单次数。统计每月用户购买商品的种类分布,每个用户当月的下单次数至少达到。本题的要点在于,如何筛选出我们想要的数据。、category_name 升序排列。时,才被作为有效数据进行统计。次及以上才进行统计。
2024-06-02 21:22:34 483
原创 【Hive SQL 每日一题】统计各个商品今年销售额与去年销售额的增长率及排名变化
惯性思维导致,在排序中,并不是排名越高值越大,相反,因为我们的排名越靠前(越高),其排名值越小,想到这里,就应该明白了。(2)根据(1)中的结果,通过窗口函数排序,获取分别获取两个年度的销售额排名。(3)根据(2)中的结果,判断并计算两个年度的增长率以及排名变化,最终通过。统计各个商品今年销售额与去年销售额的增长率及销售额的排名变化。(1)获取去年与今年两个年度的数据,并进行聚合统计。可能对于排名那里存在疑惑,为什么是。连接商品表,获取商品名称。
2024-05-31 18:05:52 816
原创 从了解到掌握 Spark 计算框架(二)RDD
RDD(Resilient Distributed Dataset)是 Spark 中的核心数据抽象,代表着分布式的不可变的数据集合。分布式的:RDD 将数据分布存储在集群中的多个计算节点上,每个节点上都存储着数据的一个分区。这样可以实现数据的并行处理和计算。不可变的:RDD 是不可变的数据集合,一旦创建就不能被修改。任何对 RDD 进行的转换操作都会生成一个新的 RDD,原始的 RDD 不受影响。可并行计算的:RDD 支持并行计算,可以在集群中的多个计算节点上同时进行计算。
2024-05-30 17:09:14 1086
原创 从了解到掌握 Spark 计算框架(一)Spark 简介与基础概念
Spark 是一个基于内存的分布式计算框架,最初由加州大学伯克利分校的 AMPLab 开发,后来捐赠给了 Apache 软件基金会。它提供了一个高效、通用、可扩展且易用的大数据处理平台,支持各种类型的应用,包括批处理、实时流处理、机器学习和图处理等。
2024-05-28 17:22:43 1936
原创 都2024年了!是谁还不会优化 Hive 的小文件啊!!!速看!
同时,对于 Hive 来说,每个小文件在查询时都会被当作一个块,并启动一个 Map 任务来完成,但这种情况下 Map 任务的启动和初始化时间通常远大于逻辑处理时间,这样就会导致大量的资源浪费,降低程序性能。左右的空间,一旦小文件过多,就会影响 HDFS 的性能,还可能撑爆 NameNode 的内存,造成集群宕机,无法提供服务,这就是为什么要处理小文件的根本原因。命令将小文件合并到本地路径中(操作用户需要有该目录的权限),然后将旧文件删除,上传合并后的文件,完成数据加载。
2024-05-25 23:02:39 1421
原创 手把手教你解决 Hive 的数据倾斜
在处理某些大文件数据时,由于其源压缩格式不能进行拆分,例如:Gzip、Snappy,导致在处理这些数据时,只能将其放在一个 MapTask 中进行处理,从而产生数据倾斜。在多维聚合计算时,如果进行分组聚合的字段过多,且数据量很大,Map 端的聚合不能很好地起到数据压缩的情况下,会导致 Map 端产出的数据急速膨胀,导致作业产生 OOM。产生数据倾斜的根本原因是在进行 Shuffle 流程后,导致 Key 的分布不均匀,造成某些 Reduce 处理的数量较大,形成数据倾斜,导致整个任务的执行效率下降。
2024-05-25 11:32:41 1852
原创 【Hive SQL 每日一题】分析电商平台的用户行为和订单数据
假设你是一位数据分析师,负责分析某电商平台的用户行为和订单数据,平台上有多个用户,用户可以在不同的日期下单,每个订单包含多个商品。请你完成相关业务分析,帮助平台优化运营策略和用户体验。排序并取出平均每月订单金额和订单数量最高的两个用户。统计每个用户每月的平均订单金额和订单数量;记录订单中商品的信息。
2024-05-23 16:26:53 1097
原创 【Hive SQL 每日一题】在线课程学生行为数据分析
假设你是一位数据分析师,负责分析某在线学习平台的学生行为数据,平台上有多个课程,学生可以在不同的日期参加不同的课程,请你完成相关业务分析,帮助平台优化课程内容和学生学习体验。注意,在这里会出现一名学生首日参加多条数据的情况,但由于时间字段没有记录时分秒,无法界定哪条数据先产生,所以这里将首日的数据都进行了保留。在统计时需要去重,因为学生在学习同一门课程时会存在多条记录。按学生性别进行分组,对学习时长累加求和,并统计学生数量;按学生ID进行分组,统计课程ID的数量;记录学生的在线学习课程的数据。
2024-05-22 23:30:13 981
原创 【Hive SQL 每日一题】分组排名取值
然后,利用窗口函数对日期差值进行降序排序,取排名为。近的商品销售记录,只需要改变排序的过滤条件即可。那么距今第二近的销售记录显然是第二条,也就是在。首先,计算出每条销售记录距今的销售日期差值;先使用开窗获取销售记录最近以及最远日期;那么明白了需求,想想该如何去实现呢?近的商品销售记录,还可以获取第。通过排名过滤获取最高的销售记录。的数据,这样就能得到结果啦。使用该方法不仅能获取到距今第。利用窗口函数分组降序排列;通过日期过滤获取最终结果。此外没有其它销售记录。
2024-05-21 15:21:28 437
原创 【Hive SQL 每日一题】行列转换
列,分别代表每名同学对应的各科成绩,我们只需要在统计时加入判断条件即可,每列只固定求某科的成绩,如果不是则用。解决问题的方式有许多种,但往往我们需要去注重学习解决问题的思路,希望本文对你有所帮助。行转列操作,其实就是将行数据通过列的方式进行查询展示而已,这里行转列数据共有。会返回两个参数,其中第一个参数表示索引,第二个参数才是其对应的值。的方式,将表的一列扩展到多行,从而完成列转行的需求。在只使用一个扩展函数时,并不会产生笛卡尔积,如上所示。条件来进行过滤,取到对应的数据。在形成笛卡尔积后,我们可以使用。
2024-05-20 20:34:11 1067
原创 【Hive SQL 每日一题】统计用户留存率
实现用户留存率的需求其实很简单,这里要求在系统上线后,统计每天的用户留存率,我们每次只需要算出“今天”的用户数量与“昨天”的用户数量比例即可。它反映了用户对产品的持续兴趣和满意度,是评估产品成功与否的重要指标之一。用户留存率(User Retention Rate)是一个衡量用户在特定时间段内继续使用某个产品或服务的比例的指标。最终得到的结果是每天的次日留存率趋势,因为我们每次取的数据都是当日与次日的比例。窗口函数来获取上一天的用户登录人数,如果是系统上线第一天,则没有上一天,用。名玩家下载并开始玩游戏。
2024-05-19 23:10:15 978
原创 【Hive SQL 每日一题】统计最近7天内连续下单3日的用户量
通过上面的规律可以发现,如果日期是连续的,那么当它们减去一串顺序的数字后,得到的结果是一致的,我们可以利用这一规则,判断日期是否连续。在这个需求中,并不关心用户购买了多少商品,在意的是用户是否进行了下单,同天下单多次的用户也只算作一次。日内满足多次该条件,但是在这个需求中,每个用户只能算一次,所以还需要去重才能得到最终结果。其实很简单,我们可以通过开窗的方式,计算日期是否连续,我这里是通过打标记来实现的。那么现在来说说这个需求是如何实现的,通过如下。现在得到的结果并不是最终的结果,因为某个用户(
2024-05-18 16:10:40 906 2
原创 【Hive SQL 每日一题】统计最近1天/7天/30天商品的销量
虽然这种方法可以算出结果,但是效率很低,我们需要算三次然后再进行合并,数据量一大的时候那就太慢了,那么有没有更好的方法呢?通过这种方法,我们不再需要写三个子查询然后再进行合并,一个查询即可搞定,提高了整体的运行速度。条件进行过滤,它只会保留符合要求的数据,同样也不会对我们的结果造成影响。行数据,即使数据量变多了也没有关系,因为我们设置了。有用户进行了购买,所以该数据会保留在最近。有用户进行了购买,所以该数据会保留在最近。方法的使用规则,可以百度了解一下。天商品的销量结果中。天商品的销量结果中。
2024-05-17 17:07:04 1014
原创 HiveOnSpark 报错:java.lang.IllegalStateException(Connection to remote Spark driver was lost)‘ Last kno
这里拷贝完成了还不行,因为我们在部署 Hive On Spark 时,通常会上传一份 Spark 的。包,因为该包属于 Hive,所以需要从 Hive 中拷贝一份到 Spark 中。我在 HDFS 上存储 Spark jars 目录的路径是。修改完成后,重启 Hive 元数据服务,再次测试,问题解决。刚刚搭建完 Hive On Spark,测试时出现该错误。目录到 HDFS 上,故该包同样需要上传。,请注意将其修改成你自己的。在 Spark 中找不到。
2024-05-15 23:19:27 526
原创 Hive 特殊的数据类型 Array、Map、Struct
获取数组值的方式和我们在 Java 中一样,采用下标的方式访问,当访问的下标超过数组的长度时,并不会报错,它会返回。这里值 Value 中存在整型和字符型数据类型不统一的情况,它会统一将值 Value 都转换成字符型。Map 是 KV 键值对类型,其中存储的字段数量可多可少,但是 KV 键值对的数据类型必须提前确定。和 Map 一样,它会将前面的数据当作 Key,后面的数据当作 Value,两两组合,形成结构体。它会将前面的数据当作 Key,后面的数据当作 Value,两两组合,形成 Map 集合。
2024-05-11 18:13:29 1523 1
原创 Spark 为什么比 Hive 快
由于 MapReduce 的特性,Hive 在处理大规模数据时可能会出现较高的延迟,因为它需要频繁地将数据写入和读取磁盘,Shuffle 操作会导致花费的时间代价比较大。那么在稳定性方面,Hive 优于 Spark,这是因为在 MR 任务中,数据总是按照块分片进行处理,每块数据都可以独立地读取和处理,并不需要将所有数据都加载到内存中,因此它对内存的需求远低于Spark。由于 Spark 使用的是内存计算,在处理大规模的数据时,需要足够的内存资源,否则可能会发生 OOM 或者导致计算速度非常缓慢。
2024-04-26 15:25:50 2884
原创 ClickHouse 如何实现数据一致性
在大数据中,基本上所有组件都要求做到数据的一致性,因为大多数环境都是分布式的情况,如果数据无法做到一致,最终在进行分析计算时,导致指标出现问题,影响业务。本篇文章将探讨在 ClickHouse 中实现数据一致性的几种方式。
2024-04-25 14:15:11 1538
原创 索引!索引!!索引!!!到底什么是索引?
索引是数据库中的一种数据结构,用于快速查找和访问数据库表中的特定数据。它类似于书籍中的目录,可以帮助快速找到需要的信息而不必逐页查找。在数据库中,索引可以根据某个或多个字段的值排序并保存,这样数据库就可以通过索引快速定位到符合特定条件的数据行,而不必全表扫描,大大提高数据库的查询性能和效率。
2024-04-24 20:30:55 802
原创 ClickHouse 高可用之副本
官方给出的副本表创建示例:参数说明,其中表示分片标识信息,大多数情况下,只需要写入一个占位符。参数二:ZooKeeper 中该表的副本名称,该值必须与其它机器不同!在创建副本表时,它们可以存储在不同的库中,并不会影响副本的创建,只需要保证它们使用的是同一个 Zookeeper 路径即可。
2024-04-23 17:22:32 1600 1
原创 ClickHouse 数据类型、表引擎与TTL
你可以为表中的某个列设置 TTL,指定数据的存储时间,一旦数据的时间戳超过了 TTL 设置的时间,数据将被自动删除。不同的引擎具有不同的特性和适用场景,可以根据数据的特点和应用需求选择合适的引擎来存储和处理数据。ReplacingMergeTree 引擎是 MergeTree 引擎的变种,支持在插入新数据时自动删除旧数据,适用于周期性更新的数据存储场景。查询出来,可能会出现并没有去重成功的情况,这是因为使用的 ClickHouse 是老版本的,在插入数据时不会立即去重。的表,用于存储网站访问日志数据。
2024-04-22 22:01:31 1277
原创 数仓常用分层与维度建模
维度建模是一种在数据仓库和商业智能领域常用的设计方法。它主要用于组织和表示数据,让用户可以方便地进行查询、分析和报告。维度建模的核心思想是将数据组织成维度和事实两类。维度是描述业务过程中各种特征的属性,如时间、地点、产品、客户等(例如:产品详情表),而事实则是与这些维度相关联的数值型数据,如销售额、数量、利润等(例如:产品销售表)。在维度建模中,通常采用星型模型或雪花模型,下面将从这两个方面展开说说。
2024-04-19 11:44:45 1595
原创 FineBI 6.0 Linux 部署、ClickHouse 源配置
FineBI 是一款国产的商业智能(BI)软件产品,提供数据分析、报表制作、数据可视化、数据挖掘等功能。FineBI 可以帮助企业更好地理解和利用自己的数据,从而支持决策和业务发展。它具有易用性强、功能丰富、灵活性高等特点,受到许多企业的青睐。它分为企业版以及试用版,功能都是一样的,但是试用版的并发数量只有2个。
2024-04-17 17:48:16 1866 1
原创 DolphinScheduler 调度工作流报错 Host key verification failed.
在调度多个任务时,如果你选择的失败策略是【继续】,那么可能会导致你即使失败了,也看不到相关的日志,它应该会重复执行,我不知道这算不算 DolphinScheduler 的 BUG,我碰到了这种情况,失败策略选择【结束】时,则不会出现这种情况。导致我刚开始认为是我的 SSH 配置问题,后面验证过发现 SSH 正常,才想起来租户要与操作系统的用户对应。DolphinScheduler 中的租户与 Linux 系统中的用户是对应的,也就是说,在执行调度任务时,失败了,查看日志发现错误 ——
2024-04-16 15:02:16 540
原创 IDEA 打包 Spark 项目 POM 文件依赖
表示依赖项在编译和测试时可用,但在运行时由目标环境(例如应用服务器)提供。这通常用于将依赖项排除在最终的打包文件之外,因为目标环境已经包含了这些依赖项。元素用于指定依赖的作用范围,告诉 Maven 在构建项目时如何处理依赖项。,表示依赖项在编译、测试和运行时都可用。集群拥有相关执行依赖,则可以使用轻量级的包,否则就需要使用具有依赖的包。:表示依赖项在运行时可用,但不会在编译时和测试时包含在。这通常用于在运行时需要但在编译时不需要的依赖项。:表示依赖项只在测试时可用,不会包含在编译和运行时的。
2024-04-11 16:08:59 994
原创 Hive 之 UDF 运用(包会的)
Hive 支持两种 UDF 函数自定义操作,分别是:GenericUDF(通用UDF):用于实现那些可以处理任意数据类型的函数。它们的输入和输出类型可以是任意的,但需要在函数内部处理类型转换和逻辑,可以实现更复杂的逻辑处理。UDF:用于实现那些只能处理特定数据类型的函数。每个 UDF 都明确指定了输入参数的类型和返回值类型,使用更为简单。本文采用的是通用 UDF —— GenericUDF 实现方法这里通过一个在 Hive 中实现两数相加的自定义 UDF 案例来进行说明,看完你就会啦,轻松拿捏。在。
2024-04-06 19:26:09 2665
原创 org.apache.hadoop.security.AccessControlException Permission denied: user=anonymous, access=WRITE...
但是该方法治标不治本,而且我们处于匿名模式下也不安全,如果是测试环境则可以通过手动授权的方式快速解决。既然是因为我们的用户权限问题,那么可以通过创建一个拥有权限的用户不就能解决了,这种方式还更加安全。当我使用 HiveServer2 远程连接对 Hive 进行 DDL 操作时,出现了权限错误,,也就是匿名(游客)模式,但正在执行一个写操作,被拒绝了。为我们在 Hive 中创建的对应用户。报错显示,目前我登录的用户名为。创建完成,没有错误,问题解决。修改 Hive 的配置文件。,检查是否还有权限报错问题。
2024-04-04 20:23:32 1133
原创 Flume 拦截器概念及自定义拦截器的运用
位于 Source 与 Channel 之间,在写入Channel 之前,拦截器可以对数据进行转换、提取或删除,以满足特定的需求。拦截器可以用于监控数据流的运行情况,记录日志信息或统计数据流中的事件数量、处理速率等指标,帮助用户进行性能分析和故障排查。在 Flume 中,拦截器(Interceptors)是一种可以在事件传输过程中拦截、处理和修改事件的组件。例如,可以添加时间戳、主机信息、标签等,以丰富事件数据的内容。Flume 拦截器就是起到这样的效果,对数据进行处理、转换、删除等操作,是不是很简单呀。
2024-04-04 16:45:46 1632
原创 Hadoop、HDFS 相关面试题
Hadoop 是一个开源的分布式存储和计算框架,最初由 Apache 软件基金会开发。它允许大规模数据处理和存储,具有高度可靠性和可扩展性。分布式文件系统HDFS—— 用于数据存储计算框架YARN—— 用于资源管理和作业调度HDFS 是 Hadoop 生态系统的核心组件之一,用于存储大规模数据,并提供高容错性和高吞吐量的分布式文件系统。HDFS 优点高吞吐量: HDFS 针对大文件进行了优化,能够提供较高的数据读写吞吐量。
2024-04-02 19:41:19 1102
原创 Linux(CentOS7.5) 安装部署 Python3.6(超详细!包含 Yum 源配置!)
下的文件全部删除,然后重新获取 Yum 源镜像,清理并更新 Yum 缓存。这一步只要前面 Yum 源配置对了就不会报错,如果出错了,可以直接把。如果安装过程中出现了报错,可以看看下面出现的报错场景,找找解决方法。选择你需要安装的 Python3 版本进行下载 ——这是由于没有 C 语言编译器引起的,下载后即可解决。但下载速度比较慢,可以直接通过我的链接下载 ——这一套操作下来,这个问题应该可以得到解决,这里提示是否需要开启自动优化,无需理会。报错解决后,重新执行编译安装命令。重新执行命令,等待约。
2024-03-29 20:50:15 1584
原创 在 Linux 中通过 SSH 执行远程命令时,无法自动加载环境变量(已解决)
这是由于 Linux 登录方式不同造成所加载的环境变量也有所不同的原因导致的。目录下,这样无论是否登录,都会自动加载。创建一个环境变量文件,存储在。目前我的环境变量都存储在。
2024-03-29 17:40:50 1048
原创 【Apache Superset】从概述、安装到运用,一篇掌握!
Apache Superset 是一个现代的企业级商业智能 Web 应用程序。它快速、轻量、直观,并内置了各种选项,使所有的用户都可以轻松探索和可视化他们的数据,从简单的饼图到高度详细的地理空间图表。简单来说,Superset 就是一个访问数据源并对其进行可视化的工具。
2024-02-15 21:05:17 5764 3
原创 【数据库原理】函数依赖、三范式、视图、事务、数据库设计(概念、逻辑、物理结构设计,实施)、数据流图、数据字典、存储过程、触发器、备份与还原【我统统拿下!】
一、系统需求分析阶段在这个阶段,需要与用户和利益相关者沟通,了解他们的需求和期望。确定数据库所需的功能、数据类型、存储需求以及与用户交互的方式。收集数据的相关需求,包括数据类型、数据量、数据处理方式等。二、概念设计阶段在这个阶段,设计者将需求转化为高层次的概念模型。通常使用实体关系模型(ER 模型)或其他概念性的建模技术,描述实体、关系和约束。这个阶段不关注具体的数据库管理系统,而是专注于概念层面的设计。三、逻辑设计阶段在这个阶段,将概念设计转换为逻辑模型。
2023-12-03 19:07:07 1013 1
原创 retry.RetryInvocationHandler: java.net.NoRouteToHostException: No Route to Host from hadoop100/192.
2023-11-07 22:31:59,334 INFO retry.RetryInvocationHandler: java.net.NoRouteToHostException: No Route to Host from hadoop100/192.168.10.100 to hadoop101:8032 failed on socket timeout exception: java.net.NoRouteToHostException: 没有到主机的路由;检查集群中的每台机器免密登录是否正常。
2023-11-19 12:53:39 470
原创 大数据数仓建模基础理论【维度表、事实表、数仓分层及示例】
数据仓库建模(Data Warehouse Modeling)是指在数据仓库(Data Warehouse)中组织和设计数据的过程,以便支持数据分析、报告和决策制定。数据仓库是一个集成的、主题导向的数据存储,用于存储来自不同来源的数据,经过清洗、转换和集成,以支持业务分析和决策。主要目标是创建一个能够满足用户需求的数据结构,以便用户可以轻松地查询和分析数据。数据仓库建模的选择取决于业务需求、数据的性质以及可用的技术和工具。
2023-11-19 11:38:31 2671
原创 DolphinScheduler V3.1.8 海豚调度器【概述、安装、功能介绍、项目运用、邮箱预警设置】轻松拿捏!
Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。解决数据研发 ETL 依赖错综复杂,无法监控任务健康状态的问题。
2023-11-17 10:50:29 9589
MySQL 8.0 CentOS 一键化部署脚本
2023-09-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人