自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (4)
  • 收藏
  • 关注

原创 cannal源码分析

@Override public void deserialize(byte[] message, Collector<RowData> out) throws IOException { try { //使用json反序列化器将message反序列化成RowData RowData row = jsonDeserializer.deserialize(message); //获取type字段,用于下面的判断 String type = row.get

2021-05-18 17:46:24 221

原创 大数据之phoenix

Phoenix 定义Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。Phoenix 数据存储Phoenix 将 HBase 的数据模型映射到关系型世界Phoenix 表映射默认情况下, 直接在 HBase 中创建的表通过 Phoenix 是查

2021-04-21 22:01:25 1307

原创 大数据之Phoenix

Phoenix 定义Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。Phoenix 数据存储Phoenix 将 HBase 的数据模型映射到关系型世界Phoenix 表映射默认情况下, 直接在 HBase 中创建的表通过 Phoenix 是查

2021-04-21 21:59:46 668

原创 Flink on yarn两种模式

Flink提供了两种在yarn上运行的模式,分别为Session-Cluster和Per-Job-Cluster模式。Session-cluster 模式:Session-Cluster模式需要先启动集群,然后再提交作业,接着会向yarn申请一块空间后,资源永远保持不变。如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,下个作业才会正常提交。所有作业共享Dispatcher和ResourceManager;共享资源;适合规模小执行时间短的作业。在yarn中

2021-04-18 13:13:12 188

原创 数据分析之关键指标

电子商务的的分析指标内容指标-转化率当你在不同的地方测试新闻订阅、下载链接或注册会员,你可以使用不同的链接的名称、订阅的方式、广告的放置、付费搜索链接、付费广告(PPC)等等,看看那种方式是能够保持转换率在上升?如何增强来访者和网站内容的相关性?如果这个值上升,说明相关性增强了,反之,则是减弱。计算公式:进行了相应的动作的访问量/总访问量指标意义:衡量网站内容对访问者的吸引程度以及网站的宣传效果内容指标-回访者比率基于访问时长的设定和产生报告的时间段,这个指标可能会有很大的不同。绝大多数的网.

2021-04-17 18:43:18 580

原创 数据分析常用方法

常用的数据分析方法对比分析法分组分析法平均分析法交叉分析法杜邦分析法漏斗图分析法数据分析作用与对应的分析方法数据分析作用基本方法数据分析方法现状分析细分对比分析、平均分析、综合评价分析原因分析细分分组分析、结构分析、交叉分析、杜邦分析、漏斗图分析、矩阵关联分析、聚类分析预测分析预测回归分析、时间序列、决策树、神经网络对比分析法分组分析法把总体中具有不同性质的对象区分开,把性质相同的对象合并在一起便于对比。分组分析一般都与对比分析结合使

2021-04-17 18:15:55 208

原创 数据分析方法论

数据分析方法论概括常用的数据分析方法论PEST分析法5W2H分析法逻辑树分析法4P营销理论用户行为理论常用的数据分析方法论方法论说明使用范围PEST政治(Political)、经济(Economic)、技术(Technological)和社会(Social)行业分析,统称外部环境4P产品(product)、价格(price)、渠道(place)、促销(promotion)公司整体经营情况分析逻辑树将问题分层罗列,逐步向下展开业务问题专题分析

2021-04-17 17:04:57 74

原创 hive的explain命令

显示抽象语法树EXPLAIN SELECT * from dby_pro.test1;explain该命令可以返回hive的查询执行计划。不需要执行查询。查询计划包含三个部分,1.ASTAbstract syntax tree (AST).抽象语法树。通过ANTLR类库生成。2.Stage dependencies:阶段依赖。用来执行查询的依赖列表。3.Stage plans阶段计划。实例在 hive cli 中输入以下命令(hive 2.3.7):explain select

2021-04-16 21:48:28 323

原创 hive语句的书写顺序和执行顺序

1、hive语句的书写顺序:(从前往后)(1)select(2)from(3)join on(4) where(5)group by(6)having(7)distribute by/cluster by(8) sort by(9) order by(10) limit(11) union(去重不排序)/union all(不去重不排序)2、hive语句的执行顺序:(1)from(2)on(3)join(4)where(5)group by(6)having(7)sel

2021-04-15 21:31:20 1289

原创 数据倾斜(二)之解决思路

概述数据倾斜的产生是有一些讨论的,解决它们也是有一些讨论的,本章会先给出几个解决数据倾斜的思路,然后对Hadoop和Spark分别给出一些解决数据倾斜的方案。注意: 很多数据倾斜的问题,都可以用和平台无关的方式解决,比如更好的数据预处理, 异常值的过滤等,因此笔者认为,解决数据倾斜的重点在于对数据设计和业务的理解,这两个搞清楚了,数据倾斜就解决了大部分了。解决思路解决数据倾斜有这几个思路:1)业务逻辑我们从业务逻辑的层面上来优化数据倾斜,比如上面的两个城市做推广活动导致那两个城市数据量激增的例子

2021-04-14 21:27:47 116

原创 数据倾斜(一)之产生原因

数据倾斜产生原因概述我们以Spark和Hive的使用场景为例。他们在做数据运算的时候会涉及到,count distinct、group by、join on等操作,这些都会触发Shuffle动作。一旦触发Shuffle,所有相同key的值就会被拉到一个或几个Reducer节点上,容易发生单点计算问题,导致数据倾斜。一般来说,数据倾斜原因有以下几方面:key分布不均匀业务数据本身的特性建表时考虑不周某些SQL语句本身就有数据倾斜Shuffle与数据倾斜Hadoop和Spark在Shuffle

2021-04-13 21:46:30 390

原创 基于大数据分析技术在会计方面的研究

在现如今大数据时代的背景下,有越来越多的企业正经受着数据网络的考验,其中很突出的就是管理會计,作为企业财务中一个重要的组成部分,是持续为企业整合和加工财务资料的职务,管理会计正为企业发展提供强有力的中坚力量。而同时,网络数据流量的飞速发展也使管理会计因此受到不小的冲击,面临时代发展所不能躲避的机遇与挑战。本文探讨如何在大数据时代抓住机遇,解决现阶段管理会计与数据流量的冲突问题,让企业在网络数据时代下能够稳步发展,提高企业运营管理效率。

2021-04-11 21:03:59 5297

原创 Spark的transformation算子和action算子总结

Spark的transformation算子1)单ValuemapmapPartitionsmapPartitionsWithIndexflatMapglomgroupByfiltersampledistinctcoalescerepartitionsortBypipe2)双vlaueintersectionunionsubtractzip3)Key-ValuepartitionByreduceByKeygroupByKeyaggregateByKeyfo

