自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (2)
  • 收藏
  • 关注

原创 如何理解DFD图中的奇迹、黑洞、灰洞

摘要:结构化设计中数据流图(DFF图)存在三种典型数据不平衡错误:"奇迹"(只有输出而无输入)、"黑洞"(只有输入而无输出)和"灰洞"(输入不足以产生输出)。它们分别对应加工过程中数据凭空产生、无故消失或逻辑不匹配的情况。这三种错误违反了数据守恒原则,即输出必须来源于输入数据的合理处理。修正方法包括检查遗漏的数据流、确保加工产生必要输出,以及验证输入输出数据的逻辑匹配性。通过厨房加工过程的类比,可以形象理解这些数据平衡问题。

2025-10-30 21:20:18 369

原创 软件可靠性设计:高可用性架构实战——双机热备与集群技术

本文探讨了实现高可用性的两种技术方案:双机热备和服务器集群。双机热备通过主备服务器、共享存储和心跳检测实现故障自动切换,包括主备、互备和双工三种模式,适用于数据库等核心系统。服务器集群则通过多节点协作提供高可用性、负载均衡和可扩展性,包括高可用集群、负载均衡集群和高性能计算集群。现代应用可结合云原生技术如Kubernetes实现更灵活的高可用方案。选择方案需根据业务需求、技术栈和预算等因素综合考虑。

2025-09-15 21:09:34 739

原创 需求工程——你真的懂吗

本文摘要: 需求工程是软件项目成功的关键,包含需求获取、分析、规格说明和验证四个核心环节。软件需求分为业务需求、用户需求和系统需求三个层次,其中系统需求又包括功能需求和非功能需求。非功能需求(如性能、安全性)对架构设计影响最大。需求规格说明书(SRS)是需求开发的最终产物,作为项目基础文档。需求管理通过变更控制委员会(CCB)和需求跟踪矩阵(RTM)来应对不可避免的变更,确保变更决策的合理性和可追溯性。架构师需特别关注需求变更对系统架构的影响评估。

2025-09-01 21:57:04 795 2

原创 系统架构评估

系统架构评估是对架构决策的有效性进行验证的过程,主要方法包括基于问卷/检查表、基于场景和基于度量的评估。核心概念包括敏感点(影响单一质量属性的决策)、权衡点(影响多个质量属性的冲突决策)、风险承担者和场景分析。常用评估方法有SAAM(侧重场景适用性和可修改性)和ATAM(分析质量属性间的权衡),后者通过效用树进行优先级排序。此外还有SAEM、SAABNet等多种评估方法,各有侧重,共同目标是确保架构满足质量需求。

2025-08-31 17:55:39 1045

原创 系统质量属性

本文主要探讨软件架构设计中质量属性的分类与评估方法。首先将软件质量属性分为开发期和运行期两类:开发期包括易理解性、可扩展性等;运行期包括性能、安全性等。其次介绍了面向架构评估的关键质量属性及其提升措施,如通过错误检测提升可用性、资源管理优化性能等。最后提出质量属性场景描述方法,由刺激源、刺激、响应等六个要素构成,为架构评估提供精准的需求描述框架。全文系统性地阐述了软件架构设计中质量属性的分类、评估与优化策略。

2025-08-30 22:33:05 325

原创 系统架构师在团队中的定位

系统架构师是技术团队的核心角色,主要负责系统技术选型、架构设计和性能优化等工作。与产品经理(负责产品设计)和项目经理(负责项目管理)不同,架构师专注于技术实现层面。其职责包括制定技术方案、解决关键技术难题,并为系统分析师提供技术支持。优秀的系统架构师需具备跨领域技术能力,涵盖业务流程建模、信息架构设计、技术选型等十大核心能力,能够为项目提供全面的技术保障和指导。

2025-07-13 12:12:25 766 1

原创 跟上AI的浪潮

