自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 收藏
  • 关注

原创 Kafka技术详解[8]: 存储消息

因为Kafka底层实现时,采用的是虚拟内存映射技术mmap,将内存和文件进行双向映射,操作内存数据就等同于操作文件,所以效率是非常高的,但是因为是基于内存的操作,所以并不稳定,容易丢数据,因此Kafka的索引文件中的索引信息是不连续的,而且为了效率,kafka默认情况下,4kb的日志数据才会记录一次索引,但是这个是可以进行配置修改的,参数为。HW高水位线会随着follower的数据同步操作,而不断上涨,也就是说,follower同步的数据越多,那么水位线也就越高,那么消费者能访问的数据也就越多。

2024-09-26 22:06:01 1107 2

原创 Kafka技术详解[7]: 生产者消息发送机制与可靠性保障

但是不同的Broker可能无法全部同时接收到marker信息,此时有的Broker上的数据还是无法访问,这也是正常的,因为Kafka的事务不能保证强一致性,只能保证最终数据的一致性,无法保证中间的数据是一致的。只有提交后才能看见数据。此时,如果假设由于网络故障的原因,Kafka并没有成功将ACK应答信息发送给Producer,那么此时对于Producer来讲,以为Kafka没有收到数据,所以就会一直等待响应,一旦超过某个时间阈值,就会发生超时错误,也就是说在Kafka Producer眼里,数据已经丢了。

2024-09-26 21:54:26 1384 1

原创 Kafka技术详解[6]: 创建主题

消息的生产者必须将消息发送到特定的主题,而消费者则从特定的主题中获取消息,并且可以同时消费一个或多个主题的数据。通常,分区的一个副本作为Leader副本,负责所有读写操作,其他副本作为Follower副本,用于数据备份。以上步骤展示了如何通过命令行工具创建具有不同分区和副本数目的主题,并简述了创建主题时涉及到的关键概念和ZooKeeper中的节点变化。创建带有3个分区和3个副本的主题后,ZooKeeper记录每个分区的配置和其副本分布。第四个副本索引:(2 +(1+(2+2)%3))% 4 = 0。

2024-09-25 18:47:15 1882 1

原创 Kafka技术详解[5]: 集群启动

因此,每一个服务节点都称为一个Broker,并且为了区分不同的服务节点,每一个Broker都需要有一个唯一的全局ID,即。Kafka集群含有多个服务节点,而在经典的主从架构中,需要从多个服务节点中选出一个作为集群管理的Master节点,即Controller。如果在运行过程中,Controller节点出现故障,Kafka会依赖于ZooKeeper软件来选举出新的Controller,以确保集群的高可用性。在我们的Kafka集群中,每个节点都有自己的ID,是一个唯一的整数。

2024-09-25 18:29:04 1437 1

原创 Kafka技术详解[4]:构建简易Windows环境下的Kafka集群

因此,Kafka内部包含了许多用于数据传输的组件对象,这些组件相互关联,共同实现了高效的数据传输。下面,我们将详细介绍Kafka中的基础概念及核心组件,并展示如何在Windows环境下搭建一个简单的Kafka集群以供学习和练习之用。启动集群命令后,会打开多个黑窗口,每个窗口代表一个Kafka服务,请勿关闭这些窗口,否则对应的Kafka服务将会停止。尽管生产环境中通常使用Linux系统搭建服务器集群,但为了便于理解和实践,我们将在此章节中搭建一个基于Windows系统的简易集群。

2024-09-24 19:01:01 1456

原创 Kafka技术详解[3]: 生产与消费数据

一旦消息主题创建完成,就可以通过Kafka客户端向Kafka服务器的主题中发送消息。Kafka生产者客户端是一套API接口,任何能够通过这些接口连接Kafka并发送数据的组件都可以称为Kafka生产者。通常,也可通过Java程序来生产数据。同样地,可以通过Java程序来消费数据。一旦消息通过生产者客户端发送到了Kafka服务器,就可以通过消费者客户端对特定主题的消息进行消费。对于需要更直观操作的情况,可以使用专门的工具进行快速访问,例如。