2021-04-11 00:07:57 246

原创 java中垃圾收集的方法

1)引用计数法 应用于:微软的COM/ActionScrip3/Python等如果对象没有被引用,就会被回收,缺点:需要维护一个引用计算器2)复制算法 年轻代中使用的是Minor GC,这种GC算法采用的是复制算法(Copying)效率高,缺点:需要内存容量大,比较耗内存使用在占空间比较小、刷新次数多的新生区3)标记清除 老年代一般是由标记清除或者是标记清除与标记整理的混合实现效率比较低,会差生碎片。4)标记压缩 老年代一般是由标记清除或者是标记清除与标记整理的混合实现效率低速度

2021-04-09 21:46:12 66

原创 Java内存分配与回收策略

内存分配:栈区:栈分为java虚拟机栈和本地方法栈堆区:堆被所有线程共享区域,在虚拟机启动时创建,唯一目的存放对象实例。堆区是gc的主要区域,通常情况下分为两个区块年轻代和年老代。更细一点年轻代又分为Eden区,主要放新创建对象,From survivor 和 To survivor 保存gc后幸存下的对象,默认情况下各自占比 8:1:1。方法区:被所有线程共享区域,用于存放已被虚拟机加载的类信息,常量,静态变量等数据。被Java虚拟机描述为堆的一个逻辑部分。习惯是也叫它永久代(permanment

2021-04-09 21:44:22 92

原创 HashMap底层结构

hashMap的底层结构在jdk1.7中由数组+链表实现,在jdk1.8中由数组+链表+红黑树实现,以数组+链表的结构为例。JDK1.8之前Put方法:JDK1.8之后Put方法:

2021-04-07 21:43:18 66

原创 数据湖和数据仓库区别

数据湖(Data Lake)是一个存储企业的各种各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。数据湖是以其自然格式存储的数据的系统或存储库,通常是对象blob或文件。数据湖通常是企业所有数据的单一存储,包括源系统数据的原始副本,以及用于报告、可视化、分析和机器学习等任务的转换数据。数据湖可以包括来自关系数据库(行和列)的结构化数据,半结构化数据(CSV,日志,XML,JSON),非结构化数据(电子邮件,文档,PDF)和二进制数据(图像,音频,视频)。来源:维基百科。目前,Hadoop是最常

2021-04-07 21:40:58 468

原创 数据治理

包括:数据质量管理、元数据管理、权限管理(ranger sentry)。CDH cloudmanager-》sentry; HDP ambari=>ranger数据治理是一个复杂的系统工程,涉及到企业和单位多个领域,既要做好顶层设计,又要解决好统一标准、统一流程、统一管理体系等问题,同时也要解决好数据采集、数据清洗、数据对接和应用集成等相关问题。数据治理实施要点主要包含数据规划、制定数据标准、整理数据、搭建数据管理工具、构建运维体系及推广贯标六大部分,其中数据规划是纲领、制定数据标准是基础、整

2021-04-06 23:17:25 151

原创 Flink与Spark Streaming区别

Flink 是标准的实时处理引擎,基于事件驱动。而 Spark Streaming 是微批(Micro-Batch)的模型。主要包括如下区别:架构模型Spark Streaming 在运行时的主要角色包括:Master、Worker、Driver、Executor,Flink 在运行时主要包含:Jobmanager、Taskmanager和Slot。任务调度Spark Streaming 连续不断的生成微小的数据批次,构建有向无环图DAG,Spark Streaming 会依次创建 DStreamG

2021-04-05 21:27:58 670 1

原创 spring boot自动配置原理

自动配置原理:SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration@EnableAutoConfiguration 作用:利用EnableAutoConfigurationImportSelector给容器中导入一些组件可以查看selectImports()方法的内容List configurations = getCandidateConfigurations(annotationMetadata, attributes);获取候

2021-04-03 21:57:53 75

原创 SpringBoot启动器

父项目<parent><groupId>org.springframework.boot</groupId><artifactId>spring‐boot‐starter‐parent</artifactId><version>1.5.9.RELEASE</version></parent>他的父项目是<parent><groupId>org.springframework

2021-04-03 21:43:20 72

原创 String buffer和String build区别

String buffer和String build区别1、StringBuffer与StringBuilder中的方法和功能完全是等价的。2、只是StringBuffer中的方法大都采用了 synchronized 关键字进行修饰,因此是线程安全的,而StringBuilder没有这个修饰,可以被认为是线程不安全的。3、在单线程程序下,StringBuilder效率更快,因为它不需要加锁,不具备多线程安全而StringBuffer则每次都需要判断锁,效率相对更低Final、Finally、Fina

2021-04-02 20:24:58 470

原创 JUC

Synchronized与Lock的区别1)Synchronized能实现的功能Lock都可以实现,而且Lock比Synchronized更好用,更灵活。2)Synchronized可以自动上锁和解锁;Lock需要手动上锁和解锁Runnable和Callable的区别1)Runnable接口中的方法没有返回值;Callable接口中的方法有返回值2)Runnable接口中的方法没有抛出异常;Callable接口中的方法抛出了异常3)Runnable接口中的落地方法是call方法;Callable

