大数据
文章平均质量分 55
lianchaozhao
这个作者很懒,什么都没留下…
展开
-
hive explode 使用
hive explode 使用和行转列的两种写法原创 2022-02-23 17:21:22 · 899 阅读 · 0 评论 -
hive 总结排序相关
order by会对输入做全局排序,因此只有一个Reducer(多个Reducer无法保证全局有序),然而只有一个Reducer,会导致当输入规模较大时,消耗较长的计算时间。关于order by的详细介绍请参考这篇文章原创 2021-08-10 16:47:31 · 104 阅读 · 0 评论 -
doris引擎介绍
背景:在目前的MPPOLAP系统众多,比如Greenplum、Apache Impala、Presto、Doris、ClickHouse、Druid、TiDB等等,druid 虽然在不设置roll up 的情况下支持明细数据。但数据join 和性能都比较差。clickhouse 虽然在支持明细和汇总数据查询,但在集群扩展和数据join 的方面也比较弱。基于上面几个方面Doris 在兼容roll_up 的形式,也兼容了明细数据的join 查询。在数据应用方面有很大市场。介绍:Doris是基于MPP架构的原创 2021-07-05 20:41:59 · 2386 阅读 · 1 评论 -
HIVE相关方法优化之聚合函数GROUP SETS
1、背景在数据开发统计相关计算过程中,group by 和group sets 是我们经常用的方法。但当统计指标过程中如果维度特别多,会使得数据任务运行特别慢,导致任务延迟经常出现。针对上面问题对group sets 常用指标进行调研优化。2、...原创 2021-07-05 11:36:00 · 3418 阅读 · 0 评论 -
sparkUI 详解记录
参考:https://www.jianshu.com/p/8143a50a5af9原创 2021-06-17 16:24:04 · 208 阅读 · 0 评论 -
LSM思想在大数据生态圈中应用
LSM 思想广泛应用在大数据生态圈中,被人们广泛知道包含了 Hbase 、kudu 、druid 的设计思想(注:此文章根据自己的经验总结得出,如果错误之处欢迎指出,不胜感激)原创 2021-01-12 10:31:41 · 450 阅读 · 2 评论 -
数据仓库建模 事件杂记
dwd 建议用范式建模 mid dws 应用维度建模原创 2021-01-08 19:42:07 · 278 阅读 · 0 评论 -
hive array类型转成多行
1、explode(array)函数接受array类型的参数,其作用恰好与collect_set相反https://my.oschina.net/u/3204727/blog/1571101原创 2020-12-30 18:13:49 · 3782 阅读 · 0 评论 -
hive 相同key 多行多列合并 处理
概述在join 的过程中我们很容易出现数据膨胀现象,即一行变成多行情况。面对这种情况,一般会有两种处理方式第一种:用row_number 等分窗函数,根据不同策略取不同行的数据第二种:将相同key对应多行的情况合并成一行,(如果一行有多个字段,还有可能合并为一个字段中)实现方式如源表结构:pcgid string mobilegid string原创 2020-12-22 15:16:22 · 4215 阅读 · 0 评论 -
hive group by 的高级用法
roup by 作为一种分组查询,在sql中用处十分广泛。原创 2020-11-12 20:27:08 · 1976 阅读 · 0 评论 -
flink 端到端的一致性 实现
一、综述flink 通过内部依赖checkpoint 并且可以通过设置其参数exactly-once 实现其内部的一致性。但要实现其端到端的一致性,还必须保证1、source 外部数据源可重设数据的读取位置2、sink端 需要保证数据从故障恢复时,数据不会重复写入外部系统(或者可以逻辑实现写入多次,但只有一次生效的数据sink端)幂等操作:一个操作,可以重复执行多次,但只导致一次结果更改,豁免重复操作执行就不起作用了(逻辑与、逻辑或等)具体理解参照自己以前写的文章。事务写入:事务应该具有四个属性原创 2020-11-03 20:37:06 · 1689 阅读 · 0 评论 -
hive的数据倾斜解决(Map端、reduce 端 、join中)
hive 的数据倾斜一般我们可以分为 Map倾斜、reduce 倾斜和join 倾斜这几种。原创 2020-11-02 15:24:08 · 6266 阅读 · 3 评论 -
flink的事务之两阶段提交
场景描述:两阶段提交(two-phase commit, 2PC)是最基础的分布式一致性协议,应用广泛。本文来介绍它的相关细节以及它在Flink中的典型应用场景。。原创 2020-04-14 10:31:41 · 3784 阅读 · 0 评论 -
flink基础知识点总结
介绍flink 数据处理流程:flink 摒弃了spark 拥有两个算子的思想(transfor、action),其数据流程包括了关于并行度和算子之间的运算流程为:其在分布式上运行流程为:具体执行步骤为1、当 Flink 集群启动后,首先会启动一个 JobManger 和一个或多个的 TaskManager。由 Client 提交任务给 JobManager, JobManag...原创 2020-04-12 21:37:11 · 1549 阅读 · 0 评论 -
flink checkpoint 源码分析三-状态的恢复流程
四、状态的恢复流程todo 结合源码分析:https://blog.jrwang.me/2019/flink-source-code-checkpoint/原创 2020-09-28 15:15:40 · 1257 阅读 · 0 评论 -
flink checkpoint源码分析二
概述:上一篇文文章总体接收了flinkcheckpoint的源码分析的总体概念和流程。并结合代码介绍了checkpoint的发起和任务执行过程详细参考:https://blog.csdn.net/weixin_40809627/article/details/108537480本篇文章将接着上篇文章,继续介绍 flink checkPoint 的检查点快照、本地状态存储、checkpoint的确认、和状态恢复等过程。一、存储检查点状态快照在task 触发了chckpoint 之后,对于Task而言,原创 2020-09-22 17:43:19 · 629 阅读 · 1 评论 -
flink checkpoint源码分析一
FlinK CheckPoint 是程序故障恢复以及数据一致性的效果的基础,checkpoint是一种分布式快照:对一个Flink作业的所有task做一个快照且将快照保存在 memory / file system 等存储系统中。这样,在任务进行故障恢复的时候,就可以还原到任务故障前最近一次检查点的状态,从而保证数据的一致性。当然,为了保证 exactly-once / at-least-once 的特性,还需要数据源支持数据回放。todo 结合源码分析:https://blog.jrwang.me/20原创 2020-09-11 16:40:31 · 924 阅读 · 0 评论 -
数据仓库主题六-(维度设计之整合和拆分)
数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合,用来支持管理人员的决策。其中集成是数据仓库的四个特性中最重要的一个。数据仓库的重要数据来源是大量的、分散的面向应用的操作型环境。不同的应用在设计过程中,可以自由决策 ,主要满足本应用的需求,很少会考虑和其他系统进行数据集成。应用之间的差异具体表现在如下几个方面:todo...原创 2020-08-21 17:17:46 · 2491 阅读 · 3 评论 -
数据仓库主题五-(维度设计)
一、概述1、概念维度建模思想事数据仓库领域的另一位大师 Ralph Kimball 所倡导,按照书中主要思想,维度建模并不要求维度建模满足三范式,数据库中强调3NF 主要是为了消除冗余。规范化的 3NF 将数据划分为多个不同的实体,每个实体构成一个关系表。比如说订单数据库,开始可能是每个订单中的一行表示一条记录,到后来为了满足3NF会变成类似蜘蛛网状图。也许会包含上百个规范化表。而且对于BI查询来讲,规范化模型太复杂,用户会难以理解这些记录和模型的使用。而且维度建模解决了模型过于复杂的问题。维度是维度原创 2020-08-18 16:21:59 · 888 阅读 · 0 评论 -
flink windows窗口 应用范例
概述:流式数据处理中,很多操作要依赖于时间属性进行,因此时间属性也是流式引擎能够保证准确处理数据的基石,window提供了一种处理无界数据的一种手段。flink的windows包含了很多的组件: 例如出发器trigger,触发器上下文triggerContext,内部状态windowState。窗口分配器windowassigner,内部时间服务器internalTimerService。其中每个组件都是winows 完成功能不可缺失的一部分。具体每个组件的作用。1.Time在 Flink 的流式处理原创 2020-08-14 12:59:07 · 596 阅读 · 0 评论 -
flink window窗口函数 源码分析
概述:流式数据处理中,很多操作要依赖于时间属性进行,因此时间属性也是流式引擎能够保证准确处理数据的基石。在这篇文章中,我们将对 Flink 中时间属性和窗口的实现逻辑进行分析。原创 2020-08-13 19:48:29 · 277 阅读 · 0 评论 -
flink 的interval join源码分析
flink在流与流的join中,与其他window join相比,window中的关联通常是两个流中对应的window中的消息可以发生关联, 不能跨window,Interval Join则没有window的概念,直接用时间戳作为关联的条件,更具表达力。由于流消息的无限性以及消息乱序的影响,本应关联上的消息可能进入处理系统的时间有较大差异,一条流中的消息,可能需要和另一条流的多条消息关联,因此流流关联时,通常需要类似如下关联条件:等值条件如 a.id = b.id时间戳范围条件 : a.timesta原创 2020-05-22 11:13:35 · 695 阅读 · 0 评论 -
flink不同状态后端和RocksDBstatebackend的配置优化
背景:flink提供了不同的状态后端(state backends)来区分状态的存储方式和状态位置,flink状态可以存储在java堆呢村内或者内存之外。我们可以通过状态后端的设置,flink允许应用保持大容量的应用后端。开发者可以在不改变应用逻辑的情况下设置状态后端。注意:默认情况下flink的状态会保存在tastmanager的内存中,而checkpoint会保存在jobmanager的内存中。flink的三种状态后端。1、memorystatebackend2、fsstatebackend3原创 2020-07-07 16:36:35 · 2605 阅读 · 1 评论 -
flink的三种windows join
window join用于连接两个流的元素,他们在一个窗口钟用于共享一个公共的key.我们一般可以用一个窗口分配器定义这些窗口(join情况下一般包含了Tumbling Windows (滚动)、Sliding Windows(滑动)和Session Windows (会话窗口))Windows Join的代码一般形式如下:注:创建两个流元素的成对组合的行为类似于内连接。如果来自一个流的元素和另一个流没有相对应的连接元素,则不会发出该元素。结合在一起的那些元素将其时间戳设置为各自窗口的最大时间戳。例原创 2020-06-09 20:11:06 · 3684 阅读 · 0 评论 -
spark的shuffer过程及升级过程
todo:总结转载https://www.cnblogs.com/itboys/p/9201750.html转载 2020-04-13 13:25:49 · 144 阅读 · 0 评论 -
namenode 联邦机制探索学习
namenode 联邦机制转录:https://mp.weixin.qq.com/s/Ji6G9t34UPrqySsYvpswCw原创 2020-01-03 14:45:06 · 585 阅读 · 0 评论 -
flume执行流程及源码解读
1、flume 指定配置文件启动bin/flume-ng agent -c conf -f conf/LogDetailExpose4KafkaFlume.conf -n aApacheFlume --classpath /home/dmpflume-jar-with-dependencies.jar -Dflume.root.logger=INFO,console#注意:因为需要指定自己实现...原创 2019-12-30 17:37:30 · 868 阅读 · 0 评论 -
Flink、spark streaming、storm对比的异同
1、flink 、spark streaming 、storm 的异同:flink 架构和容错方面 和spark Straming storm 异同。flink 和storm 、sparkstreaming 在处理模型延迟和数据保证时异同:现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型:流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效...原创 2019-12-30 13:52:12 · 3243 阅读 · 0 评论 -
kafka高性能设计 杂谈
1、kafka 定义:kafka是一个生产-消费模型。producer:生产者,只负责数据生产,生产者的代码可以集成到任务系统中。 数据的分发策略由producer决定,默认是defaultPartition Utils.abs(key.hashCode) % numPartitionsBroker:当前服务器上的Kafka进程,俗称拉皮条。只管数据存储,不管是谁生产,不管是谁消费。在...原创 2019-12-23 19:00:47 · 234 阅读 · 0 评论 -
kafka 常用命令
文章目的:只为记录常用kafka 工作中常用的命令解释:因为选择zk 记录kafka 的元数据 并且指定路径为 /kafka 所以指定zk 命令单独加上/kafka 路径1、查看当前kafka 服务中的所有topickafka-topics --zookeeper ZW0416-hadoop-2-59:2181/kafka --list2、在当前kafka 服务中创建topic 指定...原创 2019-12-13 16:05:36 · 5197 阅读 · 0 评论 -
spark 源码分析(spark 触发Action 之后操作)
本例以wc 为例子 (akka 为rpc 通讯框架)1、我们进入savaAsTextFile 这个 action算子2、上面算子通过多层封装(其中包换数据 转换和创建一些读写流) 最后通过 runjob 方法的入口开始提交任务(其中包含DAG 任务的划分流程等将DAG 切分成多个stage 然后将stage 切分成不同task 任务最后提交任务)经过一系列的变换操作(通常增加一些提...原创 2019-12-12 18:03:36 · 416 阅读 · 0 评论 -
spark源码分析之任务本地化
Spark也有数据本地化的概念(Data Locality),这和MapReduce的Local Task差不多,如果读取HDFS文件,Spark则会根据数据的存储位置,分配离数据存储最近的Executor去执行任务。这么理解没错,我搭建的Spark集群情况是这样:每台DataNode节点的HDFS集群,我在每个DataNode上都部署了一个Spark Worker,并且,启动Spark Ap...原创 2019-12-11 18:04:02 · 247 阅读 · 0 评论 -
spark主流程源码分析
1、spark 任务提交过程首先调用sprark-submit函数例子为 :bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://node-1.itcast.cn:7077 --executor-memory 2g --total-executor-cores 4该命令主要调用相应脚本下着 ...原创 2019-12-11 17:45:48 · 158 阅读 · 0 评论 -
cloudra中 mapreduce.map.memory.mb 设置诡异(推荐设置问题)
诡异问题生产环境 mr 运行任务 map端和reduce 的运行内存都设置的为0为作业的每个 Map 任务分配的物理内存量(MiB)。对于早于 CDH 5.5 的版本,如果未指定内存量,则默认设置为 1024。对于 CDH 5.5 及更高版本,不支持小于 128 的值,但如果将其指定为 0,则可以通过 Map 任务的最大堆大小以及堆与容器的大小比值推断要请求的物理内存量。如果未指定 Map ...原创 2019-12-03 19:45:27 · 5105 阅读 · 0 评论 -
CDH环境HDFS权限问题(root 赋值hdfs 用户权限)
CDH环境下Hadoop平台最高权限用户是hdfs,属于supergroup组。默认HDFS会开启权限认证,所以操作时,需要将root用户切换到hdfs用户,否则会报错。解决问题 :1、单独安装的软件没有(root 用户安装 没有hdfs权限)2、Hive和HBase读写hdfs,也很容易因为权限问题导致出错。解决方式但是关闭权限检查,任何用户都可以操作HDFS数据,数据安全性又没有保障...原创 2020-08-05 15:56:41 · 2916 阅读 · 0 评论 -
新环境 hive客户端 提交任务失败
环境:新安装cdh5.13.0engine : hive on spark正在服务器上运行hive然后提交sql (或写spark任务提交任务) 总是失败。hive> select count(*) from ods_finance_plan_sub_point_log_test limit 10;Query ID = hdfs_20191127174545_293f89bd-327...原创 2019-11-27 18:02:03 · 686 阅读 · 0 评论 -
flume 数据放丢失保证
flume 数据不丢失保证:1、但是根据Flume的架构原理,再采用FileChannel的Flume是不可能丢失数据的,因为其内部有完善的事务机制(ACID)。Source到Channel是事务性的,Channel到Sink也是事务性的,这两个环节都不可能丢失数据。在采集阶段flume 采取采用 TAILDIR偏移量存储在: /var/log/flume-ng/taildir_po...原创 2019-11-22 18:40:04 · 1217 阅读 · 0 评论 -
azkaban运行日常注意操作步骤
1、azkanba正在运行的流中 跳过某个任务步骤:打开具体azkaban 任务流 进入 右上角的 进入调度然后选择具体job 右击disable2、任务流配置步骤 如1问题点开 任务流 进入 右上角的 进入调度 然后左半部分任务一些对流进行操作的步骤分别为:1、Notification:任务执行成功或者失败后进行告警(任务报警(监控job流任务完成选择完成的一些操作))Fa...原创 2019-11-22 17:43:48 · 1328 阅读 · 0 评论 -
Container killed by YARN for exceeding memory limits
经常我们提交任务到 yarn上后出现 内存溢出的错误 类似ExecutorLostFailure (executor 7 exited caused by one of the running tasks) Reason: Container killed by YARN for exceeding memory limits. 11.1 GB of 11 GB physical memory ...原创 2019-01-11 15:52:22 · 9962 阅读 · 0 评论 -
hadoop SWAP交换空间
swap的概念1、当内存不够用时,将存储器中的数据块从DRAM移到swap的磁盘空间中,以释放更多的空间给当前进程使用.2、当再次需要那些数据时,就可以将swap磁盘中的数据重新移到内存,而将那些不用的数据块从内存移到swap中.3、数据从内存移动交换区的行为被称为页面调用,发生在后台的页面调用没有来自应用程序的干涉.4、swap空间是分页的,每一页的大小和内存页的大小一样.5、并不是一...原创 2019-01-08 10:42:26 · 1871 阅读 · 0 评论