自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hive的存储格式

hive 高版本的不支持索引了,所以使用 datagrip 的时候,hive.log 中会出现大量的错误。查询性能高,写操作慢,所需内存大,计算量大。此格式为行列混合存储,hive在该格式下,会尽量将附近的行和列的块存储到一起。HQL语句最终会被编译成Hadoop的Mapreduce job,因此hive的压缩设置,实际上就是对底层MR在处理数据时的压缩设置。每一种文件文件格式有一定的压缩比例,但是不是真正的压缩,而是文件格式带来的。hive的压缩使用的是工具压缩,跟存储格式自带压缩不是一回事儿。

2024-12-12 20:43:20 1542

原创 Hive的Serde

在哪里听过这个词?--> 只要碰见将对象存入内存、硬盘、网络传输,对象必须序列化。对象可以想象为活物。1、Java的序列化 (implements Serializable) 讲IO流以及Web开发的时候2、MapReduce Hadoop抛弃了java的序列化方式,自己又创建了一套,implements Writable,原因是 Java的序列化 出来的数据太大了。3、Hive 比如 select * from t_user; --> 查询就是硬盘的数据变为控制台输出的数据,这个过程是反序列化的。假如 i

2024-12-12 20:31:47 870

原创 Hive排名函数

row_number从1开始,按照顺序,生成分组内记录的序列,row_number()的值不会存在重复,当排序的值相同时,按照表中记录的顺序进行排列。生成数据项在分组中的排名,排名相等会在名次中不会留下空位。生成数据项在分组中的排名,排名相等会在名次中留下空位。

2024-11-27 18:54:17 620

原创 Hive序列函数

可以看成是:它把有序的数据集合 平均分配 到 指定的数量(num)个桶中, 将桶号分配给每一行。如果不能平均分配,则优先分配较小编号的桶,并且各个桶中能放的行数最多相差1。语法:lag(colName,n[,default value]): 取字段的前第n个值。需求:获取一个表中,所有消费记录中,每一个人,最后50%的消费记录。last_value 分组内排序后,截止到当前行,最后一个值。lead返回当前数据行的后第n行的数据。lag返回当前数据行的前第n行的数据。需求:求5分钟内点击100次的用户。

2024-11-27 18:51:14 202

原创 hive 窗口函数Over

来一个需求:求每个部门的员工信息以及部门的平均工资。在mysql中如何实现呢。以后看见这种既要明细信息,也要聚合信息的题目,直接开窗!上案例:数据order.txt指标一:需求:查询每个订单的信息,以及订单的总数指标二:查询在2018年1月份购买过的顾客购买明细及总次数。指标三:查询在2018年1月份购买过的顾客购买明细及总人数。

2024-11-26 14:09:34 395

原创 Hive的基础函数

hive中的字段的别名,英文别名不要使用单引号或者双引号,直接写就行,如果是中文的别名需要添加反引号``6) coalesce(col1,col2,col3...)返回第一个不为空的数据。1)nvl 判断一个数值是否为null,如果为null,给一个默认值。语法:array_contains(数组,值),返回布尔类型。3)get_json_object 从json数据中获取值。4) parse_url 解析一个字符串中的url参数。作用:判断数组是否包含某元素。

2024-11-26 09:15:31 451

原创 Flink运行时报 Recovery is suppressed by NoRestartBackoffTimeStrategy

是因为这个 flink 因为某些错误运行失败,但是没有尝试重启。1.15版本之后Flink 已经将。

2024-11-25 20:41:26 605

原创 Hive的基础函数-日期函数

from_unixtime 换算的时间出来之后,和真实的时间相差 8 小时。所以要+8 小时的秒值。将日期转为字符串:date_format()

2024-11-25 14:15:12 827

原创 Hive的压缩【是优化手段之一】

