自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 TCP/IP四层模型和OSI七层模型的概念

TCP/IP四层模型TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对应OSI的第四层)。  TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传...

2018-08-14 23:39:21 225

转载 深拷贝和浅拷贝

1.拷贝的引入(1)引用拷贝创建一个指向对象的引用变量的拷贝。例1:Teacher teacher = new Teacher("Taylor",26);Teacher otherteacher = teacher;System.out.println(teacher);System.out.println(otherteacher);输出结果:blog.Teach...

2018-08-12 21:01:43 218

转载 Java 中 Comparable 和 Comparator 比较

Comparable 简介Comparable 是排序接口。若一个类实现了Comparable接口,就意味着“该类支持排序”。  即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序。此外,“实现Compar...

2018-08-12 12:32:46 135

转载 Java hashCode() 和 equals()使用的场景

第3部分 hashCode() 的作用hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashCode() 定义在JDK的Object.java中,这就意味着Java中的任何类都包含有hashCode() 函数。        虽然,每个Java类都包含hashCode() 函数。但是,仅仅当创建并某...

2018-08-12 11:48:54 910

转载 深入理解JVM—JVM内存模型

我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状,因此,现在CPU同内存交互就变成了下面的样子...

2018-08-12 00:11:55 125

转载 JVM直接内存

概述直接内存并不是虚拟机运行时数据区的一部分,也不是Java 虚拟机规范中农定义的内存区域。在JDK1.4 中新加入了NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O 方式,它可以使用native 函数库直接分配堆外内存,然后通脱一个存储在Java堆中的DirectByteBuffer 对象作为这块内存的引用进行操作。这样能在一...

2018-08-11 23:55:58 146

转载 Java中的NIO非阻塞编程

在JDK1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞API。对于大多数应用来说,这样的API使用很方便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK1.5开始,NIO API作为一个基于缓存区,并能提供非阻塞IO操作的API被引入。 NIO所在的包为java.nio,其中的n表示non-blocking。但实际上我...

2018-08-11 15:10:02 131

原创 NIO核心框架介绍

NIO共引入了4个概念:- 缓存区:表示数据存放的容器,提供可读写的数据缓存区;- 字符集:用来对缓存数据进行解码和编码,在字节和Unicode字符之间转换;- 通道:用来接收或发送数据,提供与文件、套接字等的连接,类似于Java IO中的流;- 选择器:他们与可选择通道一起定义了多路的、无阻塞的IO设施。NIO框架位于Java.nio包中,它为每一个概念都提供了核心的支持类...

2018-08-11 14:37:03 500

转载 jvm的新生代和老年代简介

