自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java算法--二分查找

二分查找(Binary Search)是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半,因此其时间复杂度是O(log n),n是数组的元素数量。二分查找的效率远高于线性查找(时间复杂度为O(n))。

2024-04-25 21:50:46 223

原创 SparkSQL--介绍

但是,随着Spark的发展,对于野心勃勃的Spark团队来说,Shark对于Hive的太多依赖(如采用Hive的语法解析器、查询优化器等等),制约了Spark的One Stack Rule Them All的既定方针,制约了Spark各个组件的相互集成,所以提出了SparkSQL项目。DataSet 是分布式数据集合。其中Shark是伯克利实验室Spark生态环境的组件之一,是基于Hive所开发的工具,它修改了下图所示的右下角的内存管理、物理计划、执行三个模块,并使之能运行在Spark引擎上。

2024-04-25 21:50:22 595

原创 大数据Spark--运行环境和架构

Spark 集群的独立部署环境中,不需要依赖其他的资源调度框架,自身就实现了资源调度的功能,所以环境中还有其他两个核心组件:Master和Worker,这里的Master是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责,类似于Yarn环境中的RM, 而Worker 呢,也是进程,一个Worker运行在集群中的一台服务器上,由Master分配资源对数据进行并行的处理和计算,类似于Yarn环境中NM。这里所谓的有向无环图,并不是真正意义的图形,而是由Spark程序直接映射成的数据流的高级抽象模型。

2024-04-21 22:14:12 807

原创 大数据Hive--企业级调优

Explain呈现的执行计划,由一系列Stage组成,这一系列Stage具有依赖关系,每个Stage对应一个MapReduce Job,或者一个文件系统操作等。

2024-04-19 19:20:56 781

原创 监控系统Prometheus--与第三方框架集成

邮件通知常会出现接收不及时的问题,为确保通知信息被及时接收,可通过配置Prometheus 或者Grafana 与第三方平台告警平台(例如睿象云)集成,进而通过第三方平台提供的多种告警媒介(例如电话,短信)等发送告警信息。手动一个个添加Dashboard比较繁琐,Grafana社区鼓励用户分享Dashboard,通过https://grafana.com/dashboards网站,可以找到大量可直接使用的Dashboard模板。通知策略,可以配置被分派人接收告警的通知方式,通知时间,通知延时等等。

2024-04-14 19:28:16 868

原创 监控系统Prometheus--PromQL

Prometheus 通过指标名称(metrics name)以及对应的一组标签(labelset)唯一定义一条时间序列。指标名称反映了监控样本的基本标识,而 label 则在这个基本特征上为采集到的数据提供了多种特征维度。用户可以基于这些特征维度从而产生新的计算后的一条时间序列。PromQL 是 Prometheus 内置的数据查询语言,其提供对时间序列数据丰富的查询,聚合以及逻辑运算能力的支持。并且被广泛应用在 Prometheus 的日常应用当中,包括对数据查询、可视化、告警处理当中。

2024-03-29 10:32:40 972 1

原创 大数据Spark--入门

Spark 所需资料链接:https://pan.baidu.com/s/12iaW68vriL6i-xI1kmr0_g?pwd=m4zc提取码:m4zc。

2024-03-24 18:14:42 1404 1

原创 监控系统Prometheus--入门

Prometheus 安装包下载链接:https://pan.baidu.com/s/1a3cUS3VF8NQyHF6xO7LKBQ?pwd=hxy2提取码:hxy2Prometheus 受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google工程师在Soundcloud以开源软件的形式进行研发,并且于2015年早期对外发布早期版本。

2024-03-23 15:12:09 930 1

原创 大数据Hive--文件格式和压缩

压缩格式算法文件扩展名是否可切分DEFLATEDEFLATE.deflate否GzipDEFLATE.gz否bzip2bzip2.bz2是LZOLZO.lzo是SnappySnappy.snappy否为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器,如下表所示:Hadoop查看支持压缩的方式hadoop checknative。Hadoop在driver端设置压缩。压缩格式对应的编码/解码器DEFLATEgzipbzip2LZO。

2024-02-28 22:34:17 1011 1

原创 大数据Hive--分区表和分桶表

