- 博客(307)
- 资源 (8)
- 问答 (1)
- 收藏
- 关注
原创 Flink实战:全局TopN分析与实现
点击蓝字关注~~按照区域areaId+商品gdsId分组,计算每个分组的累计销售额将得到的区域areaId+商品gdsId维度的销售额按照区域areaId分组,然后求得T...
2019-11-18 00:06:39 1909 1
原创 窗口实用触发器:ContinuousEventTimeTrigger
点击上方蓝字关注~ 短窗口的计算由于其窗口期较短,那么很快就能获取到结果,但是对于长窗口来说窗口时间比较长,如果等窗...
2019-11-16 14:11:21 4091
原创 Flink实战: 窗口TopN分析与实现
点击上方蓝字关注~ TopN 的需求场景不管是在离线计算还是实时计算都是比较常见的,例如电商中计算热门销售商品、广告计算中点击数前N的广告、搜索中计算搜索次数前...
2019-11-13 01:02:53 4156 2
原创 Flink join终结者:SQL Join
点击上方蓝字关注~ SQL是开发人员与数据分析师必备的技能,Flink也提供了Sql方式编写任务,能够很大程度降低开发运维成本,这篇是flink join的终极篇SQL Join, 首先介绍sql join使用方式、然后介绍global join带来的状态存储成本及解决方式、最后从源码角度分析sql join实现。一、SQL JOIN使...
2019-11-10 19:33:58 3540 4
原创 Flink intervalJoin 使用与原理分析
点击蓝字关注~~先看一个假设的案例:用户购买商品过程中填写收货地址然后下单,在这个过程中产生两个数据流,一个是订单数据流包含用户id、商品id、订单时间、订单金额、收货id等,另一个是收货信息数据流包含收货id、收货人、收货人联系方式、收货人地址等,系统在处理过程中,先发送订单数据,在之后的1到5秒内会发送收货数据,现在要求实时统计按照不同区域维度的订单金额的top100地区。在这个案例中两个数据...
2019-11-07 00:25:06 8064 6
转载 Flink1.9 你要的全在这里
基于 Flink 1.9 讲解的专栏,涉及入门、概念、原理、实战、性能调优、系统案例的讲解。专栏介绍扫码下面图片二维码可以查看&订阅该专栏本文地址:http://...
2019-11-07 00:25:06 487
原创 Flink DataStream中CoGroup实现原理与三种 join 实现
点击上方蓝字关注~ CoGroupCoGroup 表示联合分组,将两个不同的DataStream联合起来,在相同的窗口内按照相同的key分组处理,先通过一个d...
2019-11-05 01:10:44 3403
原创 Flink自定义metric监控流入量
点击蓝字关注~~flink任务本身提供了各种类型的指标监控,细化到了每一个Operator的流入/流出量、速率、Watermark值等,通常在实际应用中需要对接入数据做格...
2019-11-02 01:15:56 4524
原创 Flink中延时调用设计与实现
点击上方蓝字关注~ 一、背景在电商商品购买过程中有这样一些场景:用户点击下单,此时订单处于待支付状态,如果在2小时之...
2019-10-31 03:11:40 3673
原创 flink维表关联系列之自定义异步查询
点击上方蓝字关注~ 在异步IO查询外部存储时,对于提供异步查询的客户端来说可以直接使用,但是对于没有提供异步查询的客户端应该怎么做呢?我们可以将查询请求丢到一个线程池中,将这个线程池看做是一个异步的客户端来帮助我们完成查询请求。通过线程池方式来帮助我们完成异步请求关键在于线程池的core大小如何设置,如果设置过大,会到导致创建很多个线程,势必会...
2019-10-30 13:17:18 557
转载 hive数据倾斜
在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的
2018-01-10 20:37:05 445
原创 SparkCore杂记二
这篇博客主要讲解Spark中任务shuffle与persistence, 首先来说说shuffle洗牌,学过hadoop的同学应该都了解mapreduce,每一个mapreduce任务都要经过一次shuffle,简单的理解shuffle就是根据key将数据进行重新分布,这个过程会发生文件IO/网络IO,是比较耗性能的一个操作,并且还有可能产生数据倾斜,简单说一下数据倾斜指每个任务中分配的数据不均匀
2017-11-08 20:36:59 278
原创 SparkCore杂记一
接触Spark也有一段时间了,最开始一直都是上网看一些博客,自己搭建个虚拟机倒腾,都是一些零散的学习,回头想想还是有必要系统性的学习、理解一遍,本系列博客将会参照spark 官方文档上来一一讲解,但是也不会仅仅只是翻译(翻译也不全面),其中还会加上一些自己的理解、在项目中的一些所见所闻,希望自己能够慢慢成长起来,如果理解有误还请各位指正。 Spark是基于内存计算的分布式处理系统,相对于
2017-11-08 18:01:01 471
转载 kafka多线程消费及处理和手动提交处理方案设计
kafka与其他消息队列不同的是, kafka的消费者状态由外部( 消费者本身或者类似于Zookeeper之类的外部存储 )进行维护, 所以kafka的消费就更加灵活, 但是也带来了很多的问题, 因为客户端消费超时被判定挂掉而消费者重新分配分区, 导致重复消费, 或者客户端挂掉而导致重复消费等问题.本文内容简介kafka的消费者有很多种不同的用法及模型. * 本文着重探讨0.9版本
2017-10-16 19:13:59 3472
转载 Kafka 0.9 新版本consumer客户端使用介绍
翻译自: https://www.confluent.io/blog/tutorial-getting-started-with-the-new-apache-kafka-0-9-consumer-client/kafka最初时开发时, 所带的producer和consumer client都是Scala所写. 我们逐渐发现这些API具有一些限制. high-level的api支持co
2017-10-16 18:55:39 2622
原创 sparkStreaming+kafka+hbase实战练习一
这个需求是是按照实际工作中的项目改写的一个例子。 业务需求: 1. 实时统计某市银行流水交易总额 2. 实时统计某市银行某地区的流水交易总额 3. 每隔10s统一次每个地区近一年内的交易总额
2017-08-05 14:26:03 10249 15
转载 JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解 - 实例分析
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解 - 实例分析原文 http://josh-persistence.iteye.com/blog/2161848第一部分:工具介绍部分:现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄
2017-07-28 21:33:07 3676
转载 Spark调优之Shuffle调优
shuffle调优调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优。但是也必须提醒大家的是,影响一个Spark作业性能的因素,主要还是代码开发、资源参数以及数据倾斜,shuffle调优只能在整个Spark的性能调优中占
2017-06-13 09:50:43 507
转载 Spark调优之数据倾斜调优
目录(?)[-]前言1数据倾斜调优调优概述数据倾斜发生时的现象数据倾斜发生的原理如何定位导致数据倾斜的代码某个task执行特别慢的情况某个task莫名其妙内存溢出的情况查看导致数据倾斜的key的数据分布情况2数据倾斜的解决方案解决方案一使用Hive ETL预处理数据解决方案二过滤少数导致倾斜的key解决方案三提高shuffle操作的并行度解决方案四两阶段聚合局部聚合全局
2017-06-13 09:48:53 311
转载 Spark调优之资源调优
在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合理,可能会导致没有充分利用集群资源,作业运行会极其缓慢;或者设置的资源过大,队列没有足够的资源来提供,进而导致各种异常。总之,无论是哪
2017-06-13 09:46:02 434
转载 Spark调优之开发调优
目录(?)[-]前言开发调优原则一避免创建重复的RDD原则二尽可能复用同一个RDD原则三对多次使用的RDD进行持久化原则四尽量避免使用shuffle类算子原则五使用map-side预聚合的shuffle操作原则六使用高性能的算子原则七广播大变量原则八使用Kryo优化序列化性能原则九优化数据结构1、前言 在大数据计算领域,
2017-06-13 09:41:02 379
转载 spark 内存管理
从Spark 1.6版本开始,Spark采用Unified Memory Management这样一种新的内存管理模型。Spark中的内存使用分为两部分:执行(execution)与存储(storage)。执行内存主要用于shuffles、joins、sorts和aggregations,存储内存则用于缓存或者跨节点的内部数据传输。在Spark 1.6之前,这两部分内存的分配是静态的,
2017-06-13 09:36:21 484
转载 Spark 中shuffle原理与调优
shuffle调优调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优。但是也必须提醒大家的是,影响一个Spark作业性能的因素,主要还是代码开发、资源参数以及数据倾斜,shuffle调优只能在整个Spark的性能调优中占
2017-06-08 13:56:49 440
转载 Sprak RDD缓存
转载:https://www.iteblog.com/archives/1532.html我们知道,Spark相比Hadoop最大的一个优势就是可以将数据cache到内存,以供后面的计算使用。本文将对这部分的代码进行分析。 我们可以通过rdd.persist()或rdd.cache()来缓存RDD中的数据,cache()其实就是调用persist()实现的。persist()支持
2017-06-05 18:00:32 505
转载 Spark RDD
转载:http://www.infoq.com/cn/articles/spark-core-rdd/与许多专有的大数据处理平台不同,Spark建立在统一抽象的RDD之上,使得它可以以基本一致的方式应对不同的大数据处理场景,包括MapReduce,Streaming,SQL,Machine Learning以及Graph等。这即Matei Zaharia所谓的“设计一个通用的编程抽象(Un
2017-06-05 17:53:23 370
转载 Spark 容错机制
转载:http://www.jianshu.com/p/99ebcc7c92d3 引入一般来说,分布式数据集的容错性有两种方式:数据检查点和记录数据的更新。面向大规模数据分析,数据检查点操作成本很高,需要通过数据中心的网络连接在机器之间复制庞大的数据集,而网络带宽往往比内存带宽低得多,同时还需要消耗更多的存储资源。因此,Spark选择记录更新的方式。但是,
2017-06-05 17:44:57 443
转载 HDFS缓存与DistributedCache
转载:http://dongxicheng.org/mapreduce-nextgen/hadoop-distributedcache-details/ http://www.tuicool.com/articles/zErmAzF HDFS提供了一个高效的缓存加速机制—— Centralized Cache Management ,可以将一些经常被读取的文件(例如
2017-06-05 15:25:38 963
转载 Hadoop yarn任务调度策略介绍
转载: https://www.iteblog.com/archives/1536.html本文将介绍Hadoop YARN提供的三种任务调度策略:FIFO Scheduler,Capacity Scheduler 和 Fair Scheduler。FIFO Scheduler 顾名思义,这就是先进先出(first in, first out)调度策略,所有的applica
2017-06-05 10:16:18 1002
转载 yarn 资源配置
转载: https://www.iteblog.com/archives/1945.html http://www.tuicool.com/articles/Rf6v6j YARN集群的每个slave节点都运行了名为NodeManager的守护进程,而NodeManager进程的一个职责就是监控运行在那个几点上的YARN containers,其中就包括了监控每个容器的内存使用
2017-06-05 10:09:23 1300
转载 Kafka深度解析,众人推荐,精彩好文!
作者: Jason Guo背景介绍Kafka简介Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:以时间复杂度为O(1)的方式提供消息持久化能力,并保证即使对TB级以上数据也能保证常数时间的访问性能高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输支持Kafka Server间的消息分区,及分布式消息消费,同时保证每
2017-02-09 16:46:05 670
转载 Kafka 设计与原理详解
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]一Kafka简介1 背景历史2 Kafka诞生3 Kafka现在二Kafka技术概览1 Kafka的特性2 Kafka一些重要设计思想3 kafka 应用场景4 Kafka架构组件5 Kafka TopicPartition三Kafka 核心组件1 Replication
2017-02-09 16:44:07 3356
转载 hive优化之-控制hive任务中的map数和reduce数
1. 通常情况下,作业会通过input的目录产生一个或者多个map任务。 主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改);2. 举例: a) 假设input目录下有1个文件a,大小为780M,那么hadoop会将该文
2016-08-31 22:40:42 2752
转载 深度分析如何在Hadoop中控制Map的数量
很多文档中描述,Mapper的数量在默认情况下不可直接控制干预,因为Mapper的数量由输入的大小和个数决定。在默认情况下,最终input占据了多少block,就应该启动多少个Mapper。如果输入的文件数量巨大,但是每个文件的size都小于HDFS的blockSize,那么会造成启动的Mapper等于文件的数量(即每个文件都占据了一个block),那么很可能造成启动的Mapper数量超出限制而导
2016-08-31 20:39:27 367
转载 Hive 基础之:分区、桶、Sort Merge Bucket Join
Hive 已是目前业界最为通用、廉价的构建大数据时代数据仓库的解决方案了,虽然也有 Impala 等后起之秀,但目前从功能、稳定性等方面来说,Hive 的地位尚不可撼动。其实这篇博文主要是想聊聊 SMB join 的,Join 是整个 MR/Hive 最为核心的部分之一,是每个 Hadoop/Hive/DW RD 必须掌握的部分,之前也有几篇文章聊到过 MR/Hive 中的 join,其实
2016-08-31 19:59:09 973
转载 Spark Streaming实时计算框架介绍
随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐、用户行为分析等。 Spark Streaming是建立在Spark上的实时计算框架,通过它提供的丰富的API、基于内存的高速执行引擎,用户可以结合流式、批处理和交互试查询应用。本文将详细介绍Spark Streaming实时计算框架的原理与特点、适用场景。
2016-03-25 17:39:24 4529
转载 Spark入门实战系列--4.Spark运行架构
【注】该系列文章以及使用到安装包/测试数据 可以在《倾情大奉送--Spark入门实战系列》获取 1、 Spark运行架构1.1 术语定义lApplication:Spark Application的概念和Hadoop MapReduce中的类似,指的是用户编写的Spark应用程序,包含了一个Driver 功能的代码和分布在集群中多个节点上运行的Executor代码;lDriver:
2016-03-23 17:57:14 543
原创 oracle DBLink的使用
当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。下面讲介绍如何在本地数据库中创建dblink. 创建dblink一般有两种方式,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库:
2016-03-17 15:07:12 641
转载 shell脚本调试方法
一. 前言shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之路。脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,输出调试信息来辅助诊断错误,利用调试工具等。但与其它高级语言相比,shell解释器缺乏相应的调
2016-03-17 14:54:24 4913
原创 redis的主从切换的两种方式
redis的主从(master-slave)就是为了数据冗余备份、保证数据的安全、提高性能,在这里主要讲解一下其主从切换的两种方式,有不对之处,还请各位指教。 首先搭建一个简单的master-slave,在linux下安装编译redis,分别复制两份redis-master、redis-slave,修改redis.conf文件daemonize yes,让其在后台运行,另外修改redis-s
2016-02-04 14:44:03 27241
转载 redis预编译安装、启动
redis是一个强大的NoSQL数据库,相对于memcached,他提供了更丰富的数据类型,有string、hash、list、set、sorted set这几种类型;还支持数据持久化。光string类型,就比memcached功能更强大,提供了获取/设置子串、bit位等更灵活的操作,其他类型是memcached所没有的。redis的开发者相当给力,更新很频繁。 redis的编译安装很简单
2016-02-04 10:24:41 656
Hibernate详解
2014-09-12
Hadoop 2.2运行wordcount报错
2015-12-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人