map阶段的设置, 就是在MapReduce的shuffle阶段对mapper产生的中间结果数据压缩。在这个阶段,优先选择一个低CPU开销的算法。因为map阶段要将数据传递给reduce阶段,使用压缩可以提高传输效率。HQL语句最终会被编译成Hadoop的Mapreduce job,因此hive的压缩设置,实际上就是对底层MR在处理数据时的压缩设置。hive的压缩使用的是工具压缩,跟存储格式自带压缩不是一回事儿。压缩工具如何判断好坏?2)hive在reduce阶段的压缩。1)hive在map阶段压缩。

2024-11-21 09:52:34 292

原创 hive的存储格式

1) 四种存储格式hive的存储格式分为两大类:一类纯文本文件,一类是二进制文件存储。Hive支持的存储数据的格式主要有:TEXTFILE、SEQUENCEFILE、ORC、PARQUET第一类:纯文本文件存储textfile: 纯文本文件存储格式,不压缩,也是,磁盘开销大,数据解析开销大第二类:二进制文件存储会压缩,不能使用load方式加载数据- parquet:会压缩,不能使用load方式加载数据- rcfile:会压缩,不能load。查询性能高,写操作慢,所需内存大,计算量大。

2024-11-21 09:03:11 1229

原创 Hive分桶超详细!!!

--指定表内的字段进行分桶。sorted by (id asc|desc) ---指定数据的排序规则,表示咱们预期的数据是以这种规则进行的排序举例:sorted by 指定分桶表中的每一个桶的排序规则--指定getPartition以哪个字段来进行hash,并且排序字段也是指定的字段,排序是以asc排列--相当于distribute by (id) sort by (id)想当于:distribute by (id) -- 指定getPartition以哪个字段来进行hash。

2024-11-20 18:48:31 1797 1

原创 Hive分区的种类 & 分区关联数据的三种方式

静态分区:先创建分区,再加载数据:直接加载数据,根据数据动态创建分区混合分区:分区字段有静态的,也有动态的。

2024-11-20 09:15:25 516

原创 Hive分区详细教程

创建表的时候 partitioned by (year string,month string,day string) 表示创建一个拥有3级分区的表,目前如果没有数据的,是一个分区都没有的。可以将数据按照天进行分区,一个分区就是一个文件夹,当你查询20230826的时候只需要去20230826这个文件夹中取数据即可,不需要全表扫描,提高了查询效率。以上创建的是一级分区,只有一个分区字段,但是有两个分区 dt=20230825 和 dt=20230826。新创建的分区表没有数据的话,是不会有文件夹的。

2024-11-19 12:24:24 1592

原创 hive复杂数据类型Array & Map & Struct & 炸裂函数explode

会将UDTF函数生成的结果放到一个虚拟表中,然后这个虚拟表会和输入行进行join来达到数据聚合的目的。第一步,先将学科和成绩形成一个kv对,其实就是字符串拼接。说明:下标从0开始,越界不报错,以null代替。为什么学这个,因为我们想把数据,变为如下格式。-- lateral view:虚拟表。需求4:查询每个人的最后一科的成绩。explode 专门用于炸集合。

2024-11-18 20:01:10 575

原创 关于Hive使用的一些技巧

第四种默认设置:hive在安装的时候会有元数据,元数据中的设置为默认设置,假如你想更改设置,需要自己编写一个hive-site.xml ,在这个文件中想顶掉哪个默认设置就写哪个。第一种和第二种其实是一种,生命周期都是客户端进入,hive进入后,会自动加载.hiverc文件,将里面的set执行一遍。假如窗口中设置以窗口为准,顶掉前面所有地方的设置,假如.hiverc设置,.hiverc 中的设置会顶替到它之前所有的设置,以此类推。假如 .hiverc 中也有相同的配置,以.hiverc 为准。

2024-11-18 15:21:58 715

原创 hive-内部表&外部表-详细介绍

内部表:表面来看,我们建的所有的表,默认都是内部表,内部表又叫做管理表,它的位置也很固定/user/hive/warehouse下面。外部表:创建的时候需要加关键字external 修饰,而且,外部表它的数据的存储位置可以不在/user/hive/warehouse,可以指定位置。id int,这个location 是本地的意思还是hdfs的路径呢?答案是必须在hdfs上。