2024-09-24 18:49:46 1657

原创 Kafka技术详解[2]: 环境安装

由于Kafka的绝大多数代码都是用Scala编写,并且Scala基于Java开发,Kafka可以在JVM上直接运行,因此无需安装其他软件。在消息发布/订阅(Publish/Subscribe)模型中,为了可以让消费者对感兴趣的消息进行消费,而不是对所有数据进行消费,定义了主题(Topic)的概念。即将不同的消息进行分类,分成不同的主题(Topic),然后消息生产者在生成消息时,会向指定的主题(Topic)中发送,而消息消费者也可以订阅自己感兴趣的主题(Topic)并从中获取消息。

2024-09-23 23:18:51 1580

原创 Kafka技术详解[1]:简介与基础概念

Kafka是由Scala和Java语言开发的高吞吐量分布式消息发布和订阅系统,也是大数据技术领域中用作数据交换的核心组件之一。因其高吞吐量、低延迟、高可伸缩性、高可靠性、高并发性以及活跃的社区支持等特点而受到广泛欢迎。2010年,LinkedIn公司为了解决消息传输过程中的阻塞和服务不可访问等问题,主导开发了一款分布式消息日志传输系统。该系统的命名灵感来源于西方表现主义文学先驱小说家Franz Kafka的作品《变形记》,尽管这个名字与软件特性并无直接关联。

2024-09-23 22:37:39 1610

原创 Hive企业级调优[8]—— 其他优化

根据上述案例可以看出,CBO优化对于执行计划中join顺序有显著影响。它将。

2024-09-22 19:56:57 1203

原创 Hive企业级调优[7]——HQL语法优化之小文件合并

合并Reduce端输出的小文件指的是将多个小文件整合成较大的单一文件,以减少HDFS上的小文件数量。其实现原理是基于计算任务输出文件的平均大小来决定是否需要合并,并在必要时启动一个额外的合并任务。合并Map端输入的小文件意味着将多个小文件划归到同一个切片中,以便由单一的Map Task来处理。根据任务并行度的默认配置,此SQL语句的Reduce端并行度设为5,因此最终的输出文件数量也是5。小文件合并优化主要分为两个方面:Map端输入的小文件合并以及Reduce端输出的小文件合并。

2024-09-22 19:45:45 983 3

原创 Hive企业级调优[6]——HQL语法优化之任务并行度

如果查询的表包含大量的小文件,则会导致启动大量的map task,造成计算资源的浪费。在这种情况下,如果计算资源充足,可以考虑增加Map端的并行度,使每个map task处理的数据量减少,以加快计算速度。观察任务执行过程会发现,每个Map端输出的数据只有34条记录,共有5个map task。由于Hive自行估算Reduce并行度时,是基于整个MR Job输入文件大小的,因此在某些情况下,其估计的并行度可能并不准确。Map端的并行度指的是Map任务的数量,这通常是由输入文件的切片数决定的。

2024-09-21 20:51:07 1073

原创 Hive企业级调优[5]—— HQL语法优化之数据倾斜

数据倾斜问题通常指的是参与计算的数据分布不均,即某个key或某些key的数据量远超其他key,导致在shuffle阶段,大量相同key的数据被发送到同一个Reduce节点,从而使该Reduce节点所需的时间远超其他Reduce节点,成为整个任务的瓶颈。Hive中的数据倾斜常见于分组聚合和join操作的场景中。

2024-09-21 20:44:05 1034

原创 Hive企业级调优[4]——HQL语法优化之分组聚合优化

所谓 map-side 聚合,就是在 Map 端维护一个哈希表,利用它来完成部分聚合,然后将部分聚合的结果按照分组字段分区,发送至 Reduce 端以完成最终的聚合。这种方法能够有效地减少 Shuffle 的数据量,从而提高分组聚合运算的效率。Map 端负责读取数据,并按分组字段进行分区,通过 Shuffle 将数据发送至 Reduce 端,在 Reduce 端完成最终的聚合运算。2)优化前 未经优化的分组聚合,执行计划如下图所示:(实际图形无法在此文本中展示,请参考执行计划输出结果)