现在AI技术已广泛应用至语音助手、写作、绘图、视频,甚至是各种语言的代码编写。平常我们都是应用别人开发好的模型,或者说智能体,那么我们自己能否做那个开发AI智能体的人,近期加了一个AI学习的大社区,几万在AI道路上探索的星星点点陪你一起创作,指导你一步步成为掌握AI技术的人。有兴趣可以来了解一下!

2024-11-14 21:21:34 308 1

原创 作为项目经理,如何做好项目进度管理

项目经理必看!软考、参加大创的同学们也可以来学习。如何对项目的进度清晰把控。

2023-01-24 14:06:54 2055 1

原创 物联网到底是什么?

物联网主要解决物品与物品、人与物品、人与人的互联

2023-01-23 11:36:40 440

原创 Redis学习

一、引言早期我们解决数据量大、数据索引、访问量问题的时候,用到了:Memcached(缓存)+ MySQL +垂直拆分(读写分离)比如我们一台MySQL服务器不够用,就开启三台(nginx可保证三台服务器数据一致),其中一台可用来写数据,写好之后同步到其他两台,读取时就在这两台读取(读写分离)。多次执行同一个sql会降低效率,同时为了减轻数据库的压力,所以引入缓存。之后随着发展,有了以下的方法:(本质:读、写)分...

2021-10-12 10:27:55 375

原创 ArrayList底层代码

1、首先我们创建一个ArrayList数组ArrayList a=new ArrayList();2、点到底层后,发现我们需要的属性:transient Object[] elementData; // non-private to simplify nested class access这是一个瞬态对象的元素数据、非私有以简化嵌套类访问private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}

2021-09-09 12:12:46 323

原创 数据可视化——大数据报表

1、数据可视化项目所需要的技术:servlet / mysql / html / css / js / jquery / echarts2、需要引入如下环境依赖:后端:mysql-connector-javaxxx.jarfastjson-xxx.jarlombok.jar——构建JavaBean的神器前端:jquery-xxx.jsecharts-xxx.jsmaven: <!-- mysql的驱动jar--> ...

2021-09-07 10:16:11 1536

原创 数据导出/迁移(Sqoop技术)

数据导出/迁移的概念在做数据导出之前,我们看一下已经完成的操作:数据分析阶段将指标统计完成,也将统计完成的指标放到Hive数据表中,并且指标数据存储到HDFS分布式文件存储系统。指标统计完成之后,我们最终是想将我们的指标数据做成可视化大屏进行展示,Hive中的数据无法、很难直接连接到JavaWeb或者EE技术直接进行数据展示。 因此我们需要将Hive中统计出来的数据指标表迁移到我们的MySQL数据库中,由MySQL数据库连接web技术进行可视化展示。...

2021-09-03 22:04:41 2363 4

原创 数据清洗/数据预处理(MR程序)

数据质量的好与坏直接关系到我们最终的数据分析结果的正确与否。如果想要保证数据的高质量,我们需要对数据进行清洗,清洗有两个作用:1、将数据质量不好的数据清洗掉,过滤掉不合法的数据2、将原始数据中的某些信息转换成我们容易操作的字段或者模型信息,将数据中的某些数据的格式进行转换,以便我们后期处理。数据预处理/数据清洗(本案例是分析用户使用网站产生的点击流)日志信息:120.191.181.178 - - 2018-02-18 20:24:39 "POST https:...

2021-09-02 12:10:05 2774 3

原创 离线大数据项目流程(点击流日志行为分析)

2021-09-01 22:04:58 299

原创 Hive的连接查询——Join查询