2024-11-14 15:07:48 888 2

原创 Hive的数据导出

数据导出的分类:1. 从hive表中导出本地文件系统中(目录、文件)2. 从hive表中导出hdfs文件系统中3. hive表中导出到其它hive表中。

2024-11-14 09:52:39 680 1

原创 Hive基础

规则:大小写规则:1. hive的数据库名、表名都不区分大小写2. 建议关键字大写命名规则:1. 名字不能使用数字开头2. 不能使用关键字3. 尽量不使用特殊符号。

2024-11-11 20:04:09 816

原创 Hive的远程模式

通过hiveserver2 运行的命令,默认底层帮你创建了一个metastore服务器,可能叫ms02,假如有很多人连接我的mysql,就会有很多个metastore,非常的占用资源。解决方案就是:配置一个专门的metastore,只有它可以代理mysql服务,别人必须经过它跟mysql进行交互。假如 hive 直接进入的,操作了数据库,其实底层已经帮助创建了一个metastore服务器,可能叫ms01。修改集群的三个core-site.xml,记得修改一个,同步一下,并且重启hdfs。

2024-11-11 11:23:51 997

原创 hive - 本地模式--最常使用的模式

使用本地模式的最大特点是:将元数据从derby数据库,变为mysql数据库,并且支持多窗口同时使用。初始化元数据(本质就是在mysql中创建数据库,并且添加元数据)将mysql的驱动包,上传至 hive 的lib 文件夹下。测试:同时打开两个窗口都可以使用, 支持多个会话。第三步:修改配置文件 hive-site.xml。第一步:检查你的mysql是否正常。第二步:删除以前的derby数据。

2024-11-09 16:50:49 345

原创 Kafka面试题

在消息发送时涉及到了两个线程,main 线程 和 sender 线程 ,在main线程里面创建了一个双端队列(RecordAccumulator) ,当双端队列里面的信息满足 一定的条件后, sender线程会拉取双端队列里面的信息,sender线程会不断的拉取信息发送给Kafka集群。在sender线程里面有 batch.size 文件 和 linger.ms文件,batch.size文件:当双端队列里面的消息达到16K时,会进行拉取。

2024-11-09 14:53:00 2005

原创 Hive安装-内嵌模式

Hive会自动检测Hadoop的环境变量,如有就必须启动Hadoop打开该文件,进行替换:一个替换了4处一个替换了4处初始化元数据,因为是内嵌模式,所以使用的数据库是derby在hive-site.xml中,3215行,96列的地方有一个非法字符将这个非法字符,删除,保存即可。提示初始化成功!

2024-11-08 09:15:11 410

原创 Hive简介 | 体系结构

Hive 是一个框架,可以通过编写sql的方式,自动的编译为MR任务的一个工具。在这个世界上,会写SQL的人远远大于会写java代码的人,所以假如可以将MR通过sql实现,这个将是一个巨大的市场,FaceBook就这么干。(脸书)FaceBook --> Meta (元宇宙) --> 社交网站(校内网)在大数据中,发展趋势:所有的技术全部都变为SQL。1、Hive是一个数据仓库工具2、可以将数据加载到表中,编写sql进行分析。

2024-11-08 08:17:16 725

原创 Hadoop集群的高可用(HA)-(2、搭建resourcemanager的高可用)

第一步:检查mapred-site.xml ,里面只有yarn配置和historyServer的配置,不需要修改。假如你使用的hadoop版本是3.3.1 兼容 zookeeper 3.6.4 ,否则就会有问题。第三步:将mapred-site.xml 和 yarn-site.xml进行同步。namenode 高可用没问题,resourcemanager的高可用有问题。以前配置的yarn以及日志服务的配置不动,添加ha的相关配置。第二步:修改yarn-site.xml。如何查看谁是干活的,谁是备用的呢?

2024-11-06 10:04:46 405

原创 Hadoop集群的高可用(HA)- (1、搭建namenode的高可用)