2021-04-02 20:21:48 71

原创 Redis总结

缓存穿透、缓存雪崩、缓存击穿1)缓存穿透是指查询一个一定不存在的数据。由于缓存命不中时会去查询数据库,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。解决方案:① 是将空对象也缓存起来,并给它设置一个很短的过期时间,最长不超过5分钟② 采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被这个bitmap拦截掉,从而避免了对底层存储系统的查询压力2)如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都落在数

2021-04-02 20:16:22 55

原创 HashMap和HashTable区别

线程安全性不同HashMap是线程不安全的,HashTable是线程安全的,其中的方法是Synchronize的,在多线程并发的情况下,可以直接使用HashTabl,但是使用HashMap时必须自己增加同步处理。是否提供contains方法HashMap只有containsValue和containsKey方法;HashTable有contains、containsKey和containsValue三个方法,其中contains和containsValue方法功能相同。key和value是否允许nu

2021-04-02 20:12:24 91 1

原创 Java自带的线程池

newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。这种类型的线程池特点是:工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可灵活的往线程池中添加线程。如果长时间没有往线程池中提交任务,即如果工作线程空闲了指定的时间(默认为1分钟),则该工作线程将自动终止。终止后,如果你又提交了新的任务,则线程池重新创建一个工作线程。在使用CachedThreadPool时,一定要注

