自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

数据技术控

学习笔记备忘录。。。

  • 博客(173)
  • 资源 (4)
  • 收藏
  • 关注

转载 二叉树Z型遍历

给定一棵二叉树,从顶向下,进行Z字形分层遍历,即:如果本层是从左向右的,下层就是从右向左。public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}import java.util.Deque;import java.util.LinkedList;import java.util.List;pub.

2020-09-01 12:23:15 2416

转载 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回思路:根据前序遍历找到根,根据中序遍历找到左右子树,依次递归。public static TreeNode Tree(List<int> preTree, List<int> midTree) { if

2020-08-28 10:29:59 242

转载 P2P 网络核心技术:Gossip 协议

背景Gossip protocol 也叫 Epidemic Protocol (流行病协议),实际上它还有很多别名,比如:“流言算法”、“疫情传播算法”等。这个协议的作用就像其名字表示的意思一样,非常容易理解,它的方式其实在我们日常生活中也很常见,比如电脑病毒的传播,森林大火,细胞扩散等等。Gossip protocol 最早是在 1987 年发表在 ACM 上的论文 《Epidemi...

2020-03-21 17:35:45 481

转载 Apache Flink - 架构和拓扑

Flink结构: flink cli 解析本地环境配置,启动ApplicationMaster 在ApplicationMaster中启动JobManager 在ApplicationMaster中启动YarnFlinkResourceManager YarnFlinkResourceManager给JobManager发送注册信息 YarnFlinkReso...

2019-06-09 16:43:41 332

转载 Apache Flink:特性、概念、组件栈、架构及原理分析

Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink Runtime),提供支持流处理和批处理两种类型应用的功能。现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型,因为他们它们所提供的SLA是完全不相同的:流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理,所以在实现的时候通常...

2019-06-09 16:01:25 228

转载 链表常见算法