再比如,若分区表为外部表,用户执行drop partition命令后,分区元数据会被删除,而HDFS的分区路径不会被删除,同样会导致Hive的元数据和HDFS的分区路径不一致。对于一张表或者分区,Hive 可以进一步组织成桶,也就是更为细粒度的数据范围划分,分区针对的是数据的存储路径,分桶针对的是数据文件。分桶表的基本原理是,首先为每行数据计算一个指定字段的数据的hash值,然后模以一个指定的分桶数,最后将取模运算结果相同的行,写入同一个文件中,这个文件就称为一个分桶(bucket)。

2024-02-25 14:16:39 1292 1

原创 大数据Kafka--概述

目前企业中比较常见的消息队列产品主要有 Kafka、ActiveMQ、RabbitMQ、RocketMQ等。在大数据场景主要采用 Kafka作为消息队列。在 JavaEE开发中主要采用ActiveMQ、RabbitMQ、RocketMQ。

2024-02-22 21:12:29 953 1

原创 大数据Flume--入门

Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。

2024-02-10 22:38:29 1686 1

原创 大数据Zookeeper--案例

比如说"进程1"在使用该资源的时候,会先去获得锁,"进程1"获得锁以后会对该资源保持独占,这样其他进程就无法访问该资源,"进程1"用完该资源以后就将锁释放掉,让其他进程来获得锁,那么通过这个锁机制,我们就能保证了分布式系统中多个进程能够有序的访问该临界资源。2)Curator是一个专门解决分布式锁的框架,解决了原生Java API开发分布式遇到的问题。(1)启动DistributeClient 客户端(如果已经启动过,不需要重启)(1)会话连接是异步的,需要自己去处理。2)在Idea上操作增加减少服务器。

2024-02-05 17:19:08 1790 1

原创 大数据Zookeeper--集群操作

客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、节点删除、子目录节点增加删除)时,ZooKeeper会通知客户端。(1)重命名/opt/module/zookeeper-3.5.7/conf 这个目录下的 zoo_sample.cfg 为 zoo.cfg。(2)在/opt/module/zookeeper-3.5.7/zkData 目录下创建一个 myid 的文件。(1)在/opt/module/zookeeper-3.5.7/这个目录下创建 zkData。如果原节点下已有2个节点,则再排。

2024-02-03 21:20:50 1072 2

原创 大数据Zookeeper--入门

Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。Zookeeper = 文件系统 + 通知机制。

2024-02-01 22:10:34 1221 1

原创 大数据Hive--函数

Hive会将常用的逻辑封装成函数给用户进行使用,类似于Java中的函数。好处:避免用户反复写逻辑,可以直接拿来使用。Hive提供了大量的内置函数,按照其特点可大致分为如下几类:单行函数、聚合函数、炸裂函数、窗口函数。以下命令可用于查询所有内置函数的相关信息:1)查看系统内置函数2)查看内置函数用法3)查看内置函数详细信息1)表结构moviecategory《疑犯追踪》悬疑,动作,科幻,剧情悬疑,警匪,动作,心理,剧情《战狼2》战争,动作,灾难2)建表语句。

2024-01-14 16:13:34 913 1

原创 Java数据结构--堆

堆顶元素是二叉树的根节点,即列表首元素。“从顶至底堆化”的操作方向与“从底至顶堆化”相反,我们将根节点的值与其两个子节点的值进行比较,将最大的子节点与根节点交换。如图所示,给定索引 i,其左子节点索引为 2i+1 ,右子节点索引为 2i+2,父节点索引为 (i-1)/2(向下整除)。然后继续执行此操作,从底至顶修复堆中的各个节点,直至越过根节点或遇到无须交换的节点时结束。需要指出的是,许多编程语言提供的是「优先队列 priority queue」,这是一种抽象数据结构,定义为具有优先级排序的队列。

2024-01-01 16:40:00 1063

原创 大数据Hive--查询

本例中会首先启动一个MapReduce job对表e和表d进行连接操作,然后会再启动一个MapReduce job将第一个MapReduce job的输出和表l进行连接操作。union和union all都是上下拼接sql的结果,这点是和join有区别的,join是左右关联,union和union all是上下拼接。在很多情况下,并不需要全局排序,此时可以使用Sort by。对于distribute by进行测试,一定要分配多reduce进行处理,否则无法看到distribute by的效果。

