自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

日句灬的博客

大数据学习经验和记录

  • 博客(29)
  • 收藏
  • 关注

原创 Scala语法使用(自用)

1.class、object、case class、case object间的简单区别:/** class、object、case class、case object区别 * * class 类似Java中的class; * object Scala不能定义静态成员,用定义单例对象代之; * case class被称为样例类,是一种特殊的类,常被用于模式匹配。 * * 一、class 和 object 关系: * 1.单例对象不能带参数,类可以 * 2.对象可以和类名一样时

2022-02-08 17:47:52 431 1

原创 # HIVE udf和udtf功能使用

HIVE udf和udtf功能使用 前言:之前在实习过程中,有一个业务需求,因为开始没有理解需求,所以走了很多弯路,最后修改代码逻辑的时候发现还有上游字段没有解析,需要些一个udtf来完成需求。之前虽然了解过udf和udtf等,但是没有实际写过,最后差点任务延期,所以在使用hive过程中,udf和udtf也应该作为数据开发人员的基本功,在实际开发过程中也是经常需要使用的。1、UDF:用户定义(普通)函数,只对单行数值产生作用;继承UDF类,添加方法evaluate();注意:evaluate()方

2021-10-31 18:00:54 944

原创 MySql事务和隔离级别详解(从概念到底层实现及)

MySql事务介绍MySql隔离级别介绍

2021-09-22 00:50:15 446

原创 Kafka生产者和消费者分区策略部分源码解析

之前我在看其他的博客时,发现对于kafka consumer的RoundRobin的缺点分析中,有两种观点,一种认为缺点在于如果消费者组中消费者消费的主题不同,或者消费者线程数不同,那么会造成消费者消费分区数目的倾斜;另一种观点认为缺点在于消费者会消费到不属于自己主题的内容,所以这篇文章就是在这种背景下写的,如果有写错,还请指正。PS:我认为第一种观点是对的,具体看后续的源码解析,不知道第二种观点是写错了,还是老版本源码如此。生产者分区策略分析消息发送时都被发送到一个topic,其本质就是一个目录,而

2021-09-02 19:32:35 388

原创 Kafka和Flink的Exactly Once分析

Kafka的Exactly Once聊到Kafka的Exactly Once,首先就必须对Kafka的Producer和Consumer的工作模式有个基础了解,我们先来看看Kafka Producer的工作模式:1.Kafka ProducerKafka Producer的数据可靠性机制规定如下:为保证 producer 发送的数据,能可靠的发送到指定的 topic, topic 的每个 partition 收到producer 发送的数据后, 都需要向 producer 发送ack(acknowl

2021-08-31 00:25:28 1087

原创 大数据Flink电商实时数仓实战项目流程全解(最终章)Flink SQL的简单应用以及数据接口设计思路

Flink Sql介绍在实际开发过程中,我个人是以Stream API为主,Flink Sql写的不多,这里主要是参考原本项目代码写的,具体的细节,我也不是很熟悉,建议大家可以单独去了解一下Flink Sql;简单来说就是就是先通过Sql语句从对应的数据表(这里主要就是DWM层的订单宽表)来获取所需要的字段数据,形成动态表,然后将动态表再转化为流的形式,再存到ClickHouse中去。要注意的点:1、Flink Sql和MySql的编写语言略有不同;2、转化为流的时候,注意选用的模式,Flink中有

2021-08-14 14:21:51 1224 1

原创 大数据Flink电商实时数仓实战项目流程全解(七) DWS层设计--访客主题宽表、商品主题宽表的计算

这几天复习计网的东西去了~~不定期更新之所以单独将这个主题宽表拿出来讲,是因为他的设计过程非常具有代表性,可以参照这个表的设计方式去实现后续其他的主题宽表设计(后续有Flink Sql的实现过程、另讲);在该系列的第一篇文章中,我已经提高了各个层的设计目的;DWS层在本项目中的主要作用是为了ADS层的查询和后续可视化设计的,算是数据接口的直接数据来源,所以这里对实时性的要求很高,否则你再这里算个几十秒的延迟,最后展示出来的数据结果实时性肯定非常差;对此,DWS层的设计应该突出实时性要求,在这里,不应该

2021-08-06 20:26:23 1620 1

原创 Yarn Cluster模式下 spark提交流程和源码解析

这里是Yarn的Cluster模式,还有Yarn的Client模式以及StandAlone的Cluster和Client模式,这里先看最经典的;Yarn-Cluster模式:Cluster 模式将用于监控和调度的 Driver 模块启动在 Yarn 集群资源中执行。一般应用于实际生产环境。 1) 执行脚本提交任务,实际是启动一个 SparkSubmit 的 JVM 进程;2) SparkSubmit 类中的 main 方法反射调用 YarnClusterApplication 的 main 方

2021-08-05 15:40:19 462

转载 Spark为什么比MR快

1、spark是基于内存进行数据处理的,MapReduce是基于磁盘进行数据处理的​ MapReduce的设计:中间结果保存在文件中,提高了可靠性,减少了内存占用。但是牺牲了性能。​ Spark的设计:基于内存,迭代计算的中间结果不落盘直接在内存中传递。只有shuffle时或中间结果内存存不下才落盘。而MR的中间结果肯定会落盘。比如运行pageRank或者机器学习的算法,有可能要迭代几百次。2、spark中具有DAG有向无环图,DAG有向无环图在此过程中减少了shuffle以及落地磁盘的次数​

2021-08-02 13:06:02 2340

原创 Spark Shuffle和Mapreduce Shuffle

Spark Shuffle和Mapreduce Shuffle的区别Spark Shuffle中包括Hash Shuffle(优化和未优化)、sortShuffle、BypassMergeSortShuffleMR Shuffle包括Map Shuffle和Reduce Shuffle//MR ShuffleMap端Shuffle从Map方法之后开始:环形缓冲区刷写、分区排序(分区标记在进入环形缓冲区之前已经打上、排序在刷写之前发生)、combine预聚合、归并排序、压缩Reduce端Shuff

2021-08-02 12:20:16 333

原创 Spark算子介绍和比较

转换算子1)map(func):返回一个新的 RDD,该 RDD 由每一个输入元素经过 func 函数转换后组成.2)mapPartitions(func):类似于 map,但独立地在 RDD 的每一个分片上运行,因此在类型为 T 的 RD 上运行时,func 的函数类型必须是 Iterator[T] => Iterator[U]。假设有 N 个元素,有 M 个分区,那么 map 的函数的将被调用 N次,而 mapPartitions 被调用 M 次,一个函数一次处理所有分区。3)mapPa

2021-08-02 12:16:02 279

原创 大数据Flink电商实时数仓实战项目流程全解(六)DWM层业务实现

项目概要之前我们已经通过动态分流把数据分到了我们想要的位置,为了方便后续内容的讲解方便,所以接下来我们可以把配置表的信息进行导入了,然后通过动态分流的方法,把数据发往对应的kafka主题或者是hbase的维度表中://配置信息表: CREATE TABLE `table_process` ( `source_table` varchar(200) NOT NULL COMMENT '来源表', `operate_type` varchar(200) NOT NUL

2021-08-01 19:20:33 1299

原创 Flink CEP编程详解

Flink CEPCEP概述• 复杂事件处理(Complex Event Processing,CEP)• Flink CEP是在 Flink 中实现的复杂事件处理(CEP)库• CEP 允许在无休止的事件流中检测事件模式,让我们有机会掌握数据中重要的部分• 一个或多个由简单事件构成的事件流通过一定的规则匹配,然后输出用户想得到的数据 —— 满足规则的复杂事件CEP特点比如:这个图中表示的是找到一个先是长方形,然后是圆形的特征;• 目标:从有序的简单事件流中发现一些高阶特征• 输入:一个

2021-08-01 12:51:23 649

原创 大数据Flink电商实时数仓实战项目流程全解(五)

前提概要:之前我们已经实现了动态分流,即通过TableProcessFunction1类把维度数据和事实数据进行了分流处理,接下来就是把数据写入Hbase表和Kafka主题表中: hbaseDS.addSink(new DimSink()); kafkaDS.addSink(kafkaSink);此时的动态分流后的2种数据类型大致为:在代码注释种我已经详尽地介绍了输出数据的情况和代码逻辑,接下来我会以代码编写逻辑思路为主要讲解路线,可以参考代码逻辑来看;维度表和事实表动态写入Hbase动态写入

2021-07-30 19:15:46 1081 1

原创 大数据Flink电商实时数仓实战项目流程全解(四)动态分流详解

DWD层业务数据分流回顾一下之前业务数据的处理;首先把脚本生成的业务数据发送到MySql数据库中,在表gmall0709中可以看到数据:这里就是生成的对应数据表,然后通过Maxwell把数据输入到Kafka中,保存在ods_base_db_m主题中;此时我们需要把这个kafka主题中的数据进行过滤和分流处理,过滤处理很容易,这里我们过滤掉data为空,或者是长度<3的数据内容,当然这个数据过滤部分可以由自己来定;//过滤部分的代码内容;SingleOutputStreamOperator

2021-07-29 21:12:30 2218

原创 Spark的本机、独立部署、Yarn集群部署模式

Spark一般有四种安装模式:Local、Standalone、Yarn、Mesos/K8S部署模式;这里讲解前三种模式的部署和安装方式:本文讲解内容以Spark-3.0.0版本为例:本文内容参照尚硅谷Spark-3.0.0版本安装资料,在自己的集群上搭建完成;仅供复习时使用,如有搭建需求,请根据自己的集群修改对应文件名。1.1、Local(本地)模式1.1.1、 解压缩文件将 spark-3.0.0-bin-hadoop3.2.tgz 文件上传到 Linux 并解压缩,放置在指定位置,路径中

2021-07-29 18:20:45 643

原创 大数据Flink电商实时数仓实战项目流程全解(三)

DWD层日志数据分离在数仓搭建过程中,对日志数据做分离是非常有必要而且有意义的,我们可以通过把日志分为启动、隔离、曝光、异常、页面等日志,可以计算获取访客数量、独立访客数量、页面跳转、页面跳出等统计指标数据;那么在实时数仓和离线数仓中,这里有什么不同点呢?异同点分析在离线数仓的搭建过程中,我们可以获取一段时间内的离线日志数据,然后将日志数据进行过滤和分离,但是在实时数仓中,我们需要得到实时的流数据信息,如果按照离线数仓的方式进行,就不会得到一个实时的日志数据了。对此,我们将实时生成的日志数据发送到O

2021-07-29 17:10:55 860 1

原创 大数据Flink电商实时数仓实战项目流程全解(二)

从这篇内容开始就是项目的正式过程了,接下来我将以思路和项目过程为主来进行讲解,部分过程我也会对代码部分内容进行讲解。前提条件:对应的hadoop集群要有,具体配置方法和版本见第一节内容;phoenix、clickhouse、springboot、redis等框架的使用,我会在用到的时候再介绍,也可以自己根据下载包里的文档内容进行了解,文章不做详细介绍。第一部分 日志采集日志生成这里采用模拟jar包的方式,参数调整在对应的application.yml中进行://以下为需要主要调整的内容,修改为当天

2021-07-29 13:43:27 1381

原创 Redis主从复制、哨兵模式

Redis主从复制(重点)概念​ 默认情况下,每个Redis服务器都是主节点;​ 将一台Redis服务器的数据,复制到其他的Redis服务器,前者称为主节点,后者为从节点;数据复制是单向的,只能由主节点到从节点;Maste可以写,Slave不能写只能读;Redis的主从复制功能分为两种数据同步模式进行:全量数据同步和增量数据同步。作用(最少3台)1、实现故障恢复:主从模式可以在主节点挂掉之后,由从节点提高服务,实现快速的故障恢复。2、实现负载均衡:由主节点负责写操作,而其他从节点负责读取操

2021-07-27 20:24:11 126

原创 Redis.conf文件详解

Redis.conf详解//一些比较重要的配置了解;1.################################## INCLUDES ################################### # include /path/to/local.conf //加载其他的配置文件; 2. ################################## NETWORK ##################################### bind 19

2021-07-26 21:59:31 137

原创 Redis的8种数据类型和事务及其使用案例

String、List、Hash、Set、Zset、geospatial(地理空间)、hyperloglog(超日志)、bitmaps(位图)以下是我的实际测试内容:5种基础数据类型1 String127.0.0.1:6379> exists hello // 查看key是否存在(integer) 1 127.0.0.1:6379> set hello world // 设置hello-world(hello为key、world为值)OK 127.0.0.1:6379> g

2021-07-26 21:27:24 207

原创 Flume Agent原理、拓扑结构和案例分析

Flume Agent内部原理重要组件:(官方文档对应搜索即可)1)ChannelSelector(搜索flume channel selector)ChannelSelector的作用就是选出Event将要被发往哪个Channel。其共有两种类型,分别是Replicating(复制)和Multiplexing(多路复用)。(默认Replicating)ReplicatingSelector会将同一个Event发往所有的ChannelExamples:a1.sources = r1a1.c

2021-07-25 22:13:42 928

原创 Hive数据倾斜问题、优化问题、架构问题总结

Hive以下复习内容包括架构、与MySql数据库的比较、四种By、小数据问题、两种常见数据倾斜问题和讲解、Hive的简单优化;Hive的架构Hive都是用别人来存东西,自己一点都不存,只负责翻译HQL成MR程序;//客户端Client: CLI(command-line interface)、JDBC/ODBC(jdbc访问hive)、WEBUI(浏览器访问hive)//Sql Parser和Physical Plan 把HQL语句翻译成对应的MR任务//元数据Meta Store

2021-07-24 23:17:30 396 1

原创 Mapreduce的工作流程以及Shuffle机制

仅作复习时使用。MapReduce工作流程第一步,准备好文件;第二步,切片分析;第三步,客户端会提交3个信息:Job的切片、jar包(集群模式才有)、Job运行相关的参数信息;第四步,Yarn会开启一个Mr appmaster(整个任务的老大),Mr appmaster会读取客户端提交的信息,根据切片信息开启对应个数的MapTask;后续讲解一个MapTask的工作内容:第五步,MapTask开启InputFormat(默认TestInputFormat)来按行读取对应切片

2021-07-23 10:35:31 1086

原创 HDFS的读写流程和文件块大小设置

仅供复习时使用。HDFS写入数据:client端按128MB的块切分文件。注意:在数据流式传输过程中,最小传输单位是Packet,大小为64k,其中Packet是由512bytes的chunk和4bytes的chunksum(chunk校验码)组成;客户端向NameNode发出写文件请求。client将NameNode返回的分配的可写的DataNode列表和Data数据一同发送给最近的第一个DataNode节点,此后client端和NameNode分配的多个DataNode构成pipel

2021-07-23 10:07:51 1047

原创 基于东方财富(特定版面)和科创版日报的实时数据爬取(Python)

gitee内容下载文章主要运用了Request和Selenium两个爬虫库;LDA模型库gensim;主方法都封装到了对应的run方法中,模型可以是训练,也可以用我提供的已经训练好的一个简易模型。介绍1.文章背景介绍:​ 本文是我自己毕业设计的开头部分内容的一个修改版,整个毕业设计的目的是设计一个基于财经新闻的实时热门话题生成系统,类似于微博热搜这样一个可以提供实时热度的系统;论文行文结构为爬虫阶段 --> 数据清洗阶段 --> 模型训练和聚类阶段 --> 数据传输 -->

2021-07-22 20:14:37 1000

原创 Hbase2.0.5、zookeeper3.5.7安装(基于Flink电商项目实战)

1.介绍本文中的Hbase和Zookeeper安装方法不仅适用于此版本,至少Hbase2.3之前的版本我装过好几个,都没问题,zookeeper3.6以上的版本也适用,文章介绍版本仅仅是为了契合项目所定。Flink实时电商项目实战默认已安装hadoop、java环境;hadoop3.1.3搭建2、Hbase安装和Zookeeper安装2.1、配置文件修改:解压和基本安装后:进入Hbase的conf目录下:修改三个文件:hbase-env.sh:echo $JAVA_HOME查看当前ja

2021-07-21 22:32:33 439 1

原创 hadoop3.1.3集群搭建(基于Flink电商项目实战)

介绍本文这里的hadoop3.1.3的集群仅仅指hadoop本身的搭建,不涉及到其他框架整合;Flink实时电商实战项目中HDFS部分是基于此版本,B站上有这个版本的安装视频:Flink实时电商项目实战项目框架整合下载提取码:whqf搭配环境VMware16(注意不要使用15,容易蓝屏,如果出现蓝屏,大概率是系统兼容性问题,建议改用16,激活码搜索即可,很方便)安装硬件,安装虚拟机;账户:root 密码:root用户名:chenxu 密码:root配置IP时要注意:VMware、win1

2021-07-21 22:06:54 1213 1

原创 大数据Flink电商数仓实战项目流程全解(一)

项目整体思路和架构本项目主要参考尚硅谷的Flink实时数仓项目完成,最近又重新跑了一遍,项目整体我会在后续上传到码云中,也会同步更新到博客中来,里面不仅包含了整体代码和整个集群搭建过程,也包含了一些我自己的理解和测试过程希望大家能喜欢,以后我也会把我整个的大数据学习过程和笔记做一个分享。非常欢迎一起学习大数据的朋友,大家可以一起交流和学习。实时数仓分层思想 这里采用的架构和离线数仓架构不同,整个项目共分为6个层来做,但注意:这些层级之间并不是纯粹的上下关联关系:也不是一定非要有这6个层级;

2021-07-21 00:16:21 5813 13

空空如也

空空如也

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

TA关注的人

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