瓜牛呱呱的博客

最美的不是下雨天,是曾与你躲过雨的屋檐

SparkStreaming Direct 方式中手动管理 Kafka Offset 的示例代码

在大数据的场景下,流式处理都会借助 Kafka 作为消息接入的中间件,且 SparkStreaming 中 Direct 方式的优越性,现在可以说都使用 Direct 方式来获取 Kafka 数据 Direct 方式是采用 Kafka 低级的 API 来获取数据,也就是说我们要自己来管理 这个...

2018-04-25 16:17:26

阅读数 1263

评论数 0

Redis SortedSet 中 score 的精度问题

一、问题发现 通过 jedis 往 sortedset 中添加了个成员,并且设定了一个Double 类型的分数时,精度出现了问题 测试代码如下: @Test public void zadd(){ jedis.zadd("test:cli", ...

2018-04-23 14:39:21

阅读数 2537

评论数 0

【源码追踪】SparkStreaming 中用 Direct 方式每次从 Kafka 拉取多少条数据(offset取值范围)

我们知道 SparkStreaming 用 Direct 的方式拉取 Kafka 数据时,是根据 kafka 中的 fromOffsets 和 untilOffsets 来进行获取数据的,而 fromOffsets 一般都是需要我们自己管理的,而每批次的 untilOffsets 是由 Drive...

2018-04-19 16:37:12

阅读数 1158

评论数 0

JVM垃圾收集器(五) —— 默认的垃圾收集器

在前面的几篇文章讲述了各种垃圾收集器,但是问题来了,我们在Linux或者Windows安装的 jdk 默认是什么收集器呢? 打开控制台,在控制台中输入一下命令: java -XX:+PrintCommandLineFlags -version 32位的windows可以看到下面的...

2018-04-18 12:00:01

阅读数 1102

评论数 4

JVM垃圾收集器(四) —— G1收集器

前面两篇文章主要是讲了新生代和老年代的垃圾收集器,本文就来介绍一下比较特殊的垃圾收集器——G1垃圾收集器 G1是一款面向服务端应用的垃圾收集器。 一、G1的特点: 1、并行与并发:G1能充分利用多CPU、多核环境下的硬件优势,使用多个CPU(CPU或者CPU核心)来缩短Stop-...

2018-04-17 18:33:01

阅读数 122

评论数 0

JVM垃圾收集器(三) —— 老年代垃圾收集器

上一篇文章讲了新生代的垃圾收集器,这篇文章我们来讲讲老年代的垃圾收集器 Serial Old收集器 1、说明:一个单线程收集器,使用“标记-整理”算法。其实就是Serial收集器老年代的版本 2、优缺点 和 运行图 和Serial收集器一样,所以这里就不多赘述了 Par...

2018-04-17 17:34:24

阅读数 254

评论数 0

JVM垃圾收集器(二) —— 新生代垃圾收集器

在看本文之前,建议先去了解一下几个概念先再来看下文哈,大牛请忽略,哈哈~ 所有收集器概括图 下面先给大家看一下所有收集器及其关联的示意图,然后我们再对每个回收器进行讲解: ★★★ 注意:如果两个收集器之间存在连线,就说明它们可以搭配使用 Serial收集器 1、特点:一个...

2018-04-17 16:02:10

阅读数 135

评论数 0

JVM垃圾收集器(一) —— 概念:新生代和老年代、并行和并发

在上篇文章中我们讲到了垃圾回收的几种算法。垃圾收集算法是内存回收的方法论,而垃圾收集器是垃圾回收的具体实现。 在了解垃圾收集器之前,本篇文章先来简单的说一下新生代和老年代、并行和并发的概念。 新生代和老年代 从内存回收的角度来看,一般我们可以将Java堆分为:新生代和老年代。 ...

2018-04-17 15:58:25

阅读数 331

评论数 0

JVM垃圾回收集算法 —— 标记-清除算法、复制算法、标记-整理算法

标记-清除算法 1、执行过程:如同它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象 2、该算法是回收算法中最基础的算法,其他的算法都是基于该算法进行改进的 3、缺点: (1)效率问题:标记和清除两个过程的效率都不高 (2...

2018-04-17 11:24:50

阅读数 788

评论数 0

JVM 中判断对象是否 “存活” 的算法 —— 可达性分析算法

在堆中,几乎存放着所有的对象实例,那么回收这些对象实例时,我们需要判断哪些对象是 “已死” 可以回收的,哪些对象是 “存活” 不需要回收的,下面就来介绍一下 JVM 中如何判断上述问题的。 基本思路 通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索...

2018-04-17 10:28:22

阅读数 96

评论数 0

JVM运行时数据区域 —— 程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区、运行时常量池

java虚拟机运行时数据区域的概括图如下所示: 下面将对运行时数据区进行讲解 程序计数器 1、说明:程序计数器可以看做是当前线程所执行的字节码的行号指示器。其实通俗点讲就是记录class文件运行到哪一行 2、注意的点: (1)因为CPU执行时只能处理一个线程的代码,但是可能有多个...

2018-04-16 17:47:33

阅读数 190

评论数 0

关于 Redis Cluster 模式下获取 Java Client 的问题

Redis连接池对于单机模式来说,官网有提供个JedisPool工具类,用起来也比较方便 但是对于Redis集群模式下,官网没有提供连接池的工具类,于是就需要我们自己来实现类似的功能了,我这里采用的是单例模式的方法来解决高并发的场景。 单机模式 如果对于 Redis 是单机模式下...

2018-04-16 15:11:57

阅读数 441

评论数 2

让 Spark Streaming 程序在 YARN 集群上长时间运行(三)—— Grafana、优雅地停止(Graceful stop)、总结

前段时间看到了外国朋友写的一篇文章,觉得还不错,于是就把他翻译一下,供大家参考和学习。 如果没看过前两篇文章(第一篇、第二篇),建议先去看一下哈,这里是接着上两篇文章来写的哈~ Grafana 当你为 Spark 应用程序配置第一个 Grafana 仪表板时,首先出现的问题...

2018-04-15 22:31:34

阅读数 690

评论数 0

让 Spark Streaming 程序在 YARN 集群上长时间运行(二)—— 日志、监控、Metrics

前段时间看到了外国朋友写的一篇文章,觉得还不错,于是就把他翻译一下,供大家参考和学习。 如果没看过第一篇文章,建议先去看一下上一篇文章哈,这里是接着上一篇文章来写的哈~ 日志 访问 Spark 应用程序日志的最简单方法是配置 Log4j 控制台 appender,等待应用程序...

2018-04-15 20:09:21

阅读数 1036

评论数 0

让 Spark Streaming 程序在 YARN 集群上长时间运行(一)—— 故障容错、性能、安全

前段时间看到了外国朋友写的一篇文章,觉得还不错,于是就把他翻译一下,供大家参考和学习。 长时间运行的 Spark Streaming 作业一旦提交给 YARN 集群,应该一直运行,直到故意停止。 任何中断都会导致严重的处理延迟,并且可能会导致处理数据丢失或重复。 YARN 和 Apach...

2018-04-14 17:58:52

阅读数 861

评论数 0

Spark内存管理模型(二)—— 统一内存管理(Unified Memory Manager)

Spark内存模型在1.6版本之前版本采用的是静态管理(Static Memory Manager)的方式,在1.6之后采用的是统一管理(Unified Memory Manager)的方式。且Spark的可用内存分为堆内和堆外,由于堆外的比较简单,所以本文会对统一管理方式的情况进行讲解。 ...

2018-04-13 11:22:55

阅读数 658

评论数 1

Spark内存管理模型(一)—— 静态内存管理(Static Memory Manager)

Spark内存模型在1.6版本之前版本采用的是静态管理(Static Memory Manager)的方式,在1.6之后采用的是统一管理(Unified Memory Manager)的方式。且Spark的可用内存分为堆内和堆外,所以本文先对静态内存管理的机制进行讲解。 一、堆内 ...

2018-04-13 10:29:32

阅读数 555

评论数 0

HBase的优点

列可以动态增加,并且列为空就不存储数据,节省存储空间; HBase可以自动切分数据,使得数据存储自动具有水平扩展功能; HBase可以提供高并发读写操作的支持; 容错性; 版权免费; 自动故障转移; 行级别原子性,即PUT操作一定是完全成功或者完全失败。 摘取自:https://www.zh...

2018-04-09 16:29:59

阅读数 754

评论数 0

Spark 和 MR(MapReduce) 的区别

个人总结了三点,如下: 数据处理形式不同:Spark的数据转换都是基于内存的,而MR都是处理一次刷到磁盘一次 代码书写的不同:Spark提供了非常丰富的算子,书写起来非常爽,而MR的书写就有点让人头痛 容错性不同:Spark的容错比MR更加高,因为Spark算子有血缘关系 ...

2018-04-09 16:24:43

阅读数 839

评论数 0

Hive 中 Order By 和 Sort By的区别

刚面试的时候面试官问到Hive的 order by 和 sort by 的区别,没答出来,于是在网上找了一下,个人理解如下: 1、Order By order by 排序出来的数据是全局有序的,但是只能有一个partition 2、Sort By sort by 排序出来的数据是局...

2018-04-09 16:21:49

阅读数 1590

评论数 0

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