2024-09-20 23:53:00 691

原创 Hive企业级调优[3]—— Explain 查看执行计划

EXPLAIN命令呈现的执行计划由一系列 Stage 组成。这些 Stage 之间存在依赖关系,每一个 Stage 可能对应一个 MapReduce Job 或者一个文件系统的操作等。如果某 Stage 对应了一个 MapReduce Job,则该 Job 在 Map 端和 Reduce 端的计算逻辑分别由 Map Operator Tree 和 Reduce Operator Tree 描述。

2024-09-20 23:45:46 803 1

原创 Hive企业级调优[2]—— 测试用表

文件上传到 hadoop12 节点的。文件上传到 hadoop12 节点的。文件上传到 hadoop12 节点的。文件上传到 hadoop12 节点的。注:需要下载源数据的,评论区私俺。目录,并执行以下导入语句。目录,并执行以下导入语句。目录,并执行以下导入语句。目录,并执行以下导入语句。

2024-09-19 17:52:20 637 1

原创 Hive企业级调优[1]——计算资源配置

MapReduce 资源配置主要包括 Map Task 的内存和 CPU 核数,以及 Reduce Task 的内存和 CPU 核数。本教程的计算环境为 Hive on MR。计算资源的调整主要包括 YARN 和 MapReduce。

2024-09-19 15:02:47 1211 1

原创 中级练习[14]:Hive SQL

动销率定义为品类商品中一段时间内有销量的商品占当前已上架总商品数的比例(有销量的商品 / 已上架总商品数)。滞销率定义为品类商品中一段时间内没有销量的商品占当前已上架总商品数的比例(没有销量的商品 / 已上架总商品数)。用户每天签到可以领1金币,并可以累计签到天数,连续签到的第3、7天分别可以额外领2和6金币。假设今天是数据中所有日期的最大值,从用户登录明细表中的用户登录时间给各用户分级,求出各等级用户的人数。根据用户登录明细表(user_login_detail),求出平台同时在线最多的人数。

2024-09-18 19:52:09 779

原创 中级练习[13]:Hive SQL

通过商品信息表(sku_info)、订单信息表(order_info)和订单明细表(order_detail),分析如果有一个用户成功下单两个及两个以上的购买成功的手机订单(购买商品为xiaomi 10,apple 12,小米13),则输出这个用户的id及第一次成功购买手机的日期和第二次成功购买手机的日期,以及购买手机成功的次数。

2024-09-18 19:37:52 694

原创 中级练习[12]:Hive SQL

从商品价格变更明细表(sku_price_modify_detail),得到最近一次价格的涨幅情况,并按照涨幅升序排序。从订单详情表(order_detail)中查询2021年9月27号至2021年10月3号这一周所有商品每天销售情况。从订单明细表(order_detail)中列出每个商品每个年度的购买总额。

2024-09-17 13:52:31 565

原创 中级练习[11]:Hive SQL

分别从登陆明细表(user_login_detail)和配送信息表中用户登录时间和下单时间统计登陆次数和交易次数。从用户登录明细表(user_login_detail)中首次登录算作当天新增,第二天也登录了算作一日留存。从订单详情表(order_detail)中,求出商品连续售卖的时间区间。

2024-09-17 13:47:26 615

原创 中级练习[10]:Hive SQL

从订单详情表中(order_detail)和商品表(sku_info)中查询各个品类销售数量前三的商品。如果该品类小于三个商品,则输出所有的商品销量。从商品表(sku_info)中求出每个品类的价格中位数。如果是偶数则输出中间两个值的平均值,如果是奇数,则输出中间数即可。从订单详情表(order_detail)中找出销售额连续3天超过100的商品。

2024-09-16 12:22:52 702

原创 中级练习[9]:Hive SQL