Join语句主要做多表关联查询:当我们需要的数据来自多张表,多张表之间还有连接关系,我们就可以使用连接查询获取我们相关的信息。 Hive中连接查询和sql中的join连接几乎一致,共有四种:内连接、左外连接、右外连接、满外连接。注意在MySQL中支持四种连接的语法,但是不支持满外连接的操作(满外连接的语法是支持的)。Hive都支持。join语句的一般格式:select 查询字段from tableA[inner|left|right...

2021-08-31 16:29:51 3377

原创 Flume框架的高级使用

今天给大家介绍一下Flume的多source channel sink和多Flume操作案例。如果我们想要实现将多个数据源的数据采集到同一个地方,两种实现思路:1、用一个Flume进程,但是在一个Flume进程当中有两个source、两个channel、两个sink2、用三个Flume进程,其中前两个Flume进程分别采集端口和文件的数据,将数据发送给第三个flume,由第三个flume同一将数据采集到HDFS一、多source、channel、sink案例我们知道f...

2021-08-30 17:56:01 403 2

原创 Hive中的自定义hive函数

我们一般只自定义UDF和UDTF函数。

2021-08-28 21:38:51 670 3

原创 Flume的使用

Flume软件的使用是需要我们通过配置文件完成的,编写Flume采集数据的脚本文件,脚本文件我们一般叫xxx.conf这样的文件,这个脚本文件中配置的是flume采集框架中的source连接的数据源、sink连接的目的地,以及source和channel\sink如何连接,配置文件编写完成,然后使用Flume相关命令启动即可实现数据采集。其具体使用可参考官网http://flume.apache.org/documentation.html,选择Flume Develo...

2021-08-28 13:54:15 1673 4

原创 日志采集框架Flume技术

一、Flume简介(1) Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集、聚集、移动的服务,Flume只能在Unix环境下运行。(2)Flume基于流式架构,容错性强,也很灵活简单。(3)Flume结合Kafka用来实时进行数据收集,Spark、Storm用来实时处理数据,impala用来实时查询。Flume详解官网:flume.apache.orgFlume is a distributed, reliable, and available serv...

2021-08-27 23:37:26 650 3

原创 开发一个大数据项目的架构与流程

如果我们想做一个数据分析项目,我们就应该清楚数据的处理流程。我们大致可以分为:数据采集——数据存储——数据清洗——数据分析——数据可视化和数据挖掘、二次分析在以上流程处理完成之后,会进入调度阶段:将数据采集、清洗、分析、导出、可视化制作成一个 调度任务,一键就可运行所有阶段。所用技术:azkaban技术...

2021-08-27 21:38:19 926 1

原创 数据仓库Hive中的内置函数

函数是hive封装好的一些功能性代码,可以帮助我们快速完成相应的业务逻辑。一、Hive的自带函数1、我们可以先使用命令来查看系统自带的函数:hive>show functions;2、显示自带函数的用法:hive>desc function 函数名;例如:desc function sum;如果我们想了解详细的函数用法,就可以使用如下命令:hive> desc function extended sum;二、Hive函数的分类...

2021-08-26 21:44:40 888 4

原创 数据仓库Hive的分区表与分桶表

一、分区表分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。所谓的分区表其实和表中的字段没什么区别,包括其使用,唯一的区别就是在于向hdfs写表数据的时候,会以分区值先在表的hdfs目录下创建一个分区目录,再添加数据。我们举一个具体的案例来讲解一下:...

2021-08-26 18:43:46 2411 4

转载 Leetcode算法题——完美数

题目描述对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。给定一个 整数 n, 如果是完美数,返回 true,否则返回 false示例 1:输入:28输出:True解释:28 = 1 + 2 + 4 + 7 + 141, 2, 4, 7, 和 14 是 28 的所有正因子。示例 2:输入:num = 6输出:true示例 3:输入:num = 496输出:true示例 4:输入:num = 8128输出:tru.

2021-08-23 15:07:53 673

原创 zookeeper的监听器原理

客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、节点删除、子目 录节点增加删除)时,ZooKeeper 会通知客户端。监听机制保证 ZooKeeper 保存的任何的数据的任何改变都能快速的响应到监听了该节点的应用程序。zookeeper只负责通知,具体做不做还要看客户端1、监听原理详解(1)首先要有一个main()线程(2)在main线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connet),一个负责监听(...

2021-08-22 17:12:35 3379 4

原创 zookeeper的命令行语法以及节点类型

命令基本语法 功能描述 help 显示所有操作命令 ls path [watch] 使用ls命令来查看当前znode中所包含的内容 ls -s path [watch] 查看当前节点信息 create 普通创建 -s 含有序列 -e 临时(重启或者超时消失) get path [watch] 获得节点的值 set 设置节点的具体值 stat 查看节点状态 dele...

2021-08-21 20:06:21 1040 3

原创 zookeeper的选举机制

zookeeper不仅可以在大数据中使用,在java中用的更多(微服务)。半数机制(Paxos 协议):集群中半数以上机器存活,集群可用。所以zookeeper适合装在奇数台机器上。 在zookeeper集群上,选举过程中只要有超过半数的机器认同了leader,那么他就是leader。Zookeeper虽然在配置文件中并没有指定master和slave。但是,zookeeper工作时,是有一个节点为leader,其他则为follower,Lead...

2021-08-21 18:28:40 514 1

原创 Hive中的数据类型

一、基本数据类型 数据类型 长度 例子 TINYINT 1byte有符号整数 20 SMALINT 2byte有符号整数 20 INT 4byte有符号整数 20 BIGINT 8byte有符号整数 2

2021-08-20 13:55:31 680 3

原创 HDFS的HA高可用机制

不管是伪分布式搭建,还是完全分布式搭建的集群,都会存在单点故障的问题。如何解决单点故障?那就是HA高可用一、概述1)所谓HA(highavailable),即高可用(7*24小时不中断服务)。2)实现高可用最关键的策略是消除单点故障。HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。3)Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF)。4)NameNode主要在以下两个方面影响HDFS集群...

