自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (1)
  • 收藏
  • 关注

原创 hive学习小记1

1、变量和属性hive中有四个命名空间来存储变量和属性。hivevar -> 用户自定义变量hiveconf -> hive相关配置属性system -> java程序中的配置属性env -> shell环境中的变量设置变量hive>set hivevar:test=aaa;读取变量hive>set hivevar:foo=b...

2020-03-17 00:44:26 205

原创 mac下安装hadoop与hive

hadoop 3.x安装1、ssh免密登陆配置ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsacat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keyschmod 0600 ~/.ssh/authorized_keys2、下载并安装hadoopbrew install hadoop下载完后hadoop...

2020-03-02 00:41:45 1532

原创 linux命令行学习笔记(2)

安全性相关useradd -D(useradd是添加用户命令,加-D参数可以查看linux创建用户时的默认参数)useradd -m 用户名(可以创建一个用户,-m参数会创建一个HOME目录,并从模板目录从复制文件过来,模板目录的路径在useradd -D中可以看到,-g参数指定用户登录组的GID或组名,-G<群组>  修改用户所属的附加群组,-n参数创建一个与用户名相同的新组,...

2018-11-21 18:15:00 241

原创 linux命令行学习笔记(1)

文件目录处理命令ls -i (i参数可以显示文件或者目录的inode,inode是文件或者目录用于标识的唯一数字)ln -s 文件名 链接文件命(ln -s用来给文件创建一个符号链接,也叫软链接;如果不加参数s那么创建的就是硬链接;符号链接是一个实际存在的文件,它指向链接的那个原文件,链接文件和原文件inode不一样,也就是说他们是完全不同的两个文件,而硬链接创建的是一个独立的虚拟文件,包含...

2018-11-18 20:23:08 189

原创 kafka——高性能篇

引言kafka是一个高吞吐量的分布式消息系统,它可以支持处理实时数据,提供实时数据。kafka的设计之初就是注重吞吐量的提升,它的高性能,高可吞吐量以从这么以下几点去讨论: ①分区; ②网络传输上减少开销; ③顺序读写: ④零拷贝技术; ⑤优秀的文件存储机制;分区kafka是个分布式集群的系统,整个系统可以包含多个broker,也就是多个服务器实例。每个主题topic会有多个...

2018-05-11 01:59:18 4420

原创 Kafka-初识

简介kafka是一个分布式的发布订阅消息系统(或者说是一个分布式流平台),可以实时处理大数据。我们可以把kafka比作水管,水管中可以承载水流,那么kafka可以承载数据流。kafka可以构建实时的流数据管道,来处理大量的数据流。消息系统kafka是一个优秀的消息系统,支持持久化,更关注吞吐量,显式的分布式。消息系统是什么? 消息系统负责将数据从一个应用程序传递到另一个应用程序...

2018-04-29 19:07:28 485

原创 MySQL探索之路——查询优化

本博客借鉴《高性能mysql》避免请求不需要的数据,减少服务器负担和网络开销①避免向数据库查询不必要的数据,可以加上limit ②多表联查避免返回所有表的所有列。 ③尽量不使用select * ④为查询重复的数据作缓存切分查询如果需要做一件很耗时的事,而且这事不是很急,可以把这个大的查询切分开来,把压力分散在很长的时间段中。分解关联查询一般分解关联查询应用...

2018-02-13 01:02:44 384

原创 MySQL探索之路——高性能索引

索引索引是存储引擎用于快速找到记录的一种数据结构。索引类似于目录,在索引中找到对饮的值,然后根据索引记录找到对应的数据行。 mysql中索引可以包含一个或多个列的值。索引类型①B-Tree索引 虽然叫B-Tree索引,但不同的存储引擎可能底层的数据结构有所不同,例如NDB集群引擎用的是T-Tree,而InnoDB用的是B+Tree。 首先看一下B树和B+树的区别(此图引用简书...

2018-02-11 01:52:11 201

原创 MySQL探索之路——初识

本博客借鉴《高性能mysql》MySQL逻辑架构 出处:《高性能mysql》 以上就是mysql的逻辑架构 ①最上层是连接处理 ②第二层包括了解析器、查询缓存、优化器,大多的服务功能都在这一层实现,除了解析、优化外还有一些内置函数,存储过程、触发器、视图等。 ③第三次主要包含了存储引擎,负责了数据的存储和提取。锁在并发控制时通常采用共享锁和排它锁来处理,也就是所谓...

2018-02-09 01:52:24 264

原创 计算机网络——数据链路层协议

数据链路层协议定义了通过媒介的互联设备之间传输的规范。MAC地址MAC地址用于识别数据链路层互联的节点。 MAC地址长48比特,一般在网卡出厂后会被烧录到ROM内,MAC地址由IEEE和各大厂商管理分配。因此一个网卡的MAC地址都是唯一的,但是有了虚拟网卡后MAC地址也会不唯一,但是只要在同一链路内MAC地址都唯一就可以。网络类型从通信介质上来看,网络可以分为共享介质型和非共享介

2018-02-05 15:51:58 467

原创 计算机网络——网络层协议

TCP/IP的心脏是网络层。这一层主要由IP和ICMP协议组成。IPIP即网际协议。 IP协议主要完成终端节点之间的通信。(配有ip地址的设备叫做主机,配有ip地址还有路由转发功能的叫做路由器,节点时主机和路由器的统称)。 IP大致可分为三个模块,寻址、路由、IP分包和组包。 网络层地址:IP地址。 路由的功能可以简单叙述为根据目的IP地址和路由表找到下一跳IP地址。 源主机

2018-02-05 01:33:29 324

原创 计算机网络——传输层协议

传输层的功能是分割并重新组装上层提供的数据流,为数据流提供端到端的传输服务。 传输层中两个有代表性的协议就是TCP和UDP协议。TCP和UDP的区别TCP是面向连接的、可靠的流协议。 UDP是不具有可靠的、无连接的数据报协议。端口号数据链路层的地址是MAC地址,IP协议中的地址是IP地址。那么传输层的地址是端口号,端口号用来识别同一台计算机中进行通信的不同应用程序。

2018-02-04 01:43:44 1027

原创 计算机网络——应用层协议之HTTP

引言应用层的协议是针对了特定的应用程序。 应用层协议有很多,例如SSH、HTTP、SMTP、FTP、HTTP等等。HTTPHTTP是超文本传输协议,web是建立在http协议之上通信的。HTTP是种无状态协议,协议自身不对请求和响应之间的通信状态进行保存。 URI和URL URI是统一资源标识符,URL是统一资源定位符。 URI用字符串表示某一互联网资源,而URL表示资源的

2018-02-02 00:10:52 470

原创 计算机网络——初识网络

在计算机通信诞生之初,系统化与标准化未得到重视。每家计算机厂商都出产各自的网络产品来实现计算机通信,所以不同生产厂家的网络体系结构如果不同,那么两台计算机就如果实现通信。 为了解决这个问题,ISO(国际标准化组织)制定了一个国际标准OSI。OSI所定义的协议没有得到普及,但是却作为了一种参考模型。OSI参考模型OSI参考模型将协议分成了7层,通过分层使复杂的网络协议简单化。上下层之间

2018-02-01 13:02:39 313

原创 操作系统—文件管理

引言文件系统是用来管理计算机内部储存的程序和数据。 数组组成可分为:数据项、记录和文件。 数据项可以组成记录,记录可以组成文件。文件①属性:文件具有以下属性:文件类型、文件长度、文件物理位置、文件的建立时间。 ②类型:文件类型可分为普通文件、目录文件、特殊文件。为了方便统一管理,系统将所有的输入输出设备都视为文件。 ③文件系统模型:文件系统模型主要分为三层,分别为文件系统接

2018-01-23 00:47:06 997

原创 操作系统—设备管理

I/O设备I/O设备可以分为存储设备或输入输出设备;块设备或字符设备;低速中速高速设备。 I/O设备不是直接和cpu进行通信,而是通过设备控制器和cpu进行间接通信,cpu通过设备控制器去控制一个或多个设备。 设备控制器功能:①接收和识别cpu的命令;②数据交换;③标识和报告设备的状态;④地址识别;⑤数据缓存;⑥差错控制; 如上所示是设备控制器的结构图,主要分为与cpu的接口,与I/

2018-01-21 22:39:53 1285

原创 操作系统—存储器管理

存储器层次结构通用的计算机中,存储器大致分为三个层次: ①cpu寄存器 ②主存 主存中又包含了:高速缓存、主存、磁盘缓存 ③辅存 辅存包括了磁盘和可移动存储介质 操作系统对这么存储器进行统一管理。程序的装入和链接首先源代码需要通过编译生成目标代码、在通过链接将一些库函数链接在一个生成可执行程序,最后再将程序装入内存。 程序链接 源程序编译后得到一些目标模块,需要通过链接

2017-12-19 23:29:19 429

原创 操作系统—处理器调度

一个作业被提交后需要经过处理器的调度,才能获得处理器然后执行,一般需要通过作业调度和进程调度两个过程才能获得处理器。

2017-12-19 16:16:05 2871

原创 操作系统—进程管理

引言进程是操作系统资源分配和能够独立运行的基本单位。在多道程序的环境下,程序是并发执行的,这有个并发和并行的概念。所谓的并发是在一大段时间内,程序看似是一起执行的,但是实际上在一个时间点上只有一个程序在执行任务,而并行则是在同一时间点上,多个程序同时执行任务。进程定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个基本独立单位。 结构:一个进程实体由PCB(进程控制块)、程序段、相关数据

2017-12-17 17:09:36 434

原创 操作系统—初识操作系统

引言操作系统是介于硬件和上层应用软件之间的一层结构。操作系统为上层软件提供了接口,同时作为计算机资源的管理者。它方便了上层应用对计算机硬件的操作,大大地提高了计算机的资源利用率和系统吞吐量。发展历程无操作系统时代 计算机操作是程序员将程序和数据打孔在纸带上,将纸带装入输入机,然后再启动它们将程序和数据输入计算机,最后启动计算机工作。 可见缺点是非常的多,首先是要废人力,需要大量的人工操作,其次

2017-12-15 00:51:52 864 1

原创 深入理解java虚拟机—java内存模型与线程

引言内存模型可以理解为在特定的操作协议下,对特定的内存或高速缓存进行读写的过程抽象。不同架构的物理机器有着不同的内存模型,java用定义一种内存模型来屏蔽硬件和操作系统的内存访问差异。主内存与工作内存java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存到内存,从内存中取变量这样的底层细节。这里的变量指的是线程共享的变量。 JMM(java内存模型)规定了所有变量都存在主内

2017-11-04 18:23:07 250

原创 深入理解java虚拟机—编译

java 编译

2017-11-04 08:40:24 472

原创 深入理解java虚拟机—虚拟机字节码执行引擎

引言调用一个方法就会将该方法(将方法的各种信息封装成栈帧)进行压栈,方法结束就会出栈。而栈帧是支持方法调用和执行的基础结构,是虚拟机栈的元素,栈帧存储了一个方法的局部变量表,操作数栈,动态连接和方法返回地址信息等其他信息。在编译时就已经确定好了局部变量表的大小和操作数栈的大小。局部变量表局部变量表是用来存方法中的参数、变量,以slot为单位,this关键字是局部变量表的第一个参数(索引为0),这是编

2017-10-29 15:35:13 452

原创 深入理解java虚拟机—虚拟机类加载机制

引言虚拟机的类加载机制主要是讲虚拟机将class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机使用的java类。类加载的生命周期如下:加载,验证,准备,解析,初始化,使用,卸载。验证、准备、解析这三步又被称为连接,加载、验证、准备、初始化和卸载这五个阶段的顺序是固定的,但是解析可能会在初始化后再开始,这里的“开始”指的是可能会交叉运行。类加载过程加载 这个加载只是类加载

2017-10-28 12:33:44 163

原创 深入理解java虚拟机—类文件结构

引言我们知道c语言的编译过程如下:预编译->编译生成汇编代码->汇编生成机器代码->链接生成可执行文件。c语言没有跨平台性的原因就是因为c语言是根据计算机cpu的指令生成的机器代码,所以它生成的可执行文件只有在相同指令集的环境下来能运行。 而java语言具有跨平台型,java编译之后是生成的字节码,通过java虚拟机来解释运行字节码(也会做后编译)。每个平台的java虚拟机不同,但是不同的虚拟机可

2017-10-24 19:53:31 217

原创 深入理解java虚拟机—垃圾回收机制(2)

垃圾回收机制(2)垃圾收集器虚拟机中会维护很多种垃圾回收器,在HotSpot虚拟机中,有:Serial、ParNew、Paraller Scavenge、CMS、Serial Old(MSC)、Parallel Old,G1这些垃圾回收器。 (1)Serial收集器(新生代,复制算法) Serial的意思是串行,会让我们想到是用单线程去做垃圾收集,但是最重要的意义是在于它工作时需要暂停所有的线程

2017-10-22 13:53:29 291

原创 深入理解java虚拟机-垃圾回收机制(1)

垃圾回收机制java中取消了指针操作,采用java虚拟机自动管理对象。Garbage Collection(GC)也就是所谓的垃圾回收器在java之前就得到了使用,1960年诞生的Lisp是第一门使用内存动态分配和垃圾回收的语言。如何判断对象是否存活。(1)引用计数算法。(Jvm不用这个算法) 给对象添加一个引用计数器,用一个地方引用它,计数器值就+1,引用失效一个,计数器就减1.当

2017-10-21 14:19:15 281

原创 深入理解java虚拟机-java内存区域

Java把内存的管理交给了虚拟机,由虚拟机来自动管理内存。所以需要了解java虚拟机内存的管理机制,才能更好的编写程序。内存区域java虚拟机在执行程序时会把它所管理的内存分为以下区域:方法区虚拟机栈本地方法栈堆程序计数器程序计数器: 程序计数器是一个很小的内存空间,我们知道程序是有一大堆指令和数据构成的,程序计数器则是来指向当前正在执行指令的地址;但是有一点要注意,如

2017-10-14 16:32:10 205

原创 Spring boot—logback日志构建

spring boot是一款能够快速搭建应用的框架。它里面也包含了日志系统,例如我们在application.properties中加入logging.file=日志路径logging.level.包名=级别这样就能配置简单的日志系统。 但是这样所有的日志就跑到了一个文件中了,对日志的查看很不方便。 我们可以采用logback对日志做出一定的控制,比如我们按日期来输出日志,这样使工程更加简洁规

2017-09-23 10:54:42 202

原创 日常小笔记-maven

很多人在构建maven项目,进行运行命令的时候可能会出错。一大部分的原因是因为之前由于网络问题,依赖包只下了一半,但是maven以为依赖包已经存在,所以找不到类,导致运行出错。我们可以跟着错误找到哪个类出错或者没找到,然后那个包删掉,再让maven重新下载,这样就可以了。

2017-09-17 11:16:15 179

原创 Spring源码解析-springmvc

springmvc是spring为web应用程序提供的一个模块。 Springmvc是基于servlet实现的,通过实现Servlet接口的DispatcherServlet来封装核心功能,通过请求分派给处理程序。 在分析源码之前先来一套简单的spirngmvc程序。 首先我们需要配置web.xml文件,服务器启动后的工作就从这开始。 ①<!DOCTYPE web-app PUBLIC

2017-09-15 18:59:24 300

原创 malloc底层原理实现

使用过c语言的都知道malloc是一个动态分配内存的函数,还可以通过free释放内存空间。 如果我们想分析一下malloc的源码,这其实不是一会就能看懂的,但是我们可以讨论一下malloc的简单实现。 在这之前,我们先来看一下虚拟内存空间。 虚拟内存空间时操作系统实现内存管理的一种机制。操作系统为每个进程维护一个虚拟内存空间。操作系统会将虚拟内存和实际的物理内存进行映射,CPU芯片上叫做存

2017-09-11 16:51:12 16648 4

原创 Netty学习-Java网络编程

阻塞与非阻塞我们最初接触到的java网络编程往往是同步阻塞的IO。 同步阻塞和同步非阻塞的区别在于接收数据的时候。同步阻塞采用接收到一个客户端的接入请求,开启一个线程,然后这个线程等待客户端发送信息,在等待的过程中采用阻塞。这样的做法我们发现每一个客户端的接入,我们就需要开启一个线程来管理消息的接收和发送,如果客户端没有消息发过来,那么这个线程一直会阻塞在接收消息这个地方,这样的话会造成很大的资源

2017-09-05 16:51:12 201

原创 Linux/Unix系统编程-基本概念

内核内核是操作系统的核心,是指管理和分配系统资源的核心软件。内核的职责 ①进程调度:linux属于抢占式多任务操作系统,多个进程可以同时存在于内存当中,但是每次只能有一个进程获得对cpu的使用权。内核通过一定的进程调度算法控制哪个进程获得对cpu的使用,以及使用时间。 ②内存管理:虽然现在的计算机内存大小逐渐增长。但内存还是属于有限资源,进程间需要共享资源,linux采用了虚拟内存机制,看

2017-09-01 23:57:33 762

原创 排序算法-交换排序之快速排序

和归并排序一样,快速排序也是一种分治的递归算法。 快速排序的思想是:选取一个枢纽元,将比枢纽元小的元素放枢纽元前面,把比枢纽元小的元素放后面,然后将前面的集合,后面的集合,重复之前的步骤。 枢纽元的选取是一门学问,我们要将枢纽元的尽量选取为集合中间值,使得枢纽元两边的元素量能更加均匀,避免大小不等的递归调用。我们将第一个元素,中值元素,最后一个元素作比较,取大小在三者中间的元素作为枢纽元。 在

2017-08-23 22:12:52 249

原创 排序算法-归并排序

归并排序的思想是:将两个已经排序的数组,重新排序到一个数组中,所以只需要一趟,就能完成排序。 比如说有数组{14,20,50}和{45,68,96}和一个新数组{},进行从小到大排序; 第一趟下来,因为14比45小,三个数组分别为{20,50},{45,68,96},和新数组{14}; 第二趟下来,因为20比45小,三个数组分别为{50},{45,68,96},和新数组{14,20} 第三趟

2017-08-23 15:53:04 166

原创 排序算法-选择排序之堆排序

堆是一种除了底层节点外的完全填满的二叉树,底层可以不完全,左到右填充。堆在实现优先队列的时候很有用。堆又分为大根堆和小根堆。大根堆的父节点的值大于等于两个子节点的值。小根堆的父节点的值小于等于两个子节点的值。 堆排序的思想是:每次从堆中取出最小(大)值,将取出的元素按顺序排到数组中,这样所有的元素就是从小到大(从大到小)排列在数组中。我们可以把删除最小值得到的元素重新排在一个数组中,或者排在该数组

2017-08-22 23:05:36 176

原创 排序算法-插入排序之希尔排序

首先我们来了解一个定理:交换相邻元素的任何排序算法平均时间为O(N^2)。 所以希尔排序通过比较一定间隔的元素来进行工作,各趟距离随算法减小,最后比较相邻元素完成排序。也就是说原来的插入排序是相邻的元素比较,而希尔排序是具有间隔的插入排序,这个间隔就是这个序列。 希尔排序使用增量序列:h1,h2,h3…ht;h1=1。使得每趟排序使数组a[i]<=a[i+hk]。最后一趟使a[i]<=a[i+1

2017-08-22 17:09:04 186

原创 排序算法-插入排序之直接插入

插入排序的思想是:每一步将元素插入到前面已经排序好数组的对应的位置。 代码:public class InsertionSort { public static void main(String[] args){ Integer[] array = new Integer[]{10,54,55,47,50,20,41,33,40,70}; sort(arr

2017-08-22 15:04:16 168

原创 Spring源码解析-AOP

AOP是面向切面编程,能对一些方法进行相同的处理。首先来看一下怎么用。 ①创建一个需要被拦截的beanpublic class AopTest { public void test(){ System.out.println("test"); }}②创建一个Advisorpackage advisor;import org.aspectj.lang.Proceed

2017-08-20 15:15:18 239

mips-sde-elf-i686-pc-linux-gnu.tar.bz2

mips-sde-elf-i686-pc-linux-gnu.tar.bz2 下载这里来编译mips

2017-11-13

空空如也

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

TA关注的人

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