假设1号商品销售总额大于21000,2号商品销售总额大于10000,其余商品没有要求。请写出SQL从订单详情表中(order_detail)查询连续两个月销售总额大于等于任务总额的商品。从订单详情表中(order_detail)对销售件数对商品进行分类,0-5000为冷门商品,5001-19999为一般商品,20000及以上为热门商品,并求出不同类别商品的数量。从登录明细表(user_login_detail)中查询在相同时刻,多地登录(ip_address不同)的用户。

2024-09-16 12:16:09 589

原创 中级练习[8]:Hive SQL

从登录明细表(user_login_detail)中查询每个用户两个登录日期(以login_ts为准)之间的最大的空档期。统计最大空档期时,用户最后一次登录至今的空档也要考虑在内,假设今天为2021-10-10。从订单明细表(order_detail)中统计每天商品1和商品2销量(件数)的差值(商品1销量-商品2销量)。从订单信息表(order_info)中查询出每个用户的最近三笔订单。

2024-09-15 17:01:25 978

原创 中级练习[7]:Hive SQL

从订单信息表(order_info)和用户信息表(user_info)中,分别统计每天男性和女性用户的订单总金额,如果当天男性或者女性没有购物,则统计结果为0。从订单明细表(order_detail)中查询出所有购买过商品1和商品2,但是没有购买过商品3的用户。查询截止每天的最近3天内的订单金额总和以及订单金额日平均值,保留两位小数,四舍五入。

2024-09-15 16:54:41 709

原创 中级练习[6]:Hive SQL订单配送与用户社交行为分析

从配送信息表(delivery_info)中求出每个用户的首单(用户的第一个订单)中即时订单的比例,并保留两位小数,以小数形式显示。即时订单是指期望配送日期和下单日期相同的订单,而计划订单是指期望配送日期和下单日期不同的订单。从登录明细表(user_login_detail)中查询出所有用户的连续登录两天及以上的日期区间,以登录时间(login_ts)为准。

2024-09-14 11:25:10 746

原创 中级练习[5]:Hive SQL用户行为与商品价格综合分析

从用户登录明细表(user_login_detail)和订单信息表(order_info)中查询每个用户的注册日期(首次登录日期)、总登录次数以及其在2021年的登录次数、订单数和订单总额。从商品价格修改明细表(sku_price_modify_detail)中查询2021-10-01的全部商品的价格,假设所有商品初始价格默认都是99。从订单明细表(order_detail)中查询累积销售件数高于其所属品类平均数的商品。

2024-09-14 11:19:19 894

原创 中级练习[4]:Hive SQL商品销售与用户增长数据分析

从订单明细表(order_detail)中筛选出去年(2021年)总销量小于100的商品及其销量,同时不考虑上架时间少于一个月的商品。假设今天的日期是2022-01-10。从用户登录明细表(user_login_detail)中查询每天的新增用户数。如果一个用户在某天登录了,并且在此之前没有登录记录,则认为该用户为当天的新增用户。从订单明细表(order_detail)中统计出每种商品销售件数最多的日期及当日销量。如果有同一商品多日销量并列的情况,取其中的最小日期。

2024-09-13 11:00:00 1040 1

原创 中级练习[3]:Hive SQL用户行为与商品销售数据分析

从订单信息表(order_info)中统计每个用户截止其每个下单日期的累积消费金额,以及每个用户在其每个下单日期的VIP等级。从订单信息表(order_info)中查询首次下单后第二天仍然下单的用户占所有下单用户的比例,结果保留一位小数,并以百分数显示。从订单明细表(order_detail)统计每个商品销售首年的年份,销售数量和销售总额。

2024-09-13 10:00:00 716

原创 中级练习[2]:Hive SQL数据分析与查询实战

查询订单明细表(order_detail)中销量(下单件数)排名第二的商品id,如果不存在返回null,如果存在多个排名第二的商品则需要全部返回。

2024-09-12 09:00:00 368

原创 中级练习[1]:Hive数据环境搭建

注:表中一行数据中的两个user_id,表示两个用户互为好友。