2021-08-18 11:34:12 912 5

转载 Hadoop的企业级优化

在想办法对Hadoop进行优化时,我们应该从Hadoop存在的一些问题来着手。一、Hadoop的一些问题MapReduce程序效率的瓶颈:1、计算机性能 包括CPU、内存、磁盘健康、网络2、I/O操作优化(1)数据倾斜(2)Map和Reduce数设置不合理(3)Map运行时间太长,导致Reduce等待过久(4)小文件过多(5)大量的不可分块的超大文件(6)Spill次数过多(7)Merge次数过多二、MapReduce的优化方...

2021-08-16 22:09:33 146

原创 MapReduce中的Shuffle机制

一、概念Mapreduce确保每个reducer的输入都是按键排序的。系统执行排序的过程(Map方法之后,Reduce方法之前的数据处理过程)称之为Shuffle。二、Shuffle包括哪些阶段Shuffle包括MapTask工作中的Collect收集阶段、Spill阶段、Combine(merge)阶段以及ReduceTask工作中的Copy阶段、Merge阶段、Sort阶段。Shuffle是从map()函数执行结束后开始的,首先将m...

2021-08-15 20:14:27 537

原创 MapReduce中的计算器以及数据清理

一、计数器1、概述 计数器是MR程序在运行过程中记录一些数据信息,比如 Map阶段输入了多少数据 Map阶段输出了多少数据,Combiner输入了多少数据 Combiner输出多少数据。Hadoop为每个作业维护若干内置计数器,以描述多项指标。例如,某些计数器记录已处理的字节数和记录数,使用户可监控已处理的输入数据量和已产生的输出数据量。2、计数器的使用:采用计数器组、计数器名称的方式统计context.getCounter("gro...

2021-08-15 12:00:23 459

原创 MapReduce中的压缩和解压缩

在MR中,压缩是个可选项,是为了减少IO流次数一、概述 压缩技术能够有效减少底层存储系统(HDFS)读写字节数。压缩提高了网络带宽和磁盘空间的效率。在运行MR程序时,I/O操作、网络数据传输、 Shuffle和Merge要花大量的时间,尤其是数据规模很大和工作负载密集的情况下,因此,使用数据压缩显得非常重要。 鉴于磁盘I/O和网络带宽是Hadoop的宝贵资源,数据压缩对于节省资源、最小化磁盘I/O和网络传输非常有帮助。可以在任意MapReduce阶段启用压缩。不过,尽管压缩与解压操作...

2021-08-14 17:23:39 966 1

原创 在windows系统上安装Hadoop

Hadoop都是在Linux上安装、配置、操作的,那么Hadoop可以在Windows上安装、运行吗?答:我们知道Hadoop官网只提供了Hadoop的tar.gz安装包,显然是属于Linux系统的。但其实Windows系统也可以安装Hadoop,如果想在Windows上安装,我们将linux上的tar.gz这个安装包解压缩一下就可以了。(使用软件7-zip)一、Windows上安装hadoop步骤第一步 将linux上的tar.gz安装包解压缩需要解压缩两...

2021-08-14 14:20:58 16484 5

原创 大数据技术Hadoop——YARN

YARN是Hadoop中的分布式资源调度系统,在Hadoop2.x版本才引入的概念。一、概述Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式(不止管自己计算机的调度,还可以管理其他的计算机调度问题)的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序。二、YARN的基本架构YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。...

2021-08-13 23:19:19 1160 4

原创 MapTask与ReduceTask工作机制!!!

MR的学习接近尾声了,今天我们学习一下两个简单的内容:MapTask与ReduceTask工作机制MapTask与ReduceTask工作流程合起来其实就是我们MR的工作流程。一、MapTask工作机制1、学习MapTask工作机制之前,我们先理解一下并行度决定机制maptask的并行度决定map阶段的任务处理并发度,进而影响到整个job的处理速度。那么,mapTask并行任务是否越多越好呢?MapTask并行度决定机制 一个job的map阶段MapTa...

2021-08-10 22:02:47 533

原创 MapReduce详细工作流程之Combiner合并

今天学习的Combiner合并在MapReduce中是可选项,默认情况下Combiner不会执行,它就像一个可插拔的小组件。Combiner合并相当于MR的一种优化策略一、概念1)Combiner是MR程序中Mapper和Reducer之外的一种组件2)Combiner组件的父类就是Reducer3)Ccombiner和reducer的区别在于运行的位置:Combiner是在每一个maptask所在的节点运行Reducer是接收全局所...