2021-04-02 20:11:09 65

原创 算法之归并排序

核心思想:不断的将大的数组分成两个小数组,直到不能拆分为止,即形成了单个值。此时使用合并的排序思想对已经有序的数组进行合并,合并为一个大的数据,不断重复此过程,直到最终所有数据合并到一个数组为止。代码实现:/** * 快排 * 时间复杂度:O(nlogn) * 空间复杂度:O(n) */def merge(left: List[Int], right: List[Int]): List[Int] = (left, right) match { case (Nil, _) =&gt.

2021-04-01 21:59:44 49

原创 算法之快速排序

/** * 快排 * 时间复杂度:平均时间复杂度为O(nlogn) * 空间复杂度:O(logn),因为递归栈空间的使用问题 */def quickSort(list: List[Int]): List[Int] = list match { case Nil => Nil case List() => List() case head :: tail => val (left, right) = tail.partition(_ < .

2021-04-01 21:53:07 49

原创 算法之二分查找

实现代码:/** * 二分查找 时间复杂度O(log2n);空间复杂度O(1) */ def binarySearch(arr:Array[Int],left:Int,right:Int,findVal:Int): Int={ if(left>right){//递归退出条件,找不到,返回-1 -1 } val midIndex = (left+right)/2 if (findVal < arr(midIndex)){//向左递归查找 binary.

2021-03-31 22:00:20 42

原创 算法之冒泡排序

冒泡排序:依次比较相邻的数据,将小数据放在前,大数据放在后;即第一趟先比较第1个和第2个数,大数在后,小数在前,再比较第2个数与第3个数,大数在后,小数在前,以此类推则将最大的数"滚动"到最后一个位置;第二趟则将次大的数滚动到倒数第二个位置…第n-1(n为无序数据的个数)趟即能完成排序。/** * 冒泡排序 时间复杂度 O(n^2) 空间复杂度O(1) */public class BubbleSort { public static void bubbleSort(int[] data)

2021-03-31 21:43:52 54

原创 hdfs总结

Hadoop常用端口号hadoop2.xHadoop3.x访问HDFS端口50070访问MR执行情况端口 80888088历史服务器 1988819888客户端访问集群端口9000Hadoop配置文件Hadoop2.x core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml slavesHadoop3.x core-site.xml、hdfs-site.xml、mapred-site.x

2021-03-30 22:23:22 72

原创 大数据消息队列之kafka

kafka基础架构Kafka工作流程及文件存储机制kafka文件存储kafka producer发送消息流程相关参数:batch.size:只有数据积累到batch.size之后,sender才会发送数据。linger.ms:如果数据迟迟未达到batch.size,sender等待linger.time之后就会发送数据。数据漏消费和重复消费分析无论是同步提交还是异步提交offset,都有可能会造成数据的漏消费或者重复消费。先提交offset后消费,有可能造成数据的漏消费;而先消费后提

2021-03-30 22:09:55 392

原创 spark streaming总结

Spark Streaming控制每秒消费数据的速度通过spark.streaming.kafka.maxRatePerPartition参数来设置Spark Streaming从kafka分区每秒拉取的条数Spark Streaming的状态操作在Spark Streaming中存在两种状态操作UpdateStateByKeyWindows操作使用有状态的transformation,需要开启Checkpointspark streaming 的容错机制它将足够多的信息checkpoint

2021-03-29 21:28:15 151

原创 sqoop总结

Sqoop参数/opt/module/sqoop/bin/sqoop import \--connect \--username \--password \--target-dir \--delete-target-dir \--num-mappers \--fields-terminated-by \--query "$2" ' and $CONDITIONS;'Sqoop导入导出Null存储一致性问题Hive中的Null在底层是以“\N”来存储,而MySQL中的Null

2021-03-29 20:42:01 93

原创 Linux&Shell相关总结

Linux常用命令序号命令命令解释1top查看内存2df -h查看磁盘存储情况3iotop查看磁盘IO读写(yum install iotop安装)4iotop -o直接查看比较高的磁盘读写程序5netstat -tunlpgrep 端口号 查看端口占用情况6uptime查看报告系统运行时长及平均负载7ps aux查看进程Shell常用工具awk、sed、cut、sort...

2021-03-28 23:07:52 68

原创 大数据数据湖之hudi

hudi介绍Hudi将带来流式处理大数据, 提供新数据集,同时比传统批处理效率高一个数据量级。特性(1)快速upsert,可插入索引(2)以原子方式操作数据并具有回滚功能(3)写入器之间的快照隔离(4)savepoint用户数据恢复的保存点(5)管理文件大小,使用统计数据布局(6)数据行的异步压缩和柱状数据(7)时间轴数据跟踪血统通过Spark-shell快速开始Spark-shell启动spark-shell启动,需要指定spark-avro模块,因为默认环境里没有,spark-

2021-03-28 22:15:48 1501

原创 hbase二级索引sql引擎之Phoenix

Phoenix 定义Phoenix 构建在 HBase 之上的开源 SQL 层. 能够让我们使用标准的 JDBC API 去建表, 插入数据和查询 HBase 中的数据, 从而可以避免使用 HBase 的客户端 API.在我们的应用和 HBase 之间添加了 Phoenix, 并不会降低性能, 而且我们也少写了很多代码.Phoenix 特点将 SQl 查询编译为 HBase 扫描确定扫描 Rowkey 的最佳开始和结束位置扫描并行执行将 where 子句推送到服务器端的过滤器通过协处理器进

2021-03-27 23:08:22 104

原创 同步数据CDC之debezium

Debezium架构Debezium是一个捕获数据更改(CDC)平台,并且利用Kafka和Kafka Connect实现了自己的持久性、可靠性和容错性。每一个部署在Kafka Connect分布式的、可扩展的、容错性的服务中的connector监控一个上游数据库服务器,捕获所有的数据库更改,然后记录到一个或者多个Kafka topic(通常一个数据库表对应一个kafka topic)。Kafka确保所有这些数据更改事件都能够多副本并且总体上有序(Kafka只能保证一个topic的单个分区内有序),这样,更

2021-03-27 10:30:55 385

原创 实时计算之Flink CDC

什么是CDCCDC是Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。CDC的种类CDC主要分为基于查询和基于Binlog两种方式,我们主要了解一下这两种之间的区别:基于查询的CDC基于Binlog的CDC开源产品Sqoop、Kafka JDBC SourceCanal、Maxwell、Debezium

2021-03-26 22:29:23 1190 1

原创 数据仓库基本概念

主题(Subject)主题就是指我们所要分析的具体方面。例如:某年某月某地区某机型某款App的安装情况。主题有两个元素:一是各个分析角度(维度),如时间位置;二是要分析的具体量度,该量度一般通过数值体现,如App安装量。维(Dimension)维是用于从不同角度描述事物特征的,一般维都会有多层(Level:级别),每个Level都会包含一些共有的或特有的属性(Attribute),可以用下图来展示下维的结构和组成:以时间维为例,时间维一般会包含年、季、月、日这几个Level,每个Level一般都会有

2021-03-25 21:24:40 1191

Quick Audience 产品白皮书.pdf

Quick Audience 产品白皮书.pdf

2021-03-29

Quick Stock产品白皮书.pdf

Quick Stock产品白皮书

2021-03-29

Dataphin产品白皮书.pdf

Dataphin产品白皮书

2021-03-29

机器学习术语表GoogleDevelopers.pdf

谷歌官方出的机器学习术语表

2021-03-03

空空如也

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

TA关注的人

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