2024-09-12 08:00:00 993

原创 初级练习[5]:多表查询——多表连接

【代码】初级练习[5]:多表查询——多表连接。

2024-09-11 15:24:55 1097

原创 初级练习[4]:多表查询——表联结

【代码】多表查询[1]:表联结。

2024-09-11 14:54:26 665

原创 初级练习[3]:Hive SQL子查询应用

没有学全所有课,也就是该学生选修的课程数 < 总的课程数。学生选修的课程数 = 3。

2024-09-10 20:06:19 668

原创 初级练习[2]:Hive SQL查询汇总分析

先提取出每个学生的姓并分组,如果分组的count>=2则为同姓。按课程分组并统计组内人数,过滤条件大于等于15。对成绩表中的学号做去重并count。按照学科分组并使用max和min。按照课程号分组并求组内的平均值。http://环境准备。分组、sum、排序。

2024-09-10 19:09:46 1488

原创 初级练习[1]:Hive数据环境搭建与SQL查询实战

【代码】Hive数据环境搭建与SQL查询实战。

2024-09-09 14:36:13 1276 1

原创 Hadoop压缩技术与Hive文件格式详解

压缩格式算法文件扩展名是否可切分DEFLATEDEFLATE.deflate否GzipDEFLATE.gz否bzip2bzip2.bz2是LZOLZO.lzo是SnappySnappy.snappy否压缩格式对应的编码/解码器DEFLATEgzipbzip2LZOSnappy压缩算法原始文件大小压缩文件大小压缩速度解压速度gzip8.3GB1.8GB17.5MB/s58MB/sbzip28.3GB1.1GB2.4MB/s。

2024-09-09 14:04:59 1494

原创 Hive中的分区表与分桶表详解

不过,并非所有的数据集都可形成合理的分区。分桶表的基本原理是,首先为每行数据计算一个指定字段的数据的 hash 值,然后模以一个指定的分桶数,最后将取模运算结果相同的行,写入同一个文件中,这个文件就称为一个分桶(bucket)。动态分区的模式,默认 strict(严格模式),要求必须指定至少一个分区为静态分区,nonstrict(非严格模式)允许所有的分区字段都使用动态分区。命令后,分区元数据会被删除,而 HDFS 的分区路径不会被删除,同样会导致 Hive 的元数据和 HDFS 的分区路径不一致。

2024-09-08 18:21:03 3003

原创 掌握Hive函数[3]:从基础到高级应用

窗口函数是一种在SQL中处理数据的强大工具,它允许用户在结果集的一个特定窗口或范围内执行计算,而不是在整个查询结果上进行操作。1)Hive自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便地扩展。2)当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)。一进一出。用户自定义聚合函数,多进一出。类似于:count/max/min。用户自定义表生成函数,一进多出。

2024-09-08 18:04:49 1290

原创 掌握Hive函数[2]:从基础到高级应用

(多行传入,一个行输出)

2024-09-07 22:12:08 553 2

原创 掌握Hive函数[1]:从基础到高级应用

Hive将常用的逻辑封装成函数供用户使用,类似于Java中的函数。这样做的好处是可以避免用户反复编写相同的逻辑代码,可以直接调用这些函数。重点在于用户需要知道函数的名称及其功能。Hive提供了大量的内置函数,这些函数可以大致分为以下几类:单行函数、聚合函数、炸裂函数(Explode函数)和窗口函数。查看系统内置函数查看内置函数用法查看内置函数详细信息。

2024-09-07 21:50:31 1340 2

Linux环境一键执行脚本命令安装msyql,主打的就是便捷

使用方法: 1.将mysql目录下的所有文件放在Linux系统中同个目录下 2.执行install_mysql.sh脚本即可自动安装 3.如果有提示,可全部默认输入yes回车就好 4.登录MySQL默认密码为000000,如有修改,在执行install_mysql.sh之前,可自行修改脚本如下内容 alter user 'root'@'%' identified with mysql_native_password by '000000';将'000000'改为自己想设置的密码即可

2024-09-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除