HA: High Availability,高可用集群,指的是集群7*24小时不间断服务Hadoop中存在单点故障问题:NameNode ResourceManager在搭建hadoop集群的高可用之前,先将集群进行快照。

2024-11-06 09:48:38 845

原创 zookeeper的选举机制

启动第二台,先投自己一票,然后第一台开始投票,比较两者之间谁的myid大,谁的大,就投给谁,zk02再得一票,第二台两票,超过了半数,领导出现了zk02.启动第一台,第一台开始选举,自己投自己一票,因为超过半数才有效,所以zk01不是领导,此时的状态是选举中。zxid 代表的是事务的次数 如果这个值很大,就表示这个机器上的数据比较的新。如果zxid 也相等,就看每台电脑上的myid了,如果myid谁大谁是领导。zxid 如果epoch 相等,就看谁的zxid大,谁就是领导。如何查看epoch呢?

2024-11-05 10:16:58 761

原创 zookeeper的shell操作

永久顺序节点,在会话结束后不会被自动删除。会在给定的path节点名称后添加一个序列号。临时顺序节点,在会话结束后会自动被删除。会在给定的path节点名称后添加一个序列号。临时节点,只要客户端和服务器端断开连接,临时节点就会被删除。deleteall 可以删除整个节点,包含下面的子节点。永久节点,在会话结束后不会被自动删除。临时节点,在会话结束后自动被删除。永久节点:断开连接,不会删除。它只能删除没有子节点的数据。

2024-11-05 09:26:42 542 1

原创 zookeeper安装

进入到/opt/installs/zookeeper/conf文件夹下,重命名zoo_sample.cfg。记得在zookeeper中创建zkData文件夹,以及myid文件。安装之前:先关闭三台服务器的防火墙!在bigdata02中,修改myid 为2。2)解压 /opt/installs下面。1)上传 /opt/modules下面。bigdata03中,修改myid为3。在每一台电脑上,都启动zkServer。

2024-11-04 14:07:06 589

原创 Zookeeper 简介 | 特点 | 数据存储

zk就是一个分布式文件系统,不过存储数据的量极小。1. zookeeper是一个为分布式应用程序提供的一个分布式开源协调服务框架。是Google的Chubby的一个开源实现,是Hadoop和Hbase的重要组件。主要用于解决分布式集群中应用系统的一致性问题。2. 提供了基于类似Unix系统的目录节点树方式的数据存储。

2024-11-04 09:26:05 652

原创 Yarn的三种调度器

在我们的ResourceManager中,存在调度器。所谓的调度器,其实就是协调各个任务之间的资源的。job1 job2 job3 每个任务都是有大有小,有些大任务可能需要运行几天,有些小任务,可能运行1分钟就结束。此时多个任务同时执行,资源如何协调,这就是调度器的作用。

2024-11-01 16:15:13 394

原创 Yarn的历史日志配置

历史日志服务开启之后,Container在运行任务的过程中,会将日志记录下来,保存到当前的节点。我们在YARN运行MapReduce的程序的时候,任务会被分发到不同的节点,在不同的Container内去执行。这个时候我们是查看不到的,因此我们需要开启记录历史日志的服务。我的日志是分散在多台电脑上的,如果任务失败了,每个节点只记录自己的那一部分,我们需要去各个节点上查阅日志,效率太低了,将这些日志聚合在一起就好了。原因是因为我们的任务不一定每次都是成功的,如果失败了,需要查阅日志,发现日志有没有配置。

2024-11-01 14:07:45 465

原创 Yarn介绍 | 组成 | 工作流程

