- 博客(105)
- 收藏
- 关注
原创 Nacos从入门到熟练
Nacos是阿里巴巴开源的动态服务发现与配置管理平台,支持服务注册、服务发现和配置管理。本文介绍了Nacos的安装步骤,包括下载启动包、以单机模式运行,并展示了Nacos控制台界面。在微服务架构中,通过引入Spring Cloud Alibaba相关依赖,实现服务的注册与发现,并详细说明了服务间调用的实现方式,包括直接调用和负载均衡两种方法。文章还提供了微服务API的编写示例,展示如何通过RestTemplate实现服务间通信。
2025-09-06 16:32:42
765
原创 ElasticSearch新角色的创建及新用户的创建
摘要: 本文介绍了Elasticsearch中创建新角色和用户的方法,以满足安全合规要求。步骤包括:1)创建角色并配置索引、集群权限(如index_manager角色);2)创建用户并绑定角色,遵循最小权限原则。补充了角色/用户删除操作及注意事项,强调删除前需检查绑定关系。通过GET /_security/role和GET /_security/userAPI可查询权限分配详情,支持命令行或Kibana界面操作。核心要点:权限精细化控制、定期审计角色绑定、避免使用超管账户。
2025-09-05 11:08:33
673
原创 Pandas的数据结构
本文介绍了Pandas中的两个核心数据结构:Series和DataFrame。Series是一维数组对象,包含值和索引,可通过numpy数组、列表或字典创建;DataFrame是二维表格,由多个Series组成,可通过字典或列表创建。文章详细讲解了两种对象的常用API,包括数据统计、类型转换等操作,并比较了它们在数据分析和处理中的不同应用场景。通过示例代码展示了如何创建和操作这两种数据结构,为后续数据分析工作奠定基础。
2025-08-28 17:51:58
942
1
原创 Pandas快速体验,体验python数据分析的便利
本文通过一个案例演示如何使用Pandas进行GDP数据分析。首先加载全球GDP数据,筛选中国、日本和美国的数据并设置年份为索引。利用Matplotlib绘制三国GDP变化曲线,通过修改列名使图例显示国家名称,并解决中文显示问题。最终实现三国GDP数据的可视化对比,清晰展示经济增长趋势差异。案例展示了Pandas数据处理和Matplotlib可视化分析的基本流程。
2025-08-28 16:39:21
628
原创 HIVE的Window functions窗口函数【二】
本文介绍了Hive窗口函数中的窗口表达式、窗口排序函数和窗口分析函数。窗口表达式通过rows between语法控制聚合范围,支持向前/向后指定行数。窗口排序函数包括row_number、rank、dense_rank和ntile,用于分组排序和TopN场景。窗口分析函数如lag、lead、first_value和last_value,可获取窗口内指定行的值。这些函数增强了Hive的数据分析能力,适用于复杂的分组计算场景。
2025-08-27 14:29:35
913
原创 HIVE的Window functions窗口函数【一】
摘要:本文介绍了SQL窗口函数的概念与应用,通过实例对比普通聚合函数与窗口函数的区别。窗口函数支持在保留原始行的同时进行聚合计算,使用OVER子句实现分组、排序和范围控制。文章详细讲解了窗口函数的语法结构,包括PARTITION BY、ORDER BY和窗口帧表达式,并提供了网站用户页面浏览分析的实战案例,演示了sum()函数在整表聚合、分组聚合及累积聚合中的不同用法。通过Hive SQL代码示例,展示了如何计算总PV、用户总PV和用户累积PV,帮助读者理解窗口函数在数据分析中的实际应用场景。
2025-08-27 11:40:31
1162
原创 Hive高阶函数之行转列&JSON数据解析
本文介绍了Hive中两种常见的数据处理场景:行转列和JSON解析。在行转列部分,展示了如何使用concat_ws和collect_set函数将多行数据合并为一列,实现部门ID分组后员工姓名拼接的效果。JSON解析部分提供了三种解决方案:get_json_object函数、json_tuple函数以及建表时使用JsonSerDe自动解析,并比较了它们的优缺点。文章通过具体示例演示了从数据准备到SQL实现的全过程,帮助读者掌握Hive中这些常用数据处理技巧。
2025-08-26 15:17:23
894
原创 HIVE的高频面试UDTF函数
UDTF(表生成函数)是一类"一进多出"的函数,典型代表是explode函数,它能将数组或map类型数据展开为多行数据。通过案例演示如何将部门员工列表展开:首先创建包含数组类型的表并导入数据,使用explode函数时发现UDTF限制(不能与其他列同时查询),通过lateral view侧视图解决该问题。最终实现了将"部门ID|员工列表"转换为"部门ID-单个员工"的多行数据。对于字符串类型数据,可结合split函数处理。
2025-08-26 10:58:22
312
原创 HIVE创建UDF函数全流程
本文介绍了Hive UDF函数的开发与使用全过程,以姓名脱敏需求为例。主要内容包括:1)Maven工程配置,导入Hive3.1.2相关依赖;2)Java代码实现,继承GenericUDF类重写三个核心方法,处理不同长度姓名的脱敏规则;3)打包部署,将jar包上传至HDFS;4)Hive中注册函数并验证效果,实现单字报错、两字保留首字加*、多字保留首尾的功能。通过完整案例演示了自定义Hive函数的开发流程,为类似数据处理需求提供了参考方案。
2025-08-25 15:19:56
496
原创 经典回顾:Hive执行原理、MapReduce执行流程、Spark执行流程
本文概述了Hive、MapReduce和Spark三种大数据处理框架的执行流程。Hive的执行包括SQL解析为AST、生成逻辑计划、优化、物理计划生成及提交Hadoop任务;MapReduce流程涉及资源管理器分配任务、节点管理器启动任务容器、执行Map/Reduce任务及结果返回;Spark流程则包含资源分配、Executor启动、任务分发执行及结果写入HDFS。三者的核心差异在于处理模型:Hive基于SQL转换,MapReduce采用两阶段批处理,而Spark通过内存计算实现高效迭代。
2025-08-15 10:59:43
397
原创 png转jpg,直接改后缀?
将PNG文件扩展名改为JPEG的扩展名(.jpg或.jpeg)不会更改图像的格式。它只是更改了文件扩展名,这可能导致一些图像查看器和编辑器无法正确识别和处理该文件。PNG和JPEG是两种不同的图像文件格式,它们有着不同的压缩算法和特点。PNG是一种无损压缩的图像格式,可以保留图像的所有细节和信息,并且通常用于处理需要高质量图像的情况,例如网站设计、图形设计、图像处理等。而JPEG则是一种有损压缩的图像格式,可以在文件大小与图像质量之间做出折衷。通常用于数字照片、网络图片等需要快速加载和小文件大小的场景。
2023-06-14 09:43:29
9325
原创 执行yum软件包索引步骤报错
综合来看,这条命令序列的作用是清除系统中所有软件源的缓存和元数据信息,并从软件源中下载最新的软件包信息并更新系统中已安装的软件包,最后重新生成本地的软件源缓存和元数据信息,从而保证系统中的软件包一直处于最新的状态,提高系统的安全性和稳定性。通过将这个配置文件下载到本地系统的/etc/yum.repos.d/目录下,可以让yum软件包管理器使用阿里云的软件源来下载和安装软件包,从而避免了从官方网站下载软件包速度慢、不稳定的问题,同时也能够提高软件安装的成功率和稳定性。执行rm -rf删除所有。
2023-03-31 16:46:18
789
原创 Docker入门
2013年3月,dotCloud公司的创始人之一,Docker之父,28岁的Solomon Hykes正式决定,将 Docker项目开源。Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行 环境能够做到“一次封装,到处运行”。关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环 境的兼容,对运维人员是极大的考验!软件可以带环境安装?
2023-03-31 15:42:14
1008
1
原创 设计模式系列文章-2.设计原则及单例模式
所以,普通的长方形是适合这段代码的,正方形不适合。双重检查锁模式是一种非常好的单例实现模式,解决了单例、性能、线程安全问题,上面的双重检测锁模式看上去完美无缺,其实是存在问题,在多线程的情况下,可能会出现空指针问题,出现问题的原因是JVM在实例化对象的时候会进行优化和指令重排序操作。枚举类实现单例模式是极力推荐的单例实现模式,因为枚举类型是线程安全的,并且只会装载一次,设计者充分的利用了枚举的这个特性来实现单例模式,枚举的写法非常简单,而且枚举类型是所用单例实现中唯一一种不会被破坏的单例实现模式。
2023-02-24 09:58:11
382
原创 设计模式系列文章-1.设计模式的概述及UML图
"设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造》中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。
2023-02-23 09:46:20
426
原创 Kafka的消费者
自动提交会丢消息: 因为如果消费者还没消费完poll下来的消息就自动提交了偏移量,那么此 时消费者挂了,于是下一个消费者会从已提交的offset的下一个位置开始消费消息。可以根据消费速度的快慢来设置,因为如果两次poll的时间如果超出了30s的时间间隔,kafka会认为其消费能力过弱,将其踢出消费组。kafka如果超过 10 秒没有收到消费者的心跳,则会把消费者踢出消费组,进行rebalance,把分区分配给其他消费者。消费者建立了与broker之间的⻓连接,开始poll消息。设置自动提交参数 - 默认。
2023-02-21 09:15:37
795
原创 Kafka集群及副本的概念
Kafka只在partition的范围内保证消息消费的局部顺序性,不能在同一个topic中的多个partition中保证总的消费顺序性。可以提供callback,让broker异步的调用callback,告知生产者,消息发送的结果。在集群中,不同的副本会被部署在不同的broker上。消费组中消费者的数量不能比一个topic中的partition数量多,否则多出来的消费者消费不到消息。isr: 可以同步的broker节点和已同步的broker节点,存放在isr集合中。每个文件中的这些内容要调整。
2023-01-28 10:04:47
806
原创 kafka的关键细节 以及 分区和主题的概念
时候,key是consumerGroupId+topic+分区号,value就是当前offset的值,kafka会定期清理topic里的消息,最后就保留最新的那条数据 因为__consumer_offsets可能会接收高并发的请求,kafka默认给其分配。消息的发送方会把消息发送到broker中,broker会存储消息,消息是按照发送的顺序进行存储。单播消息:一个消费组里 只会有一个消费者能消费到某一个topic中的消息。[> 一个主题中的消息量是非常大的,因此可以通过分区的设置,来分布式存储这些消息。
2023-01-28 09:48:43
708
原创 kafka的介绍和基本使用
Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、Storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编 写,Linkedin于 2010年贡献给了Apache基金会并成为顶级开源 项目。
2023-01-20 12:37:29
1368
原创 KAFKA 消息队列的分类
Message Queue(MQ),消息队列中间件。很多人都说:MQ通过将消息的发送和接收分离来实现应用程序的异步和解偶,这个给人的直觉是——MQ 是异步的,用来解耦的,但是这个只是 MQ的效果而不是目的。MQ真正的目的是为了通讯,屏蔽底层复杂的通讯协议,定义了一套应用层的、更加简单的通讯协议。一个分布式系统中两个模块之间通讯要么是HTTP,要么是自己开发的(rpc)TCP,但是这两种协议其实都是原始的协议。HTTP 协议很难实现两端通讯——模块 A 可以调用 B,B 也可以主动调用。
2023-01-20 12:19:19
676
1
原创 Flink 真正的流式处理演示(基于Netcat)
前面的章节,我们讲了DataSet API和DataStreamAPI处理文本数据,文本其实就是一个批数据的形式,这个章节我们来操作一下真正的流式的环境。
2023-01-18 10:46:28
433
原创 Flink DataSet API和DataStream API 对于WordCount的演示
Flink DataSet API和DataStream API 对于WordCount的演示
2023-01-18 10:10:17
697
原创 入门postgre sql(PG的下载和安装,包括普通用户源码构建的安装方式)
postgre sql 的安装和下载,普通用户非root用户的安装
2023-01-17 15:35:52
5202
原创 入门PostgreSQL,pg的历史,为什么说pg是国产化的方向,与mysql的比较
pg的历史,为什么说pg是国产化的方向,与mysql的比较
2023-01-17 15:31:57
11965
原创 JVM垃圾回收机制、JVM垃圾回收算法、JVM CMS与G1垃圾收集,JVM内存模型
C C++ 需要自己回收垃圾重复回收: 回收掉别人的东西忘记回收: 内存泄漏Java虚拟机做自动化回收。
2023-01-09 17:12:30
384
原创 HADOOP-3.2.2安装
zookeeper集群安装从官网下载hadoop-3.2.2.tar.gz地址:https://hadoop.apache.org/release/3.2.2.html集群规划上传安装hadoop-3.2.2.tar.gz 包解压到安装目录(我用的普通用户)2.修改配置文件core-site.xml3. 修改hdfs-site.xml4. 修改修改yarn-site.xml5.修改workers文件(老版本叫slave文件)6.修改hadoop-env.sh7.修改mapre
2023-01-05 11:36:04
2068
原创 剖析免密登录,集群之间的免密登录
每台主机authorized_keys文件,该文件就是身份验证的钥匙,该文件里如果有另一台主机的公钥(id_rsa.pub),那么另一台主机就可以无密码登录该主机。原理就是这样,同上在其他机器上同样操作,注意这里的 本机节点登录本机节点也是要密码的,我们也要把本身节点的公钥拷贝到anthorized_keys文件中。本身节点的 .ssh 文件下是没有 anthorized_keys文件的,所以我们可以创建也可以将id_rsa.pub(公钥)进行拷贝。此时在 家目录的.ssh目录下,会生成两个文件 分别为。
2022-12-30 19:24:30
1002
原创 带你走进知识图谱的世界
知识图谱最开始是Google为了优化搜索引擎提出来的,推出之后引起了业界轰动,随后其他搜索公司也纷纷推出了他们的知识图谱。知识图谱发展到今天,不仅是应用在搜索行业,已经是AI的基础功能了。那到底知识图谱是什么?有什么能力?怎么应用?这就是本文想要讨论的内容。1. 定义官方定义:知识图谱是一种基于图的数据结构,由节点(point)和边(Edge)组成,每个节点表示一个“实体”,每条边为实体与实体之间的“关系”,知识图谱本质上是语义网络。实体指的可以是现实世界中的事物,比如人、地名、公司、电话、动物等;
2022-12-02 11:13:27
552
原创 写了半个月近3万字,助你直接上手Flink,原来这就是流批一体的处理方式
在 Flink 中,应用程序由数据流组成,这些数据流可以由用户定义的运算符(注:有时我们称这些运算符为“算子”)进行转换。这些数据流形成有向图,从一个或多个源开始,以一个或多个输出结束。Flink 支持流处理和批处理,它是一个分布式的流批结合的大数据处理引擎。在 Flink 中,认为所有的数据本质上都是随时间产生的流数据,把批数据看作是流数据的特例,只不过流数据是一个无界的数据流,而批数据是一个有界的数据流(例如固定大小的数据集)。如下图所示:因此,Flink 是一个用于在无界和有界数据流上进行有状态
2022-11-19 09:00:00
1409
4
原创 RESTful 接口设计拓展,接口设计注意事项,注解的简化
postman 显示也可以换成Employee employee 对象的方式,也是可以成功传递参数的。
2022-11-18 08:30:00
971
18
原创 RESTful 接口设计
接口要获取参数路経中参数必须使用注 @PathVariable ,目的是让 springmvc 参数解析器从路径中解析出参数并进行赋值。方案2:使用参数路怪方式比如:/ employees /{ id }将请求参数作为路径一部分,进打 url 区分。客户端访问 http://Localhost:80/employees/1 1就是 id 参数值。参数路径:/ employees /( id } 其中{ id }参数占位符。方案1:使用多级路経方式比如:/ employees / detail。
2022-11-17 17:59:48
1544
18
原创 Restful接口设计介绍及项目准备工作
Web2.0阶段的到来,客户端不仅仅是pc端,可能是移动app、也可能是小程序,这就要求提供一套统一的API接口,不同类型的客户端基于相同的协议/规则来调用该API接口并获取预期的数据。1.请求路径:由当前接口操作的资源决定,一般使用所操作资源的复数作为资源的路径 再RESTful眼中,一切皆资源,每个资源都有一个唯一的资源定位符(URL)OPTIONS :获得客户端针对一个资源能够实施的操作:(获取该资源的 api 能够对资源做什么操作的描述)在域名反写的下面再建一个Java文件,名为App。
2022-11-16 23:08:17
1224
原创 Restful 接口设计-前言(手把手教你入门到精通)
API(Application Programming Interface, 应用程序接口),是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或者硬件得以访问一组例程的能力,而无需访问源码,或者理解内部的共组机制的细节。Web 开发技术的发展可以粗略划分成以下几个阶段静态内容阶段:在这个最初的阶段,使用 Web 的主要是一些研究机构。Web 由大量的静态 HTML 文档组成。CGI 程序阶段:在这个阶段, Web 服务器增加了一些编程 APl。
2022-11-15 19:51:34
716
原创 猿创征文|大数据开发必备的数据采集工具汇总
随着大数据近几年的发展,已经在国内外的开发市场积累出一大批大数据开发的技术型人才,不论是批处理还是流处理各大公司都研究出一套专门解决自身公司业务的大数据解决方案。它们是市面上大数据组件的融合碰撞产生的适合自身的。在数据处理的最前端一定是数据的采集技术,数据的采集技术也是百家争鸣,一片蓝海,对于一个优秀的大数据开发工程师,我们怎么将这些技术栈灵活的应用,前提是我们要对其认真的研究,理解其最佳的应用场景,今天我来带大家认识5种数据采集工具。
2022-11-14 15:47:51
4284
2
原创 大数据基础之-深入理解java的注解与反射
/注解可以显示显示值 @MyAnnotation2(name = "查德" , school = {"西北大学" , "西工大" }) // @MyAnnotation2() public void test() {} } //定义一个注解 //表示注解可以用在哪个地方 @Target(value = {
2022-11-13 17:59:12
707
原创 数据结构与算法-双向链表的操作
和遍历单链表一样,知识可以向前遍历,也可以向后遍历查找。因为是双向链表,因此我们可以实现自我删除某个节点。1.直接找到要删除的这个节点,比如:temp。1.先找到双向链表的最后节点。我们这里是添加到链表的最后。
2022-11-13 10:35:54
276
原创 数据结构与算法-从尾到头打印单链表(百度面试题)
(这样做会破坏原来的单链表的一个结构【不建议这么操作】)可以利用栈这个数据结构,将各个节点压入栈中,然后利用栈的。System.out.println(“翻转打印”);我们发现出栈的数据顺序和进栈的顺序正好是相反的。编写方法reversePrint()的特点就实现了逆序打印的效果。至此实现了单链表的逆序打印。先将单链表翻转然后再链表。
2022-11-11 14:44:34
324
大数据+hadoop生态+必须掌握的知识点
2022-11-20
后端开发/大数据开发 + RESTful API + 项目(依赖+启动类+实体类+controller层+统一响应对象)
2022-11-18
技术到了30岁,应该怎么办?
2022-09-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人