链表转置public Node reverseList(Node head){ //头节点的上一个节点为 null Node pre = null; Node next = null; while(head != null){ next = head.next; head.next = pre; pre = head...

2019-04-22 11:35:49 654

转载 判断两个二叉树是否完全相等

递归实现static public bool IsSameTree(TreeNode root1, TreeNode root2) { if (root1 == null && root2 == null) { return true; } if ((root1 == null && root2 != null) || (root1 != null ...

2019-04-17 10:51:17 4450 1

原创 hive transform列转行

hive -e " add file split_sjku_domain.py;select transform(company_name,regexp_replace(corporate_website,'www.','') ) using 'split_sjku_domain.py' as (company_name,domain) from T limit 20"...

2019-03-01 16:04:04 397

转载 Flink Checkpoint

在学习flink的时候看了本书《Stream Processing with Apache Flink》。里面对Flink checkpoint的原理讲得挺清楚的,后面内部分享时也参考了这个说法,所以这里按照我的理解描述一下。首先,flink的checkpoint并不是将Subtask或者UDF对象进行序列化,然后保存。他们确实实现了Serializable接口,但是是为了要在Client,J...

2019-02-19 17:20:04 891

转载 Quartz集群原理及配置应用

1、Quartz任务调度的基本实现原理  Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现。作为一个优秀的开源调度框架,Quartz具有以下特点:    (1)强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求;    (2)灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种存储方式;    (3...

2019-02-01 10:01:11 410

转载 探索HyperLogLog算法

引言HyperLogLog算法经常在数据库中被用来统计某一字段的Distinct Value(下文简称DV),比如Redis的HyperLogLog结构,出于好奇探索了一下这个算法的原理,无奈中文资料很少,只能直接去阅读论文以及一些英文资料,总结成此文。介绍HyperLogLog算法来源于论文《HyperLogLog the analysis of a near-optimal car...

2019-01-25 11:55:06 498

转载 elasticsearch 倒排索引原理

Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤。特别是它对多条件的过滤支持非常好,比如年龄在18和30之间,性别为女性这样的组合查询。倒排索引很多地方都有介绍,但是其比关系型数据库的b-tree索引快在哪里?到底为什么快呢?笼统的来说,b-tree索引是为写入优化的索引结构。当我们不需要支持快速的更新的时候,可以用预先排序等方式换取更小的存储空间,更快的...

2019-01-24 19:23:50 4573

转载 SkipList跳表基本原理

为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。用跳表吧,跳表是一种随机化的数据结构,目前开源软件 Redis 和 LevelDB...

2019-01-24 18:41:40 146

转载 数据仓库事实表

事实表分成三种:事务事实表、周期快照事实表、累计快照事实表事务事实表官方定义是:发生在某个时间点上的一个事件。比如以订单为例:下单是一个事实、付款是一个事实、退款是一个事实,所有事实的累计就是事务事实表周期快照事实表如果需要对某一天或者某个月的数据进行分析,那么可以使用周期快照事实表,比如:以天举例,财务报表一般都是周期快照事实表,它的最细粒度主键就是:日期+订单累计快照事实表...

2019-01-10 19:07:18 727

转载 Flink 原理与实现:内存管理

如今,大数据领域的开源框架(Hadoop,Spark,Storm)都使用的 JVM,当然也包括 Flink。基于 JVM 的数据分析引擎都需要面对将大量数据存到内存中,这就不得不面对 JVM 存在的几个问题:Java 对象存储密度低。一个只包含 boolean 属性的对象占用了16个字节内存:对象头占了8个,boolean 属性占了1个,对齐填充占了7个。而实际上只需要一个bit(1/8字节)...

2018-12-15 21:11:33 342

转载 flink浅读

apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink Runtime),提供支持流处理和批处理两种类型应用的功能。现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型,因为他们它们所提供的SLA是完全不相同的:流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理,所以在实现的时候通常...

2018-12-15 21:02:47 270

转载 Spark为何使用Netty通信框架替代Akka

  转:http://www.aboutyun.com/thread-21115-1-1.html 1. spark 如何在1.6.0之后使用Netty替代了Akka?2. Spark Network Common怎么实现?3. BlockTransfer 与 Shuffle 之间的联系?4. Akka 实现原理是什么?解决方案: 一直以来,基...

2018-12-15 20:36:40 493

转载 YARN中FIFO、Capacity以及Fari调度器的详细介绍

(1)FIFO Scheduler将所有的Applications放到队列中,先按照作业的优先级高低、再按照到达时间的先后,为每个app分配资源。如果第一个app需要的资源被满足了,如果还剩下了资源并且满足第二个app需要的资源,那么就为第二个app分配资源,and so on。优点:简单,不需要配置。缺点:不适合共享集群。如果有大的app需要很多资源,那么其他app可能会一直等待。...

2018-12-15 20:22:44 573

原创 数据仓库主题域

主题域通常是联系较为紧密的数据主题的集合。比如销售分析,进销存分析都是主题,可以根据业务的关注点,将这些数据主题划分到不同的主题域。主题域包含了某方面决策者关注的事物。一个主题域通常会覆盖多个业务部门,例如产品主题域涉及到销售、财务、物流、采购等部门。DW的设计方法一般采用面向主题的方法来设计。根据业务的特点,划分为若干个主题域,1、比如一个靠销售广告位置的门户网站主题域有:广告域,客户域...

2018-11-28 14:54:17 9744

转载 数据仓库中的几种数据模型

数据仓库中常见的模型有:范式建模,雪花模型,星型建模,事实星座模型.星型模型星型模型是数据集市维度建模中推荐的建模方法。星型模型是以事实表为中心,所有的维度表直接连接在事实表上,像星星一样。星型模型的特点是数据组织直观,执行效率高。因为在数据集市的建设过程中,数据经过了预处理,比如按照维度进行了汇总,排序等等,数据量减少,执行的效率就比较高。 雪花模型雪花模型也是维...

2018-11-28 09:47:45 1654

转载 业务建模和概念模型设计

前言上一篇在数据仓库在技术架构设计和产品选择方面进行了一些总结。从这一篇将开始数据路径上的学习和思考吧。数据仓库作为一种产品,在不同的公司或者部门设计出来是不一样的。但是设计的思想是相通的。按照层次关系划分,数据路径上包括业务建模,概念模型设计,逻辑模型设计和物理模型设计。业务建模是针对公司或者部门级的业务进行全方面的梳理和分解。 概念建模是对业务模型进行抽象出来实体以及实体与实体之...

2018-11-28 09:36:56 3321

转载 范式建模

上篇讲述了一些抽象的概念模型和逻辑模型设计的东西,接下来就该讲述如何来一步一步的利用Inmon和Kimball数据仓库的理论来建设数据仓库的模型,主要分几块吧,一个是范式建模,然后是维度建模(分几篇总结),最后是因地制宜,按照自己的平台来考虑如何综合的考虑Inmon和Kimball数据仓库的理论的应用。Inmon最初的建模理论是通过构建一个符合三范式的集中式的数据中心DW层,此层次的表一般不对...

2018-11-28 09:35:21 4058

转载 数据仓库3NF基础理论和实例

一、引言  最近在梳理大数据模式下的数据仓库数据模型,花了点时间,系统的回顾一下传统数据仓库数据模型设计的理论,作为笔记分享给大家,很多资料来自互联网和读过的数据仓库理论和实践相关的熟悉,无剽窃之心,共勉吧。二、3NF(1)1NF-无重复的列  数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。  如果出现重复的...

2018-11-28 09:33:55 1213

转载 flink的内存管理

在大数据面前,JVM的内存结构和GC机制往往会成为掣肘1. 对象开销:在HotSpot中,每个对象占用的内存空间必须是8的倍数。这就导致每个对象占据的内存空间包含三部分:头信息(header)、类的field所占空间、对齐需要的空间(padding,由于前两个大小不够8导致),所以只有一个bool值的对象会占据16个字节,其中头占8字节,bool本身占用一个字节、padding占7个字节2...

2018-11-23 10:52:08 3757

转载 Kafka文件存储机制那些事

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

2018-11-22 10:58:21 124

转载 大量数据去重:Bitmap和布隆过滤器(Bloom Filter)

5TB的硬盘上放满了数据,请写一个算法将这些数据进行排重。如果这些数据是一些32bit大小的数据该如何解决?如果是64bit的呢?在面试时遇到的问题,问题的解决方案十分典型,但对于海量数据处理接触少的同学可能一时也想不到什么好方案。介绍两个算法,对于空间的利用到达了一种极致,那就是Bitmap和布隆过滤器(Bloom Filter)。Bitmap算法在网上并没有找到Bitmap算法的中文...

2018-11-20 15:42:25 547

原创 quartz missed their scheduled fire-time

使用quartz调度出现报错信息:[ QuartzScheduler_......_MisfireHandler:4835333702 ] - [ INFO ]  Handling 2 trigger(s) that missed their scheduled fire-time. 经过排查确定为很多调度任务未执行完成,堵塞住 。解决办法:适当提高org.quartz.threadP...

2018-10-29 10:29:45 6141

转载 RAC原理分析

数据库基本原理  数据库系统和其他数据管理很重要的一个区别就是 允许并发访问  最大挑战是 数据不一致  如何保证并发和数据一致是数据库系统的核心 并发访问和数据一致性:   数据不一致的情况    1 脏读    2 不可重复性    3 幻影读    4 数据一致性  事务和隔离级别   四种数据一致性级别:隔离级别    read uncommited:不希望“写”...

2018-09-11 10:52:41 2339

转载 spark streaming中的广播变量应用

1. 广播变量我们知道spark 的广播变量允许缓存一个只读的变量在每台机器上面,而不是每个任务保存一份拷贝。常见于spark在一些全局统计的场景中应用。通过广播变量,能够以一种更有效率的方式将一个大数据量输入集合的副本分配给每个节点。Spark也尝试着利用有效的广播算法去分配广播变量,以减少通信的成本。 一个广播变量可以通过调用SparkContext.broadcast(v)方法从一个初...

2018-09-03 11:06:51 3115 2

转载 flink背压

摘要: 流处理系统需要能优雅地处理反压(backpressure)问题。反压通常产生于这样的场景:短时负载高峰导致系统接收数据的速率远高于它处理数据的速率。许多日常问题都会导致反压,例如,垃圾回收停顿可能会导致流入的数据快速堆积,或者遇到大促或秒杀活动导致流量陡增。反压如果不能得到正确的处理,可能会导致资源耗尽甚至系统崩溃。 目前主流的流处理系统 Storm/JStorm/Spark Stream...

2018-08-29 19:28:52 4417

原创 Spark/Hive采样

Hive数据块取样hive数据块采样SELECT * FROM T TABLESAMPLE (50 PERCENT);SELECT * FROM T TABLESAMPLE (30M);分桶表取样SELECT *FROM T TABLESAMPLE (BUCKET 1 OUT OF 10 ON rand());SELECT * FROM T TABLESAMPLE(BUCK...

2018-08-28 11:18:42 1304

原创 spark优化总结

1、注意join的使用,如果有较小的表可考虑使用广播的方式实现mapjoin,类似MR/HIVE。广播变量是一个executor一份副本2、注意数据倾斜的问题,这个问题在分布式shuffle操作时都有可能出现,常见几个场景:join操作空值量很多时使用随机值 cout(distinct)操作,拆分成group by 再count 对数据采样抽取出倾斜的key,单独处理,最后做union...

2018-08-27 12:08:23 572

转载 用paxos实现多副本日志系统--multi paxos部分

 接下来,我们来讲解multi-paxos。大家应该还记得我们开始时提到的multi-paxos的目标是实现多副本log系统。要实现多副本log系统的一种方法就是,使用一组彼此独立的basic paxos实例,每个独立的basic paxos实例用来决定一系列log当中的一条。为了做到这一点,我们需要给Prepare和Accept两个rpc增加一个参数,index,用来表示这个basic ...

2018-08-19 01:22:59 795

转载 用paxos实现多副本日志系统--basic paxos部分

 为了理解paxos协议,开始时看了好些资料,但始终没有理解透,直到我看了这个视频:http://v.youku.com/v_show/id_XNjgyODc3ODU2.html。看懂之后,我就想按照自己的理解重新写一遍paxos的说明。结果写到一半,我发现越讲越不明白,反而不如之前我看到但没懂的资料了。这时我才意识到,或许这个斯坦福教授的讲解思路已经是最好的了,至少我跟着这个思路,把paxo...

2018-08-19 01:20:53 726 1

转载 Flink + Kafka 0.11端到端精确一次处理语义的实现

本文是翻译作品,作者是Piotr Nowojski和Michael Winters。前者是该方案的实现者。原文地址是https://data-artisans.com/blog/end-to-end-exactly-once-processing-apache-flink-apache-kafka2017年12月Apache Flink社区发布了1.4版本。该版本正式引入了一个里程碑式的功...

2018-08-10 18:24:59 1845

转载 Apache Flink数据流的Fault Tolerance机制

简介Apache Flink提供了一个失败恢复机制来使得数据流应用可以持续得恢复状态。这个机制可以保证即使线上环境的失败,程序的状态也将能保证数据流达到exactly once的一致性。注意这里也可以选择降级到保证at least once的一致性级别。失败恢复机制持续地构建分布式流式数据的快照。对于那些只有少量状态的流处理应用,这些快照都是非常轻量级的并且可以以非常频繁的频率来构建快照而...

2018-08-09 10:34:39 246

转载 parquet学习总结

深入分析Parquet列式存储格式Parquet是面向分析型业务的列式存储格式,由Twitter和Cloudera合作开发,2015年5月从Apache的孵化器里毕业成为Apache顶级项目,最新的版本是1.8.0。列式存储列式存储和行式存储相比有哪些优势呢?1.可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量。2.压缩编码可以降低磁盘存储空间。由于同一列的数据类型是...

2018-08-07 12:02:43 4496

转载 flink和spark Streaming中的Back Pressure

Spark Streaming的back pressure在讲flink的back pressure之前,我们先讲讲Spark Streaming的back pressure。Spark Streaming的back pressure出现的原因呢,我想大家应该都知道,是为了应对短期数据尖峰。Spark Streaming的back pressure是从spark 1.5以后引入的,在之前呢,只...

2018-07-24 18:58:14 395

转载 java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁

理解锁的基础知识如果想要透彻的理解java锁的来龙去脉,需要先了解以下基础知识。基础知识之一:锁的类型锁从宏观上分类,分为悲观锁与乐观锁。乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,...

2018-07-18 16:58:28 307

转载 spark-Streaming direct和receiver方式读取的区别

区别:Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式,可以从代码中简单理解成Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据了。一、基于Receiver的方式这种方式使用Receiver来获取数据。Receiver是使用Kafka的高层次Consumer API来实...

2018-07-15 19:24:41 2468

oozie使用整理

此文档主要对oozie的使用方法,基本内容做了一次介绍。

2018-09-21

spark优化实践小记

此文档主要对日常使用spark过程中可能遇到的一些性能优化问题做了一次整理总结

2018-09-21

Percolator分布式事务

Percolator分布式事务介绍,基于BigTable的分布式事务实现

2018-09-21

处理后的ip库

ipku文件为对纯真ip库进行国家,省,市,区县拆分,学校网吧不规范数据处理后的可用文件 ipdata为原始纯真ip库 xuexiao.csv为手工整理的学校网吧对应的地区

2015-11-19

空空如也

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

TA关注的人

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