新生代分为三个区域,一个Eden区和两个Survivor区,它们之间的比例为(8:1:1),这个比例也是可以修改的。通常情况下,对象主要分配在新生代的Eden区上,少数情况下也可能会直接分配在老年代中。Java虚拟机每次使用新生代中的Eden和其中一块Survivor(From),在经过一次Minor GC后,将Eden和Survivor中还存活的对象一次性地复制到另一块Survivor空间上(这...

2018-08-08 11:01:05 177

转载 kafkaspot在ack机制下如何保证内存不溢

storm框架中的kafkaspout类实现的是BaseRichSpout,它里面已经重写了fail和ack方法,所以我们的bolt必须实现ack机制,就可以保证消息的重新发送;如果不实现ack机制,那么kafkaspout就无法得到消息的处理响应,就会在超时以后再次发送消息,导致消息的重复发送。 但是回想一下我们自己写一个spout类实现BaseRichSpout并让他具备消息重发,那么...

2018-08-05 18:49:04 373

转载 Kafka文件存储机制

Kafka是什么Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。1.前言 一个商业化消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服...

2018-08-05 17:33:51 212

转载 Storm的BaseBasicBolt源码解析ack机制

我们在学习ack机制的时候,我们知道Storm的Bolt有BaseBasicBolt和BaseRichBolt。在BaseBasicBolt中,BasicOutputCollector在emit数据的时候,会自动和输入的tuple相关联,而在execute方法结束的时候那个输入tuple会被自动ack。在使用BaseRichBolt需要在emit数据的时候,显示指定该数据的源tuple要加上第...

2018-08-05 14:51:32 306

转载 Storm的ack机制在项目应用中的坑

正在学习storm的大兄弟们,我又来传道授业解惑了,是不是觉得自己会用ack了。好吧,那就让我开始啪啪打你们脸吧。先说一下ACK机制:  为了保证数据能正确的被处理, 对于spout产生的每一个tuple, storm都会进行跟踪。  这里面涉及到ack/fail的处理,如果一个tuple处理成功是指这个Tuple以及这个Tuple产生的所有Tuple都被成功处理, 会调用spout的...

2018-08-05 12:11:05 310

转载 Scala:Function1、Function2

Function1带一个参数的方法,声明时,它需要两个泛型参数,第一个是传入的数据类型,第二个表示返回的数据类型,Function1是 trait ,它有一个apply方法,用来对输入参数进行处理了,使用Function1,必须实现apply接口val funs = new Function1[Int,Int] { def apply(x:Int) = { x + 1 }...

2018-08-04 20:17:12 419

转载 scala的foreach和for

一句印象深刻的话,Alan Kay(Smalltalk发明者)说得一句话:“I’m not against types, but I don't know of any typesystems that aren't a complete pain, so I still like dynamic typing”。并不是静态类型不好,只是静态类型的实现太让他痛苦了,所以他只好喜欢动态类型(语...

2018-08-04 15:12:54 815

转载 Hive中COUNT的高级用法(条件过滤等)

在HIVE中,除了COUNT(*)外,COUNT还可以有很多高级用法。SELECT    type  , count(*)  , count(DISTINCT u)  , count(CASE WHEN plat=1 THEN u ELSE NULL END)  , count(DISTINCT CASE WHEN plat=1 THEN u ELSE NULL END)...

2018-08-03 22:30:11 12672 2

转载 SQL count和case when配合统计给定条件下不重复的记录数

Iamlaosong文1、我们知道,SQL语句中用count函数统计记录数量,配合distinct关键字可以统计非重复的记录数量。例如:select count(*), count(city_name), count(distinct city_name) from tb_county 查询结果是:2534  2534  363增加查询条件可以查询不同条件下记录的数量,例如...

2018-08-03 18:40:34 2033

转载 Hive分析窗口函数 NTILE,ROW_NUMBER,RANK,DENSE_RANK

本文中介绍前几个序列函数,NTILE,ROW_NUMBER,RANK,DENSE_RANK,下面会一一解释各自的用途。Hive版本为 apache-hive-0.13.1数据准备: cookie1,2015-04-10,1 cookie1,2015-04-11,5 cookie1,2015-04-12,7 cookie1,2015-04-13,3 co...

2018-08-03 18:06:25 178

转载 Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP

GROUPING SETS该关键字可以实现同一数据集的多重group by操作。事实上GROUPING SETS是多个GROUP BY进行UNION ALL操作的简单表达,它仅仅使用一个stage完成这些操作。GROUPING SETS的子句中如果包含()数据集,则表示整体聚合。 Aggregate Query with GROUPING SETS Equiva...

2018-08-03 15:55:01 871

转载 浅谈 DML、DDL、DCL的区别

一、DMLDML(data manipulation language)数据操纵语言:    就是我们最经常用到的 SELECT、UPDATE、INSERT、DELETE。 主要用来对数据库的数据进行一些操作。SELECT 列名称 FROM 表名称UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值INSERT INTO table_name (列1, 列2...

2018-08-03 11:44:04 257

转载 hive中order by,sort by, distribute by, cluster by作用以及用法

1. order by    Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。但是对于大量数据这将会消耗很长的时间去执行。    这里跟传统的sql还有一点...

2018-08-02 18:05:02 198

datagrip使用文档

datagrip 使用文档。

2022-05-23

空空如也

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

TA关注的人

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