- 博客(64)
- 收藏
- 关注
转载 jdk动态代理原理解析
原文地址:https://www.cnblogs.com/gonjan-blog/p/6685611.html想要理解jdk动态代理原理,需要对反射有一定的了解,然后再去思考下面两个问题:为什么是基于接口的? 动态生成的代理类是什么样子?是如何执行的?现在有一个接口以及它的实现类。现在需要在执行每个方法前后打印一条日志。package proxy;public interface Activity { void partake(); void reward();}
2020-09-27 15:52:56
185
原创 Maven build 标签使用
插件的开发是干什么用的构建本地仓库:https://www.iteye.com/blog/xiaoboss-1560542发布的时候的设置:distributionManagement标签https://www.jianshu.com/p/06f73e8cbf78pom.xml 的 build标签,其中的build标签描述了如何来编译及打包项目,而具体的编译和打包工作是通过...
2020-05-03 13:39:34
931
原创 maven仓库设置,profile配置,镜像设置
个人的理解:因为maven依赖一些资源,jar包,构建插件等。 所以肯定在本地要有一个仓库来存放这些东西。但是为了方便使用,在本地仓库不存在这些资源的时候可以去一个远程仓库上去下载到本地仓库。所以我们既要配置本地仓库,也要配置远程仓库本地仓库: 默认地址为~/.m2/, 一个构件只有在本地仓库存在之后, 才能由Maven项目使用.远程仓库: 远程仓库又可简单分成两类: 中央仓库和私...
2020-04-30 16:50:57
5269
1
原创 mysql事务隔离分类及实现
事务简介事务支持是在存储引擎层实现的。MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。此处以 InnoDB 为例,进行剖析。提到事务,不得不说ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)。本章主要剖析隔离性有哪几类,以及如何实现。SQL 标准的事务隔离级别包括:读未提交(read u...
2019-12-17 20:27:19
153
原创 mysql的binlog与redo log详解
本章博客主要想解释以下三个问题:这两个日志的作用 这两个日志的区别 一个更新操作的流程mysql是由server层 + 存储引擎层 组成。我们的主角redo log(重做日志)和 binlog(归档日志)分别属于不同的模块。redo log是InnoDB 引擎独有,其他存储引擎是没有的。binlog则属于server层的能力。实现下面的一条更新sql,流程是怎样的呢?upda...
2019-12-15 13:03:19
658
原创 Mysql的基础架构
先看下mysql的整体架构,才能更好的知道它的运作原理,以及如何使用。mysql分为 server层 + 存储引擎层server层中,涵盖了内置函数,存储过程,视图等(个人理解:数据+逻辑操作的组合)存储引擎负责数据的存储和提取,对外提供接口,是插件的形式(支持多种存储引擎,InnoDB在5.5版本后作为默认存储引擎)---------------------通过一个sql...
2019-12-14 18:49:28
491
原创 git及github的原理及使用(一)
目录1、版本控制工具应具备的特点2、版本控制工具分类3、Git结构4、代码托管中心5、本地库和远程库的联系6、安装Git7、基本命令操作8、版本管理9、分支10、Git原理1、版本控制工具应具备的特点协同修改:多人并行不悖的修改服务器端的同一个文件。 数据备份:不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。 版本管理:在保存每一...
2019-08-27 23:08:24
2867
原创 (三)cpu内部如何处理代码的执行
1、一个最简单cpu的数据通路可以看到,cpu内部一直重复执行着 Fetch(取指令)--> decode(指令译码)--> execute(执行指令),这个循环叫做指令周期。pc寄存器中存储的地址,需要地址译码器来寻址,在偌大的内存中找到对应地址存储的指令后,存入指令寄存器,再通过指令译码器把指令翻译成各个线路的控制信号给到运算器(运算器ALU是没有状态的,只能根据输入计算...
2019-07-07 12:02:09
2188
原创 (二)计算机如何保存字符和数字,并完成计算
1、保存字符计算机在创建之初,只能显示英文字母和特殊字符,后来慢慢才有了其他语言。但是打开网页或者编辑器却可能出现乱码。我们知道计算机只能保存0和1,那么如何把字符保存成二进制,以及如何把二进制解码成对应的字符就是先驱们所做的事情了。我们学语言首先都会有一个字典,里面保存了所有相关的字符,我们把字符的集合叫做字符集,例如 unicode字符集。而把字符集中的每个字符保存为二进制,及如何把一...
2019-06-12 16:24:23
2546
原创 (一)我们编写的代码如何在计算机上运行
1、计算机指令计算机的指令即cpu能理解的操作,也就是我们所说的机器语言。不同的cpu能理解的语言不一样,如intel的cpu,苹果使用的ARM的cpu。不同的语言即不同的计算机指令集。高级语言,汇编语言,计算机指令的关系一条高级语言 可翻译成 多条汇编指令(一对多) 一条汇编指令 可翻译成 一条计算机指令 (一对一) 一条条的计算机指令 即 一条条机器码(由0和1组成) 高级语...
2019-06-12 10:45:19
18422
转载 win10 解决.net framework 3.5 安装报错 0x800F0954问题
原文路径:https://blog.csdn.net/asd77882566/article/details/80024043打开注册表:按住 windows+s 键,输入regedit,确定; 找到路径HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU,其中UseWUServer默认值为1,改成0...
2019-03-29 17:34:00
8996
1
原创 (三)kafka基础理论
1、kafka的存储机制分区,就是kafka对应存储目录下创建的文件夹,文件夹的名字是主题名加上分区编号,编号从0开始 segment,就是在分区对应的文件夹下产生的文件。一个分区会被划分成大小相等的若干segment。这样一方面保证了不会产生体积过大的文件, 另一方面可以基于这些segment文件进行历史数据的删除来提高效率。读取指定分区中某个offset对应的数据过程如下:先根据...
2019-01-19 17:15:30
157
原创 (一)kafka介绍
kafka概述kafka是分布式消息队列,大体结构如下topic(主题):消息按照主题归类,主题之间的数据是隔离的 Producer(发送消息者) Consumer(消息接受者) broker:kafka集群每个实例(server) zookeeper:kafka集群,producer,consumer都依赖于zookeeper来保证系统可用性,保存一些meta信息kafka特点...
2019-01-19 11:01:04
174
原创 (四)Hive中的几种表
内部表先有表,后有数据。先创建了表对应的文件夹,再把数据上传到文件夹下作为表数据。create table people (col1 string, col2 string) row format delimited fields terminated by '\t';外部表先有数据,后有表。先在hdfs上有了数据文件,在创建表关联到数据,来管理数据。create exte...
2018-12-24 22:12:27
555
转载 (三)hive函数参考手册
1.内置运算符1.1关系运算符运算符 类型 说明 A = B 所有原始类型 如果A与B相等,返回TRUE,否则返回FALSE A <> B 所有原始类型 如果A不等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。 A < B 所有原始类型 如果A小于B返回TRUE,否则返回...
2018-12-24 22:11:48
179
原创 (二)Hive集成mysql存储元数据信息
元数据信息存储hive的元数据信息,就是创建的库,表,列等信息 这些信息需要一个外部的关系型数据库来保存,这样每次启动hive时,才能知道hive下有哪些元数据信息。目前的hive只支持 derby,mysql两种关系型数据库 启动hive时,默认会启动内置的关系型数据 derby,用来读取和保存元数据信息,使用derby有两大弊端:在哪个目录启动hive,则会在当前目录下创建一个文件,...
2018-12-24 19:06:49
434
原创 linux下安装mysql5.7
首先检查机器中是否已经安装了mysqlrpm -qa | grep mysql若已经安装,则需要卸载rpm -ev --nodeps (包名)官网下载对应linux系统的mysql安装包下载地址:https://dev.mysql.com/downloads/mysql/ 我使用的是red hot 32位操作系统,下载对应的下面四个包mysql-community-cl...
2018-12-21 15:14:16
256
转载 HBase面试须知
为什么hbase可以很快 从逻辑结构上来说 表按照行键进行了排序,所以查询时可以很快定位 数据按照行键切分为多个HRegion,分布在多个RegionServer中,查询大量数据时,多个RegionServer可以一起工作,从而提高速度从物理结构上来说:HRegion是存活在RegionServer的内存中的,读写会非常的高效 还有HFile的支持保证大量的数据可以持久化的保存...
2018-12-18 23:03:10
191
原创 (四)hbase读写过程
写入数据写入数据的过程通过行键 ==》 哪个region ==》regionServer ==》region 通过列族 ==》 region中某个store 先向hlog里插入操作记录 ==》 把数据直接放入 memStore ==》 返回写入成功 后台去把memStore的数据Flush到StoreFile写入数据的思想为了提高写入速度,使用了基于内存的memStore。虽...
2018-12-17 15:06:55
171
原创 (三)hbase的架构及存储结构
Habase系统架构ps:先了解hbase的整体架构,有些看不明白的可以先看后面,再回过头来看。系统架构hbase可以启动多个 master(老大),但只有一个处于active状态,其他的则处于backup状态。 会有多个regionServer(小弟) Zookeepr为hbase提供集群协调zookeeper保证任何时候集群只有一个Master:多个master抢着去zook...
2018-12-17 14:59:50
353
原创 (二)Hbase基本操作
帮助help: 列出所有命令,并且把命令分组展示 help “create”: create 命令教学使用通用命令status: 查看集群当前状态version:查看hbase的版本信息 whoami:查看当前用户信息名称空间hbase中的名称空间用来分放表,同样的表名放到不同的名称空间就可以。 list_namespace:列出所有名称空间 list_names...
2018-12-17 14:58:15
294
原创 (一)Hbase搭建
HBase简介hbase部分依赖mapreduce来实现,mapreduce又可以直接操作hbase。 Hbase是一种nosql,是基于hadoop的数据库,利用hdfs作为存储。 适合存储半结构化(例如json格式),非结构化(例如图片)的数据。 空的数据不占用空间 ,适合存储稀疏的数据。关系型数据,即使是空的字段也占用存储空间 。HBase逻辑结构行键(RowKey):可...
2018-12-17 14:52:46
170
原创 (一)Hive初识
数据库和数据仓库的区别 数据库为线上系统提供实时数据处理服务 完整的增删改查 要求严格的事务控制 尽量的避免冗余数据数据仓库为线下的统计分析挖掘提供数据治理服务 只能一次写入多次查询,不支持行级别的增删改 很少有事务的需求 人为制造冗余来提升查询效率Hive介绍hive将存储在hdfs上的文件映射成一张数据库表,本质上就是在hadoop的基础上加一层sql的壳。受底...
2018-12-04 18:14:29
170
原创 (十一)输出排序,Combiner
输出排序mapreduce默认会对结果进行排序。如果是以自定义类型为key,则自定义的类需要实现接口:WritableComparable,这样mapreduce就会按照自定义的排序方法来实现对输出结果的排序。package hadoop05;import java.io.DataInput;import java.io.DataOutput;import java.io.I...
2018-12-04 15:39:05
200
原创 (十)Mapper多输入源及Reduce多输出文件
目的Mapper多个输入源,处理后变成一个输出。reduce多输出源,根据输出的数据,按照自己的要求来决定,输出到不同的文件里。案例有以下两个文件,作为输入源(Mapper处理)最后把每个人的成绩打印到不同的文件里(Reduce处理)tommath 90english 98jarymath 78english 87rosemath 87english 90...
2018-12-04 15:38:44
891
原创 (九)MapReduce自定义文件读取和输出组件
作用自定义文件读取读取文件时,默认是使用读取器 LineRecoredReader<行首偏移量,每行内容>,每读取一次,把key和value传给 开发者开发的Mapper组件。现在自定义文件读取器,可以自定义读取文件的方法,这样就可以调整传递给Mapper组件的key和value。自定义文件输出当结果需要输出到文件时,默认使用 FileOutputFormat的子类Text...
2018-11-15 20:16:52
900
原创 (八)完全分布式模式搭建Hadoop集群
小技巧:配置好一台服务器后,通过 scp -r /opt/zookeeper-3.4.7/ hadoop02:/opt/ 命令,把文件发送到另外两台机器。1、搭建方案引入zookeeper,通过注册临时节点来监控服务是否挂掉,保证能及时切换到正在运行的服务上,防止单点故障。例如:NameNode(active)挂了 ,会有进程 FailOverController 来负责切换到 Name...
2018-11-15 19:17:26
130
原创 (七)MapReduce自定义类型及分区算法
需求有以下数据:电话 | 地区 | 姓名 | 使用流量三个reduce生成三个文件,按照地区来分区,得到每个人使用流量的汇总结果。13877779999 bj zs 214513766668888 sh ls 102813766668888 sh ls 998713877779999 bj zs 567813544445555 sz ww 1057713877779999 ...
2018-11-15 19:09:43
495
原创 (六)MapReduce理论
MR框架运行,会生成两类任务:①Map Task ②Reduce TaskMap Task的数量取决文件大小切片大小默认为128MB,比如一个257MB的文件,会生成3个切片(Split),即会对应3个Map Task。开发Mapper组件就是在定义Map Task的业务逻辑。一个Job的多个Map Task 业务逻辑一致,只是处理的数据不同。Reduce Task任务数量可以在jo...
2018-11-15 19:09:14
129
原创 (五)初识MapReduce
环境:伪分布式搭建的hadoop环境1、启动MapReduce2.0版本,MR运行在yarn上,执行启动命令: sh start-yarn.sh 出现下图两个进程说明启动成功2、MR初识写MR代码,就是编写Map组件以及Reduce组件。Map组件先直接对DFS上的文件进行数据操作,得到的结果再汇总给Reduce组件进行操作,得到最终的结果。 例如:有以下数据,需要...
2018-11-14 21:17:37
175
原创 (四)DFS文件操作的原理及代码实现
1、文件操作原理1.1、下载过程Client向namenode发起Open file 请求。目的是获取指定文件的输入流 namenode收到请求之后,会检查路径的合法性,客户端的操作权限。如果检测未通过,则直接报错返回 Client也会向namenode发起Getblockloaction请求,获取指定文件的元数据信息。如果上一步检测通过,则namenode会将元数据信息封装到输入流里...
2018-11-08 16:55:05
949
原创 (三)HDFS常用指令
HDFS常用指令:hadoop fs -mkdir /park 在hdfs 的根目录下,创建 park目录 hadoop fs -ls / 查看hdfs根目录下有哪些目录 hadoop fs -lsr / 递归查看某个目录下的所有文件 hadoop fs -put /root/1.txt /park 将linux操作系统root目录下的1.txt放在hdfs...
2018-11-06 14:08:00
385
1
原创 (二)hadoop伪分布模式安装
本文以伪分布式模式搭建hadoop1、三种安装模式:单机模式:无法使用HDFS,只能使用MapReduce,主要目的是在本机测试mapreduce代码 伪分布式模式:使用一台机器,使用多个线程模拟多台真实机器,模拟真实的分布式环境 完全分布式模式:用多台机器(虚拟机)来完成部署集群2、修改主机名使用主机名代替ip,更易配置。vim /etc/hosts127.0.0.1 ...
2018-11-06 13:57:12
743
原创 (一)HDFS总体架构
1、背景海量的非结构化数据,几乎没法梳理成一个个的字段,来存储在关系型数据库中。所以实际应用中,对于这类数据需要考虑数据如何存储。数据如何计算的问题。2、hadoop两个核心HDFS(以分布式方式来存储海量数据) MapReduce(以HDFS上的数据为基础进行计算)3、大数据特点Volume(大量) Velocity(持续高速增长) Variety(多样性) value...
2018-11-06 13:56:04
371
原创 VMware使用NAT模式搭建可内外访问的虚拟机
搭建windows和linux的原理是一样的,此处以linux为例。1、针对VMware软件自身的设置编辑 | 虚拟网络编辑器进入NAT设置可以看到网关是 192.168.101.2(每个人的可能不一样),那么虚拟机的ip则可以设置为 192.168.101.XXX。若ip如表所示,则添加端口转发见下图 注释 ip 主机 自身的机器 10.1.1....
2018-11-05 22:26:28
12548
3
原创 linux下磁盘空间不足导致oracle无法登录的解决方案
问题:oracle突然无法登录成功原因:发现是磁盘空间不足,而且oracle被关闭了解决方案如下:1、确定oracle安装在哪台linux机器,并登录2、查看磁盘使用情况 : df -h,看看哪个磁盘空间满了3、找到没有用的文件,并删掉。使用命令查看某个目录下的文件或文件夹大小(不含子目录) du -ah --max-depth=1 由于登录oracle的...
2018-11-02 17:30:02
4953
2
转载 学习设计模式前必读
原文地址:https://www.cnblogs.com/wangfupeng1988/p/3687346.html 个人总结: 设计模式学完就忘,归根到底是理解不到位。我们要站在设计的制高点去看待设计模式。 设计模式只是工具,是“术”而不是“道”。 设计模式就像字典,我们在工作的过程中需要经常翻一翻,把工作中碰到的情景与设计模式结合起来理解,通过“术”来理解“道...
2018-10-09 11:47:56
166
原创 (五)zookeeper特性及其使用场景
0、zookeeper特性Zookeeper特性:数据一致性,原子性,可靠性,实时性,顺序性,过半性。此处讲解其中的顺序性的意义,及其实现原理。解决问题:客户端发送三个请求给服务端,服务端需要按照客户端发送请求的的顺序来执行这三个请求。 解决思路:每次发送请求时会携带一个命令版本号,命令版本号是递增的。如图所示,不管哪个请求先到服务端,服务端都会判断是否还有更靠前的请求没有接收到。直...
2018-10-06 21:58:04
564
原创 (四)zookeeper配置大全
conf/zoo.cfg配置文件的全面详细讲解:clientPort 客户端连接server的端口,即对外服务端口,一般设置为2181 dataDir 存储快照文件snapshot的目录,默认情况下事务日志也会存储在这里 ZK会在特定的情况下触发一次快照,将当前服务节点的状态以快照文件的形式dump到磁盘上。 每生成一次快...
2018-10-06 17:02:32
183
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人