2021-08-09 22:38:48 820 1

原创 快速帮助我们去实现JavaBean对象的创建的技术——lombok

今天我们介绍一个开发Javabean(实体类也是一个JavaBean)对象的一个神器:Lombok一、lombok是什么?JavaBean:Java定义的可重复使用的组件,也就是类。一般Javabean符合如下特征:1、类中的属性必须是私有化的private修饰的(为了保证数据的安全性)2、必须提供公开的getter、setter方法去暴露属性3、必须具备一个无参构造器(公开的)4、提供toString和equals方法等(可选)实体类:实体类也是一种JavaBean对象...

2021-08-09 13:30:44 414

原创 MapReduce的运作详解之分区

分区的概念:Map阶段处理的数据,在向环形缓冲区写的时候 是以分区的方式写的一般情况下,MR程序分区数有多少 reduceTask数量就应该有多少 ,一个分区的数据一个reduceTask去处理,reduceTask处理完成之后都会生成一个结果文件...

2021-08-06 21:30:05 4016 2

原创 JAVA高级排序——希尔排序

为何称高级排序呢?是因为之前学习的基础排序,包括冒泡排序,选择排序还有插入排序,对他们在最坏情况下的时间复杂度做了分析,发现都是O(N^2),而平方阶通过我们之前学习算法分析我们知道,随着输入规模的增大,时间成本将急剧上 升,所以这些基本排序方法不能处理更大规模的问题,接下来我们学习一些高级的排序算法,争取降低算法的时间 复杂度最高阶次幂。希尔排序希尔排序是插入排序的一种,又称“缩小增量排序”,是插入排序算法的一种更高效的改进版本。学习插入排序的时候,我们会发现一...

2021-08-05 19:21:59 170

信息可视化项目归总文档.docx

这是本人大二参加大学生创新创业比赛作为负责人以新冠疫情为出发点,结合Echarts技术将python爬取的实时数据展现出来

2021-07-13

信息可视化——走近人类命运共同体.pptx

答辩PPT,也是项目总体介绍

2021-07-13

空空如也

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

TA关注的人

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