幽灵工作室

幽灵工作室

排序:
默认
按更新时间
按访问量

深入解析Java AtomicInteger 原子类型

在进行并发编程的时候我们需要确保程序在被多个线程并发访问时可以得到正确的结果,也就是实现线程安全。线程安全的定义如下:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么这个类就是线程安全的。...

2018-06-14 22:41:44

阅读数:6

评论数:0

Hive分析窗口函数系列文章

分析窗口函数应用场景:(1)用于分区排序(2)动态Group By(3)Top N(4)累计计算(5)层次查询Hive分析窗口函数(一) SUM,AVG,MIN,MAXHive中提供了越来越多的分析函数,用于完成负责的统计分析。抽时间将所有的分析窗口函数理一遍,将陆续发布。今天先看几个基础的,SU...

2018-06-14 10:48:56

阅读数:12

评论数:0

一个人爬楼梯,可能走一步、两部、三步。编程,求他上一有n阶的梯级的走法-java实现

package youling.studio.test; import java.util.concurrent.atomic.AtomicInteger; public class Test07 { private AtomicInteger count = new AtomicInteg...

2018-06-06 20:47:08

阅读数:52

评论数:0

HDFS NameNode内存详解

前言《HDFS NameNode内存全景》中,我们从NameNode内部数据结构的视角,对它的内存全景及几个关键数据结构进行了简单解读,并结合实际场景介绍了NameNode可能遇到的问题,还有业界进行横向扩展方面的多种可借鉴解决方案。事实上,对NameNode实施横向扩展前,会面临常驻内存随数据规...

2018-06-04 22:32:45

阅读数:22

评论数:0

HDFS NameNode内存全景

一、概述从整个HDFS系统架构上看,NameNode是其中最重要、最复杂也是最容易出现问题的地方,而且一旦NameNode出现故障,整个Hadoop集群就将处于不可服务的状态,同时随着数据规模和集群规模地持续增长,很多小量级时被隐藏的问题逐渐暴露出来。所以,从更高层次掌握NameNode的内部结构...

2018-06-04 22:31:32

阅读数:19

评论数:0

Apache Avro RPC 实例

Avro的模式主要由JSON对象来表示,Avro支持8种基本类型(Primitive Type)和6种复杂类型(Complex Type:records、enums、arrays、maps、unions 和fixed),基本类型可以由JSON字符串来表示。Avro支持两种序列化编码方式:二进制编码...

2018-06-03 21:43:42

阅读数:34

评论数:1

数据质量评估标准

数据质量是保证数据应用的基础,它的评估标准主要包括四个方面,完整性、一致性、准确性、及时性。评估数据是否达到预期设定的质量要求,就可以通过这四个方面来进行判断。完整性完整性指的是数据信息是否存在缺失的状况,数据缺失的情况可能是整个数据记录缺失,也可能是数据中某个字段信息的记录缺失。不完整的数据所能...

2018-05-31 21:44:55

阅读数:48

评论数:0

Java并发编程中Semaphore的用法

Semaphore又称信号量,是操作系统中的一个概念,在Java并发编程中,信号量控制的是线程并发的数量。public Semaphore(int permits)1其中参数permits就是允许同时运行的线程数目;下面先看一个信号量实现单线程的例子,也就是permits=1:package co...

2018-05-26 17:17:01

阅读数:27

评论数:0

缓存穿透,缓存击穿,缓存雪崩解决方案分析

前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能...

2018-05-24 11:05:13

阅读数:28

评论数:0

Java中的强引用,软引用,弱引用,虚引用

作者:winterSunshine链接:https://www.zhihu.com/question/37401125/answer/100981172来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1.概念解释强引用是使用最普遍的引用:Object o=new Ob...

2018-05-23 10:08:53

阅读数:18

评论数:0

Java单例模式——并非看起来那么简单

Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。一些管理器和控制器常被设计成单例模式。       单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免...

2018-05-23 00:01:28

阅读数:21

评论数:0

hadoop的mapReduce和Spark的shuffle过程的详解与对比及优化

大数据的分布式计算框架目前使用的最多的就是hadoop的mapReduce和Spark,mapReducehe和Spark之间的最大区别是前者较偏向于离线处理,而后者重视实现性,下面主要介绍mapReducehe和Spark两者的shuffle过程。MapReduce的Shuffle过程介绍Shu...

2018-05-22 23:13:16

阅读数:13

评论数:0

hive谓词下推的失效与生效

谓词下推的生效:[sql] view plain copyselect * from czw_test2 a  join (select * from czw_test1 where pt >='20121101' and pt <='20121102'...

2018-05-22 19:29:34

阅读数:10

评论数:0

Hadoop 过滤,映射,谓词下推基本概念

今天想跟大家讨论一下以下几个概念:Filter , Projections, 和 Puchdowns。1. Filter(过滤) 和 Project(映射) 在传统的 OLAP 系统中,在进行 Join 的时候使用过滤和映射会极大的提高性能。同样的,在 Hadoop 中使用 Filter 和 Pr...

2018-05-22 18:11:20

阅读数:9

评论数:0

Spark Streaming重复消费,多次输出问题剖析与解决方案

1,Exactly once 事务什么事Exactly once 事务?数据仅处理一次并且仅输出一次,这样才是完整的事务处理。Spark在运行出错时不能保证输出也是事务级别的。在Task执行一半的时候出错了,虽然在语义上做了事务处理,数据仅被处理一次,但是如果是输出到数据库中,那有空能将结果多次保...

2018-05-15 11:13:14

阅读数:62

评论数:0

星型模型和雪花型模型比较

每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如现金登记事务所产生的数据,事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关...

2018-05-14 10:54:58

阅读数:47

评论数:0

HDFS NameNode重启优化

一、背景在Hadoop集群整个生命周期里,由于调整参数、Patch、升级等多种场景需要频繁操作NameNode重启,不论采用何种架构,重启期间集群整体存在可用性和可靠性的风险,所以优化NameNode重启非常关键。本文基于Hadoop-2.x和HA with QJM社区架构和系统设计(如图1所示)...

2018-05-13 23:39:17

阅读数:15

评论数:0

Kafka 设计与原理详解

一、Kafka简介本文综合了我之前写的kafka相关文章,可作为一个全面了解学习kafka的培训学习资料。 12转载请注明出处 : 本文链接1.1 背景历史当今社会各种应用系统诸如商业、社交、搜索、浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战:如何收集这些巨大的信息...

2018-05-11 10:51:34

阅读数:93

评论数:0

图解排序算法(四)之归并排序

基本思想  归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在...

2018-05-10 20:58:00

阅读数:46

评论数:0

Hadoop MapReduce工作详细流程(Partitioner/SortComparator/GroupingComparator)

map阶段 1. 使用job.setInputFormatClass(TextInputFormat)做为输入格式。注意输出应该符合自定义Map中定义的输出。 2. 进入Mapper的map()方法,生成一个List。 3. 在map阶段的最后,会先调用job.setPart...

2018-04-26 12:38:47

阅读数:61

评论数:0

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