2023-12-27 22:02:24 962 1

原创 Java数据结构--树

当给定一个二叉树的节点时,我们将该节点的左子节点及其以下节点形成的树称为该节点的「左子树 left subtree」,同理可得「右子树 right subtree」。根据层序遍历的特性,我们可以推导出父节点索引与子节点索引之间的“映射公式”:若某节点的索引为 i,则该节点的左子节点索引为 2i+1,右子节点索引为 2i+2。如图所示,如果将“节点 2”视为父节点,则其左子节点和右子节点分别是“节点 4”和“节点 5”,左子树是“节点 4 及其以下节点形成的树”,右子树是“节点 5 及其以下节点形成的树”。

2023-12-24 12:27:53 985 1

原创 大数据Hive--DDL(数据定义)和DML(数据操作)

文章目录一、DDL1、数据库1.1 创建数据库1.2 查询数据库1.3 修改数据库1.4 删除数据库1.5 切换当前数据库2、表2.1 创建表1)普通建表2)Create Table As Select(CTAS)建表3)Create Table Like语法2.2 案例1)内部表与外部表2)SERDE和复杂数据类型2.3 查看表2.4 修改表2.5 删除表2.6 清空表二、DML1.1 Load1.2 Insert1.2.1 将查询结果插入表中1.2.2 将给定的Values插入表中1.2.3 将查

2023-12-13 14:18:05 1021 1

原创 数据结构--哈希表

在哈希表中,输入空间是所有 key ,输出空间是所有桶(数组索引)。「哈希表 hash table」,又称「散列表」,其通过建立键 key 与值 value 之间的映射,实现高效的元素查询。当发生冲突时,平方探测不是简单地跳过一个固定的步数,而是跳过“探测次数的平方”的步数,即1,4,9,…对于上述示例中的哈希函数,当输入的 key 后两位相同时,哈希函数的输出结果也相同。从本质上看,哈希函数的作用是将所有 key 构成的输入空间映射到数组所有索引构成的输出空间,而输入空间往往远大于输出空间。

2023-12-10 11:39:02 940 1

原创 大数据Hive--安装和配置

有需要Hive-3.1.3.安装包和 MySQL安装包以及MySQL驱动jar包的,请浏览文章末尾。

2023-12-08 19:31:32 1257 1

原创 Java数据结构--栈和队列

如图所示,「双向队列 double-ended queue」提供了更高的灵活性,允许在头部和尾部执行元素的添加或删除操作。然而,数组和链表都可以在任意位置添加和删除元素,因此栈可以视为一种受限制的数组或链表。将把元素添加到栈顶的操作叫作“入栈”,删除栈顶元素的操作叫作“出栈”。如图所示,我们将队列头部称为“队首”,尾部称为“队尾”,将把元素加入队尾的操作称为“入队”,删除队首元素的操作称为“出队”。我们可以将链表的“头节点”和“尾节点”分别视为“队首”和“队尾”,规定队尾仅可添加节点,队首仅可删除节点。

2023-12-07 16:38:43 976

原创 大数据Hive--入门

Hive是由Facebook开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。那为什么会有Hive呢?它是为了解决什么问题而诞生的呢?(1)在Hadoop中我们用MapReduce程序实现的,当时需要写Mapper、Reducer和Driver三个类,并实现对应逻辑,相对繁琐。test表id列ss ssjiaobanzhangxuehadoop(2) 如果通过Hive SQL实现,一行就搞定了,简单方便,容易理解。

2023-12-06 20:29:02 328

原创 Java数据结构--数组和链表

内存空间是所有程序的公共资源,在一个复杂的系统运行环境下,空闲的内存空间可能散落在内存各处。我们知道,存储数组的内存空间必须是连续的,而当数组非常大时,内存可能无法提供如此大的连续空间。在链表中插入节点非常容易。如图 ,假设我们想在相邻的两个节点 n0 和 n1 之间插入一个新节点 P ,则只需改变两个节点引用(指针)即可,时间复杂度为 O(1)。在复杂的系统环境中,程序难以保证数组之后的内存空间是可用的,从而无法安全地扩展数组容量。遍历链表,查找其中值为 target 的节点,输出该节点在链表中的索引。

2023-12-05 22:30:39 871

空空如也

空空如也

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

TA关注的人

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