- 博客(50)
- 收藏
- 关注
原创 HIVE自定义函数
Hive自定义函数一.UDF(userdefinedfunction) 背景 系统内置函数无法解决所有的实际业务问题,需要开发者自己编写函数实现自身的业务实现诉求。 应用场景非常多,面临的业务不同导致个性化实现很多,故udf很需要。 意义 函数扩展得到解决,极大丰富了可定制化的业务需求。 IO要求-要解决的问题 in:out=1:1,只能输入一条记录当中的数据,同时返回一条处理结果。 属于最常见的自定义函数,像cos,sin,sub...
2022-05-06 21:20:20 1736
原创 HIVE企业级应用
一.数据仓库架构设计数据仓库的主要工作就是ETL,即是英文Extract-Transform-Load的缩写,用来描述数据从来源端经过装载(load)、抽取(extract)、转换(transform)至目的端的过程。数据仓库架构设计,即为公司针对自身业务场景实现的水平分层、垂直分主题的数据仓库构建过程的顶层设计。1.数据架构 架构原则:先水平分层,再垂直分主题域。 数据架构分三层 源数据落地区(SDF:SourceDataFile)数据仓库层(DW:Data...
2022-05-06 21:16:34 512
原创 hive参数深入浅出
Hive参数深入浅出一.Hive参数介绍 特别说明 关于MapJoin的问题剖析 概念说明 将join的本来应该是reduce进行关联查找的过程,改成由纯map端进行关联查找。 特点特征 减少了reduce的处理,全部放到map端进行操作。 减少了数据移动,提升了IO和计算效率。 应用场景 大表join小表的时候, .
2022-05-06 21:14:43 299
原创 分布式资源管理与任务调度框架Yarn
Yarn简介1、Yarn是什么 ApacheHadoopYARN(YetAnotherResourceNegotiator,另一种资源协调者) 一种新的Hadoop资源管理器,一个通用资源管理系统 为上层提供统一的资源管理与任务调度及监控,提高了集群管理效率、资源使用率、数据共享效率 2、产生背景在Hadoop1.x中MapReduce是Master/Slave结构,在集群中的表现形式为:1个JobTracker带多个TaskTracker,我们称之为MRv...
2022-04-28 19:01:04 1255
原创 MapReduce进阶与经典案例
HDFS数据格式详解数据存储空间是有限的,数据本身和增量是动态变化的,企业要追求最佳的存储与计算的性价比。数据格式描述了数据保存在文件或者记录中的规则。HDFS中分为文件格式和压缩格式。1、文件格式文件格式按面向的存储形式不同,分为面向行和面向列的两大类文件格式。 面向行/列 类型名称 是否可切分 优点 缺点 适用场景 面向行 文本文件
2022-04-26 22:15:15 444
原创 分布式计算框架Map/Reduce
1、产生背景 Web2.0时代,数据爆炸式、指数级增长,大数据分布式计算需求频繁 通过单机内存扩展来增强计算能力,已经无法承载大规模数据量的计算 分布式计算开发和维护的复杂与多变,对程序员要求太高 Google公司为了解决其搜索引擎中大规模网页数据的并行化处理,研究提出的一种面向大规模数据处理的并行计算模型和方法,称为MapReduce。2003年和2004年,Google公司在国际会议上分别发表了两篇关于Google分布式文件系统GFS和MapReduce的论文,公布了G
2022-04-24 21:21:08 766 1
原创 分布式文件系统HDFS
1、产生背景传统的本地文件系统(单机式),在数据量增长过快、数据备份、数据安全性、操作使用便捷性上存在严重不足。2、特点介绍 高容错和高可用性,硬件错误是常态而不是异常 HDFS设计为运行在普通硬件上,所以硬件故障是很正常的。HDFS提供文件存储副本策略,可以实现错误自检并快速自动恢复。个别硬件的损坏不影响整体数据完整性和计算任务的正常执行。 流式数据访问 HDFS主要采用流式数据读取,做批量处理而不是用户交互处理,因此HDFS更关注数据访问的高吞吐量。 弹性存储,支持..
2022-04-23 14:11:07 2702
原创 Spring MVC中的使用细节、进行SSM的整合
1、地址参数在resful风格的接口中,会直接通过地址进行参数的传递,如,在进行详情查询的时候,我们需要传递参数id,这个时候id这个参数就可以放在地址中进行传递。 @GetMapping("/detail/{id}/{name}") public String userDetailPage(@PathVariable Integer id, @PathVariable("name") String name) { System.out.println...
2022-03-25 22:08:47 146
原创 关于Spring Mvc的基础操作
1 三层架构介绍 咱们开发服务器端程序,一般都基于两种形式,一种C/S架构程序,一种B/S架构程序 使用Java语言基本上都是开发B/S架构的程序,B/S架构又分成了三层架构 三层架构 表现层:WEB层,用来和客户端进行数据交互的。 业务层:处理公司具体的业务逻辑的。 持久层:用来操作数据库的。 2 MVC设计模式介绍 MVC全名是ModelViewController模型视图控制器,每个部分各司其职。 Model:数据...
2022-03-24 21:35:04 334
原创 Aop相关操作
Spring是解决实际开发中的一些问题,而AOP解决OOP中遇到的一些问题.是OOP的延续和扩展.使用面向对象编程(OOP)有一些弊端,当需要为多个不具有继承关系的对象引人同一个公共行为时,例如日志、安全检测等,我们只有在每个对象里引用公共行为,这样程序中就产生了大量的重复代码,程序就不便于维护了,所以就有了一个对面向对象编程的补充,即面向方面编程(AOP),AOP所关注的方向是横向的,区别于OOP的纵向。2.1为什么学习AOP在不修改源码的情况...
2022-03-23 21:50:59 113
原创 Spring注解和Aop实现
1、IOC注解Spring框架中有注解和XML两种配置方式,包括Spring中的IOC和AOP也一样,都有XML和注解两种方式两种方式各有千秋。1.1XML和注解的区别1.1.1XML配置优点有: XML配置方式进一步降低了耦合,使得应用更加容易扩展,即使对配置文件进一步修改也不需要工程进行修改和重新编译。 在处理大的业务量的时候,用XML配置应该更加好一些。因为XML更加清晰的表明了各个对象之间的关系,各个业务类之间的调用。同时spring的相关配置也能一目...
2022-03-22 21:34:05 180
原创 关于Spring的基础描述及环境搭建
1Spring是什么?Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可...
2022-03-21 21:26:01 191
原创 mybatis 中事务和隔离级别、缓存、注解形式开发
1 mybatis中的事务和隔离级别1.1jdbc中的事务在JDBC中我们可以通过手动方式将事务的提交改为手动方式,通过setAutoCommit()方法就可以调整。通过JDK文档,我们找到该方法如下:那么我们的Mybatis框架因为是对JDBC的封装,所以Mybatis框架的事务控制方式,本身也是用JDBC的setAutoCommit()方法来设置事务提交方式的。1.2mybatis中的事务提交方式Mybatis中事务的提交方式,本质上就是调用...
2022-03-21 16:28:58 1521
原创 关于mybatis的相关介绍和入门操作
1 Mybatis概述1.1 jdbc 问题数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。 Sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变 java代码。 使用 preparedStatement 向占有位符号传参数存在硬编码,因为 sql 语句的 where 条件不一定,可能多也可能少,修改 sql 还要修改代码,系统不易维护。 对结果集解析存在硬编码(查询列名),sql 变化导致解析代码..
2022-03-21 16:07:30 190
原创 DOM节点操作、事件对象与BOM
1、节点操作1 什么是节点根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:整个文档是一个文档节点 document每个 HTML 元素是元素节点HTML 元素内的文本是文本节点每个 HTML 属性是属性节点注释是注释节点2 节点类型通过noteType属性可以获取节点的类型document的节点类型---9console.log(document.nodeType);//9标签的节点类型---1varbox1=...
2022-03-03 21:02:27 91
原创 DOM操作
获取元素的方式1、根据id获取元素vardiv1=document.getElementById("box1");2、通过类名获取元素varp1Arr=document.getElementsByClassName("p1");console.log(p1ArrinstanceofArray);//falseconsole.log(Array.isArray(p1Arr));//falseconsole.log(p1Arr.length);...
2022-03-02 21:34:35 82
原创 js中属性操作与事件问题
、隔行换色案例一:完成对无序列表的隔行换色(原理~~~通过循环获取元素得到的伪数组进行取余逻辑判断操作)varbtn=document.getElementById("btn");varliObj=document.getElementById("list").getElementsByTagName("li");console.log(liObj);btn.onclick=function(){//第一种for(vari=0;i&...
2022-03-02 21:31:36 196
原创 预解析,对象
函数其他、函数的命名规则1.由字母、数字、下划线、$符号组成,不能以数字开头 2.不能是关键字和保留字,例如:for,while,this, name 3.区分大小写 规范 1.函数名必须有意义 2.遵守驼峰命名法 3.建议不要用$作为函数名、函数的覆盖问题如果两个函数都是函数的声明,且函数名相同,那么后边的函数会覆盖前边的functionfn1(){...
2022-03-01 21:10:31 80
原创 数组,函数
数组、为什么要学习数组之前学习的数据类型,只能存储一个值(比如:Number/String。如果我们想存储班级中所有学生的姓名,此时该如何存储?、数组的定义所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整。、通过数组字面量创建数组// 创建一个空数组var arr1 = [];// 创建一个包含3个数值的数组,多个数组项以逗号隔开var arr2 =
2022-03-01 21:06:18 110
原创 关于JavaScript的基础概述
1. JavaScript介绍、JavaScript是什么1、JavaScript的历史Netscape(网景)在最初将其脚本语言命名为LiveScript,是布兰登.艾克发明的。后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。JavaScript与Java名称上的近似,是当时Netscape为了营销考虑与Sun微系统达成协议...
2022-02-28 20:28:55 324
原创 html 关于表格表单的总结
、创建表格在HTML网页中,要想创建表格,就需要使用表格相关的标签。创建表格的基本语法格式如下:<table><tr> <td>单元格内的文字</td> ...</tr> ...</table>在上面的语法中包含三对HTML标签,分别为 table、tr、td,他们是创建表格的基本标签,缺一不可,下面对他们进行具体地解释。1.table用于定义一个表格。2.tr 用于定义表格中的一...
2022-02-22 20:21:54 2349
原创 关于html基础
1 HTML 初识HTML(英文Hyper Text Markup Language的缩写)中文译为“超文本标签语言”,是用来描述网页的一种语言。所谓超文本,因为它可以加入图片、声音、动画、多媒体等内容,不仅如此,它还可以从一个文件跳转到另一个文件,与世界各地主机的文件连接。HTML指的是超文本标记语言 (Hyper Text Markup Language)HTML不是一种编程语言,而是一种标记语言 (markup language)标记语言是一套标记标签 (markup tag)总结
2022-02-21 22:22:52 547
原创 JDBC java数据库链接
JDBC介绍我们之前学习MYSQL时,为了使用MYSQL服务,我们通常要使用客户端与MYSQL服务进行连接,然后才能输入SQL语句进行数据库的各种操作。客户端有命令行与图形界面2种。但是在更多的环境下,由我们人直接操作数据是很低效的,比如双11这种业务场景下,一秒中往往要在库中生成上千万甚至几亿条数据,靠人来手工操作是不现实的,只能依赖于程序进行这种高并发的操作。程序语言有多种,比如Java、Python、C/C++等,程序语言如果想执行SQL语句,也必须要先与数据库进行连接,数据库也有多种,比
2022-02-17 21:47:54 104
原创 关于MYSQL的多表查询
1. 行转列1.1 什么是行转列正常的查询结果是这样的查询的结果create table test_9( id int, name varchar(22), course varchar(22), score decimal(18,2));insert into test_9 (id,name,course,score)values(1,'小王','java',99);insert into test_9 (id,name,course,...
2022-02-16 22:00:22 246
原创 关于MYSQL的应用
1 简单DML应用create table teacher ( id int, `name` varchar(20), salary decimal(18,2))ENGINE = innodb default charset = utf8;更改表名 alter table teacher rename t_teacher;更改字段 alter table t_teacher change name teacher_name ...
2022-02-15 20:32:45 441
原创 关于SQL数据库的基础知识
1 数据(data)2 数据库(database)数据库:顾名思义,就是用来存储数据的仓库。文件跨平台性能差的原因是不是操作系统之间存储方式不一样,那么数据库为什麽就可以解决?遵循一定数据格式的数据集合。特点:可以认为它是对文件系统的改进。它解决了不同操作系统之间,数据格式的兼容性问题。也就是说,只要是同一个数据库的数据文件,即使是从Windows迁移到了Linux上,也可以正常处理的。数据库的分类Oracle这是一种关系型数据库。它的特点是闭源收费,但是功能强大稳定,.
2022-02-14 21:18:43 630
原创 IP归属地在线查询平台
一、项目介绍1、背景根据IP得到位置,加标签进行大数据分析,比如淘宝推荐等提供优质数据 www.ip.cn 等 查询IP2、需求 IP 分析 归属地信息 , 查找在毫秒内完成IP地址库,公网都是开放的IANA : 国际组织,负责公网IP维护分发3、技术栈Eclipse ,JavaSE中面向对象、IO流、二分法算法、Base64编码、工具类封装4、目标通过开发IP地址归属地查询平台,我们需要对JavaSE综合技术有所...
2022-02-13 17:43:37 1653
原创 网络编程、正则表达式
1、网络编程1.1 概述Java是 Internet 上的语言,它从语言级上提供了对网络应用程 序的支持,程序员能够很容易开发常见的网络应用程序。Java提供的网络类库,可以实现无痛的网络连接,联网的底层 细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并 且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一 的网络编程环境。1.2 网络基础计算机网络:把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规 模大、功能强的网络系统,从而使众多的计.
2022-02-09 22:37:13 188
原创 关于生产者,消费者的面试问题(重要)
1、死锁1.1 概述1.2 代码实现2、 线程通信2.1 2.2 使用方式2.3 生产者消费者package day_02;import java.util.Random;/*** 类似于打印奇数和偶数一样 , 使用 wait和notifyAll** 1 一个业务类 SynStack 其中有一个变量,用来保存已生产的元素个数* 2 业务类中有一个char数组,...
2022-01-25 22:38:08 190
原创 Java中关于多线程的面试总结
1、 多线程1.1 程序,进程,线程程序,进程,线程程序 : 一组命令的集合,为了完成指定的功能,程序是静态概念,一般保存在硬盘当中进程 : 正在运行的程序,是一个动态概念,需要保存在内存当中,操作系统会分配对应的PID,当我们直接关闭某个进程的时候,该进行会在运行内存中被销毁线程 : 一个程序中,不同的执行分支,如果同一个时间节点允许多个线程同时执行的时候,我们称为支持多线程在Java中,main方法开始执行,就是一个线程,称为主线程1.2 并行和并发并行:多个cpu,同时
2022-01-24 21:32:35 165
原创 File操作 序列化 递归复制
1、 File1、1概述java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对 象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。File对象可以作为参数传递给流的构造器1.2 构造方法public File(String pa...
2022-01-22 16:51:44 162
原创 IO流中常见的问题
1.IO1.1 概述流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。I:input 输入流O:output:输出流1.2 分类按处理数据类型的不同,分为字节流和字符流按数据流向的不同分为输入流和输出流。(入和出是相对于内存来讲的)按功能不同,分为节点流和处理流节点流:直接操作数据源处理流:对其他流进行处理1.3四大抽象类1.3.1 InputS..
2022-01-21 22:10:51 1132
原创 散列表、泛型
1 Set1.1 HashSet使用2、散列表2.1 概述*散列表结构 可以理解为 数组中保存的是联邦的首节点,用来保存k和v键值操作**hash算法:是一种安全的加密机制,可以把不定长的数据转换为定长数据,并且不能保证其唯一性,又叫哈希冲突**再Java中指的是hashCode方法**对一个对象生成多次hash值,值一定相同,多个对象也可能生成相同的hash值,叫哈希冲突**k不可重复,v可以重复**添加过程: * ...
2022-01-20 21:38:11 420
原创 java中comparable和comparator的区别
区别Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparator位于包java.util下,而Comparable位于包 java.lang下Comparable 是一个对象本身就已经支持自比较所需要实现的...
2022-01-19 21:01:37 774
原创 Java中常见的集合问题
1、数组封装1.1 需求数组操作,相对还是比较复杂的,也不能做添加和删除操作,当需要添加和删除的时候需要新见数组,赋值数组 或者元素移位,比较麻烦所以 我们对这些添加和删除操作进行封装1.2 编码实现package day_01;public class Array { /** * 封装的数组 */ private Object[] elements; /**...
2022-01-18 22:07:35 457
原创 关于面试的异常机制问题概括
.1 Biginteger1.1 概述1、Integer类作为int的包装类,能存储的最大整型值为231-1,Long类也是有限的, 最大为263-1。如果要表示再大的整数,不管是基本数据类型还是他们的包装类 都无能为力,更不用说进行运算了。2、java.math包的BigInteger可以表示不可变的任意精度的整数。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。 另外,BigInteger 还提供以下运算:..
2022-01-17 22:43:31 122
原创 常用API
1.String1、1 概述java.lang.String:是字符串类,底层就是一个final修饰的char数组,所以String很多特性就是数组的特性比如一旦确定长度 不能更改字符串一旦创建 ,这个字符串对象不能再更改为了提升字符串的访问和存储效率Java虚拟机采用了一种缓存机制,把字符串都保存到了字符串常量池中在执行过程中,假如要用到一个字符串a,String s1="a" 先去字符常量池中检索 是否有a,如果没有就创建一份 假如有Sting s2="a";就不再创建,把已有的
2022-01-16 20:10:40 1589
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人