Apache YARN(Yet another Resource Negotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于一个分布式的操作系统平台,而MapReduce等计算程序则相当于运行于操作系统之上的应用程序。错误也会报告到控制台。5. ResourceManager调用submitApplication方法后,会通知Yarn调度器(Scheduler),调度器分配一个容器,在节点管理器的管理下在容器中启动 application master进程。

2024-11-01 11:54:35 859

原创 在pycharm上运行spark-core时报Connection reset by peer: socket write error

在运行 pyspark 代码读取数据后,有时候会出现这个错误。1、将数据量变小一点,只截取一部分进行测试。2、不要使用take算子了。3.使用foreach算子。

2024-10-31 20:35:38 190

原创 Hadoop-MapReduce任务三种运行开发模式

数据在hdfs上,代码在本地,使用本机的电脑的资源运行我们的MR。输入和输出路径指的都是本地路径,运行时耗费的资源也是本地资源。数据在本地,代码也在本地,使用本机的电脑的资源运行我们的MR。这个里面的输入和输出路径指的是hdfs上的路径。数据在hdfs上,代码 跑 在yarn上。

2024-10-31 14:14:38 617 1

原创 Yarn如何进行配置和搭建

datanode : hdfs --daemon start datanode [ 这个命令只能启动一个 datanode]分发mapred-site.xml & yarn-site.xml 到另外两台电脑上。/opt/installs/hadoop/etc/hadoop 文件夹下。停止和启动整个集群(包含hdfs,以及Yarn)只启动resourcemanager。停止resourcemanager。只启动nodemanager。停止nodemanager。4、关于启动和停止的命令。

2024-10-31 10:08:31 628

原创 Yarn的概念和组成部分

每一个NodeManager中,有一个或者多个这样的容器。是包含了一些资源的封装(CPU,内存,硬盘等),类似于我们熟悉的虚拟机。每一个MapReduce任务启动提交后,会有一个对应的AppMaster。Yarn是MapReduce运行的环境,Yarn可以管理程序运行所需要的东西(内存,CPU,带宽等资源)Yarn诞生于Hadoop,但是现在已经脱离了Hadoop,变成了一个独立的软件,系统。听从我们的ResouceManager的调遣。他用来管理整个的Yarn平台,里面有一个资源调度器。

2024-10-31 09:55:02 213

原创 FineBI真实面试题

14.finebi可以将finereport制作的报表挂出,并且可以集成到finebi制作的仪表板中 判断题 5.0分。12.模板页面已经引用数据集ds1的字段内容,后面将ds1名字改成ds2,模板主体内容会自动变成引用ds2。16.有时我们希望将模板发送给别人修改,导出模板时需要附带导出内置数据,导出时其实是作为两个文件存在的。9..以下哪个选项不是汇总方式可以计算出来的结果 单选题 5.0分。8.以下哪个不属于模板单元格的扩展方向 单选题 5.0分。1.可以用来导出数据库明细的报表是哪个图。

2024-10-13 20:44:10 511

原创 Caused by: java.sql.SQLDataException: Unsupported conversion from DATETIME to java.lang.Integer

【代码】Caused by: java.sql.SQLDataException: Unsupported conversion from DATETIME to java.lang.Integer。

2024-09-25 19:59:58 502

原创 hive分区详细教程

为了提高sql的查询效率比如:假如数据量比较大,这个sql就是全表扫描,速度肯定慢。可以将数据按照天进行分区,一个分区就是一个文件夹,当你查询20230826的时候只需要去20230826这个文件夹中取数据即可,不需要全表扫描,提高了查询效率。总结1)分区表实际上就是对应一个HDFS文件系统上的独立的文件夹。2)该文件夹下是该分区所有的数据文件。3)Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。

2024-09-21 11:01:28 1654

原创 Hadoop-MapReduce的 原理 | 块和片 | Shuffle 过程 | Combiner

AppMaster: 整个Job任务的核心协调工具MapTask: 主要用于Map任务的执行ReduceTask: 主要用于Reduce任务的执行一个任务提交Job --> AppMaster(项目经理)--> 根据切片的数量统计出需要多少个MapTask任务 --> 向ResourceManager(Yarn平台的老大)索要资源 --> 执行Map任务,先读取一个分片的数据,传递给map方法。--> map 方法不断的溢写 --> reduce 方法 --> 将统计的结果存放在磁盘上。

2024-09-20 11:55:35 1741 1

空空如也

空空如也

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

TA关注的人

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