- 博客(78)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 hdfs和hive对于小文件的处理方案
通过合并、压缩、删除、设置过期时间等方法,我们可以有效地治理小文件问题,提高HDFS的存储效率和数据处理能力。压缩后的文件在HDFS上存储,不仅可以减少存储空间,还可以减少文件数量,提高处理效率。将多个小文件合并成一个大文件,减少文件数量。:对于一些小文件,可以考虑使用非HDFS的存储方式,如关系型数据库或NoSQL数据库,使数据存储更加灵活和高效。分区下,有很多小文件,例如一个分区有1000个文件,但每个文件大小是10k,数仓大量这种小文件。文件的处理为例,我们可以使用Hive的重写方式来合并小文件。
2025-01-03 11:57:59 1210
原创 Flink教程-keyby 窗口数据倾斜的优化(转发)
对于这种简单的数据倾斜,我们可以通过对分组的key加上随机数,再次打散,分别计算打散后不同的分组的pv数,然后在最外层再包一层,把打散的数据再次聚合,这样就解决了数据倾斜的问题。在这个sql的最内层,将分组的key,也就是plat加上一个随机数打散,然后求打散后的各个分组(也就是sql中的plat1)的pv值,然后最外层,将各个打散的pv求和。在这个sql里,我们统计一个网站各个端的每分钟的pv,从kafka消费过来的数据首先会按照端进行分组,然后执行。如果某一个端产生的数据特别大,比如我们的。
2025-01-01 20:33:54 353
原创 基于Doris实时数据开发的一些注意事项(转发)
所以我们有一个定性的结论,在亿级(或者数千万)数据规模以下,可以使用类似Doris这种的分析引擎,仿照离线数据一样进行分层和定时调度,处理大窗口数据(一般时间跨度超过30天),在保证性能的前提下,降低实时数据的开发成本,并且极大提高了数据的可观测性,开发。在更多的情况下,基于Flink的实时数据开发难度要显著高于离线任务(二者根本不在一个数量级),基于Doris的存储实时数据开发可以显著降低开发门槛,但是存在滥用的可能。上面几点是一些优势,但是基于Doris的这种方案也存在明显的短板,需要大家特别注意!
2024-12-29 19:15:35 509
原创 数据质量和数据治理的关系(转发)
很多时候,数据质量是数据治理的驱动因素之一,这是数据治理计划的最初重点,因此两者之间可能会混淆。但它们并不相同,它们是同一枚硬币的两面,而不是两枚硬币。
2024-12-26 23:34:50 547
原创 数仓行为域常见指标之归因分析
归因分析重在一个结果的产生可能是行为1也可能是行为2,那么行为1和行为2 对于达成这个结果的贡献度是多少呢?需要分析。而漏斗:事件1和事件2之间肯定是有关系的,而归因分析中事件1和事件2是没什么必然的联系的。按如所示:在做一些运营活动,广告投放后,都需要去评估活动或者广告的效应;我们的销量、拉新等业务目标,在广告投放或者运营活动组织后,有了明显的提升,但是这些提升是否是因为广告、运营活动导致的,需要有数据支撑!这些数据分析,就属于事件归因分析的范畴!
2024-12-11 15:31:14 915
原创 数据库中decimal、float 和 double区别
总的来说,decimal 适用于需要高精度计算的场景,而 float 和 double 适用于一般的科学计算和工程计算。- decimal 是一种精确的十进制浮点数表示,通常用于需要高精度计算的场景,比如财务应用。- double 指的是双精度浮点数,它与 float 类似,但具有更高的精度和范围,一般是float的2倍。在计算机科学中,decimal、float 和 double 是用于表示和处理数值的不同数据类型。- float 通常指的是单精度浮点数,但在表示小数时可能会出现精度损失。
2024-12-10 21:04:44 271
原创 MySQL中timestamp 和 datetime区别
timestamp 类型的取值范围是 '1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC。- datetime 类型的取值范围是 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'。- timestamp 存储的值会受到时区的影响,它会将存储的值转换为 UTC 时间,并在检索时再转换回当前时区的时间。展示的格式是年月日时分秒。- datetime 存储的值不受时区影响,它会以原始值存储和检索。
2024-12-10 20:59:39 567
原创 指标体系这个概念的剖析
在日常生活中,想把一个事情说清楚是非常不容易的,比如你在金融公司工作,工作过程中可能会听到这样的话,本月申请贷款审批怎么这样严格,10000 人申请贷款吧,感觉好多都被拒绝了,咱们银行也太严格了吧。这样的话,闲聊还行,但是如果你向领导汇报工作,就不能这样说了,而应该如下表述:截至到 12 月 10 日,共有 10000 份申请贷款的请求,实际通过审批的有 2000 人,审核通过率 20%。
2024-12-10 18:07:59 905
原创 基于最新的Apache StreamPark搭建指南
官方文档Github地址Apache StreamPark™ 是一个流处理应用程序开发管理框架,旨在轻松构建和管理流处理应用程序,提供使用 Apache Flink® 和 Apache Spark™ 编写流处理应用的开发框架和一站式实时计算平台,核心能力包括不限于应用开发、部署、管理、运维、实时数仓等。为什么要使用 StreamPark 呢?它降低了学习成本和开发障碍,开发人员可以专注于业务逻辑。
2024-12-09 18:24:20 1172
原创 spark关联hive 报 Filesystem Close 错误
我的环境是pyspark,pyspark中操作hive,使用datagrip关联spark,在datagrip中进行查询没有问题,但只要insert into 就报:FileSystem Close错误,如何处理呢?然后使用datagrip等第三方工具进行连接,再执行以前的sql就不抱错了。假如我想将一个sql语句插入hive表中时,比如。
2024-12-09 14:25:31 446
原创 Flink学习连载文章13--FlinkSQL高级部分
说明创建窗口的时候,使用的字段不是时间字段,需要写成时间字段TIMESTAMP(3),使用了eventtime需要添加水印,否则报错。2、kafka 对接的 server,写全 bigdata01:9092,bigdata02:9092,bigdata03:9092。需求:按照滚动窗口和EventTime进行统计,每隔1分钟统计每个人的消费总额是多少。窗口分为滚动和滑动,时间分为事件时间和处理时间,两两组合,4个案例。需求:每隔1分钟统计这1分钟的每个用户的总消费金额和消费次数。
2024-12-07 22:14:19 885
原创 Flink学习连载文章12--FlinkSQL
因为DataStream中是Row 类型,所以打印的格式是Row 这个类中的toString方法决定的。这个地方的 +I 的意思是新增的数据。toAppendStream: 适用于生成新的计算结果,并不会对老的计算结果进行修改。从Kafka的topic1中消费数据并过滤出状态为success的数据再写入到Kafka的topic2。从Kafka的topic1中消费数据并过滤出状态为success的数据再写入到MySQL。以下内容是FlinkSQL的全新的方式,更加简单高效。Table风格/DSL风格。
2024-12-07 22:08:43 686
原创 Flink学习连载文章11--双流Join
一个流中有相同 Key 并且位于同一窗口的元素都会保存在同一个迭代器(Iterable),本示例中绿色流为 greenIterable,橘色流为 orangeIterable,如果要实现 RightJoin,实现原理跟 LeftJoin 一样,需要保证 greenIterable 中没有元素,orangeIterable 中的元素也能输出。需要注意的是,一个元素可能会落在不同的窗口中,因此会在不同窗口中发生关联,例如,绿色流中的0元素。其中a和b分别是上图中绿色流和橘色流中的元素,并且有相同的 key。
2024-12-06 17:21:07 1277
原创 在企业中如何保证数据安全(大数据方向)
1、数据安全,可以从几个层面去保障,首先是物理安全,比如可靠的机房,防火,防水,严格的安全管理和监控,防止别人共计机房和恶意访问终端节点,接着放着网络安全,防止非法人员进入,我们可以使用软件或者硬件来保障访问服务器的安全性,比如使用openVPN等vpn工具,或者工作机上插入一些U盾之类的设备才能访问服务器节点。第三点也是最重要的一点,做好数据的备份和恢复,防止数据丢失或者硬盘损坏带来的问题,对所有的数据进行访问权限的控制。
2024-12-06 17:11:29 403
原创 手把手教你搭建Redis集群
需要注意的是,Redis集群在实现上是一个相对复杂的系统,需要一些配置和管理的工作。例如,需要设置节点间的通信和复制机制,以及监控和管理集群的状态。因此,在使用Redis集群时,建议参考Redis官方文档或其他相关资源,以确保正确配置和操作集群。小伙伴们大家好,上一次给大家发了一个手把手教你使用哨兵模式搭建redis主从模式之后,收到了很多小伙伴的催更,让我出一个搭建Redis的教程,那么它来了!第九步:创建集群的意思。
2024-12-04 22:22:25 340
原创 Neo4J-图数据库入门
Neo4j是一种基于图形数据库模型的开源图形数据库管理系统。它专注于存储和处理图形数据结构,如节点、关系和属性,以提供高效的图形数据查询和分析功能。基于硬盘为什么要使用对数据的需求不在局限于对数据本身的获取,还需要获取数据与数据件的关系(就是连接数据)简单来说,图数据库主要用于存储更多的连接数据。
2024-12-04 22:20:47 1165
原创 阿里云中Flink提交作业流程
有些程序,是需要环境的,假如数据需要依赖我们虚拟机的环境,是没办法在flink上运行的,因为flink访问不到虚拟机的服务,可以写死一些数据,比如自定义数据源,或者写死一些数据,进行测试。访问阿里云首页面:https://www.aliyun.com/查看创建的工作空间,当工作空间状态为运行中时,点击控制台。可以选择SQL开发或者作业运维运行自己的Flink程序。作业运维在本地IDEA开发,将jar包上传。通过选择区域,看哪个区域有虚拟交换机。
2024-12-02 18:12:14 555
原创 如何使用哨兵模式搭建Redis主从模式?
主节点负责写入和读取数据,而从节点复制主节点的数据,并提供读取服务。如果主节点发生故障或不可用,从节点可以接管主节点的角色,继续提供服务,确保系统的可用性。总的来说,Redis主从模式提供了高性能、高可用性和数据冗余的优势,使得Redis成为处理大数据和高并发场景的理想选择。好了,以上就是在一台服务器上,搭建redis主从模式,并使用哨兵模式自动将从节点推选为主节点的过程,希望对大家有所帮助。我们的方案就是在服务器上安装主从,一个主,一个从,通过redis.conf 来区分谁是主,谁是从。
2024-12-02 08:41:31 595
原创 Python脚本实现datax全量同步mysql到hive
在我们构建离线数仓时或者迁移数据时,通常选用sqoop和datax等工具进行操作,sqoop和datax各有优点,datax优点也很明显,基于内存,所以速度上很快,那么在进行全量同步时编写json文件是一项很繁琐的事,是否可以编写脚本来把繁琐事来简单化,接下来我将分享这样一个mysql全量同步到hive自动生成json文件的python脚本。
2024-12-01 19:59:08 382
原创 ELK超详细操作文档
ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。
2024-12-01 19:57:29 1172
原创 Maxwell的入门实战
Maxwell 是美国 Zendesk 开源,用Java 编写的 Mysql 实时抓取软件。实时读取 mysql 的二进制日志 Binlog,并生成 JSON 格式的信息,做为 生产者 发送 给 Kafka、Kinesis、RabbitMQ、Redis、Goodle Cloud Pub/Sub、文件 或 其他平台的应用程序。官网:常用的就是,将 MySQL 的数据 同步到 hdfs 上注意:也可以通过 sqoop 编写脚本的方式将 mysql的数据同步的hdfs上 (离线)
2024-12-01 19:55:01 1062
原创 一键生成数据库对应的所有DataX的json文件
Datax是一个非常优秀的数据导入导出工具,想必小伙伴们都使用过,但是今天老板说:小张,你把mysql中的所有表都导入到hive的ods层,这该怎么办?一张表对应一个json文件,这不得写一个月?我们可以通过python编写一个脚本来实现,说干就干。
2024-12-01 19:53:17 413
原创 Flink学习连载文章10--CheckPoint和维表Join
所谓的维表Join: 进入Flink的数据,需要关联另外一些存储设备的数据,才能计算出来结果,那么存储在外部设备上的表称之为维表,可能存储在mysql也可能存储在hbase 等。维表一般的特点是变化比较慢。重启策略的意义:流式数据是不可能停止的,假如有一条错误数据导致程序直接退出,后面的大量数据是会丢失的,对公司来讲,意义是重大的,损失是惨重的。运行,刷新查看checkpoint保存的数据,它会先生成一个新的文件夹,然后再删除老的文件夹,在某一时刻,会出现两个文件夹同时存在的情况。
2024-11-28 15:41:20 1348
原创 Flink学习连载文章9--状态(State)
注意: Flink默认已经支持了无状态和有状态计算!例如WordCount代码:已经做好了状态维护, 输入hello,输出(hello,1),再输入hello,输出(hello,2)以wordcout为例,说明上图的流程对Managed State继续细分,它又有两种类型:Keyed State和Operator State。Flink 为每个键值维护一个状态实例,并将具有相同键的所有数据,都分区到同一个算子任务中,这个任务会维护和处理这个key对应的状态。
2024-11-28 15:37:00 1279
原创 impala入门与实践
impala是cloudera提供的一款高效率的sql查询工具,提供实时的查询效果,官方测试性能比hive快10到100倍,其sql查询比sparkSQL还要更加快速,号称是当前大数据领域最快的查询sql工具。impala是参照谷歌的新三篇论文(Caffeine--网络搜索引擎、Pregel--分布式图计算、Dremel--交互式分析工具)当中的Dremel实现而来,其中旧三篇论文分别是(MapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce。
2024-11-27 20:51:44 1347
原创 搭建单机版dolphinscheduler【实战很强,亲测可用】
但是单机版有一个致命的问题,就是当你重启ds服务之后,H2中的数据就没有了,下一次还需要重新配置,所以我们希望将H2数据库修改为mysql数据库,说干就干!修改配置文件:/opt/modules/ds/apache-dolphinscheduler-3.1.8-bin/standalone-server/conf。这个软件下面有很多的服务,将每一个服务下的common.properties中的内容全部修改一遍。使用laoyan 账户登录,或者修改admin 的租户,并授权项目管理。进程中,并且其中内置了。
2024-11-27 08:41:28 465
原创 Flink学习连载文章8--时间语义
EventTime:事件(数据)时间,是事件/数据真真正正发生时/产生时的时间IngestionTime:摄入时间,是事件/数据到达流处理系统的时间ProcessingTime:处理时间,是事件/数据被处理/计算时的系统的时间总结:1.事件时间确实重要, 因为它能够代表事件/数据的本质,是事件/数据真真正正发生/产生的时间2.按照事件时间进去处理/计算,会存在一定的难度, 因为数据可能会因为网路延迟等原因, 发生乱序或延迟到达, 那么最后的计算结果就有可能错误或数据丢失。
2024-11-26 20:48:42 1232
原创 Yarn中多队列的配置以及更换公平调度器
首先为什么要配置多队列呢?当我们使用 yarn 的时候,一个任务提交后,另一个任务也提交,有可能第二个任务提交成功了,但是迟迟不运行,原因是我们默认的调度器,只有一个队列,队列中假如有一个大任务,会阻塞后面的小的任务的运行。提交第二个任务:所以我们需要调整 yarn 的队列,要么更换调度器,要么添加队列,以下根据两个情况,分别进行演示。
2024-11-26 16:36:38 1365
原创 Flink学习连载文章7--window的窗口函数
输入类型是输入流中的元素类型,AggregateFunction有一个add方法可以将一个输入元素添加到一个累加器中。该接口还具有创建初始累加器(createAccumulator方法)、将两个累加器合并到一个累加器(merge方法)以及从累加器中提取输出(类型为OUT)的方法。指在窗口触发的时候才会对窗口内的所有数据进行一次计算(等窗口的数据到齐,才开始进行聚合计算,可实现对窗口内的数据进行排序等需求)l 增量函数:窗口保存一份中间数据,每流入一个新元素,新元素与中间数据两两合一,生成新的中间数据。
2024-11-25 22:07:24 412
原创 Flink学习连载文档6--Window的分类
按照指定的数据条数生成一个Window,与时间无关。滚动计数窗口,每隔N条数据,统计前N条数据滑动计数窗口,每隔N条数据,统计前M条数据按照时间生成Window。(重点)滚动时间窗口,每隔N时间,统计前N时间范围内的数据,窗口长度N,滑动距离N滑动时间窗口,每隔N时间,统计前M时间范围内的数据,窗口长度M,滑动距离N,按照会话划定的窗口流是连续的,无界的(对于这个问题,肯定是无法回答的,为何?因为,统计是一种对固定数据进行计算的动作。
2024-11-25 22:04:54 841
原创 Flink学习连载文章5--Flink的各种Sink操作
jdbcSink官方已经提供过了,此处仅仅是模拟它的实现,从而学习如何自定义sink/*** @基本功能:* @author: 闫哥**/@Data@Override// 这个里面编写连接数据库的代码)");@Override// 关闭数据库的代码ps.close();@Override// 将数据插入到数据库中。
2024-11-24 22:17:59 770
原创 Flink学习连载文章4-flink中的各种转换操作
关于分区,很多技术都有分区:1、hadoop 有分区2、kafka 有分区3、spark 有分区4、hive 有分区使用用户定义的Partitioner 为每个元素选择目标任务/*** @基本功能:* @author: 闫哥**/@Overridereturn 0;return 1;public class _11_自定义分区规则 {//1. env-准备环境@Override});// 每一个分区的数据量有多少@Override。
2024-11-22 17:55:52 867 1
原创 Flink学习连载文章3-Flink中各种Source源
基于本地集合的source(Collection-based-source)基于文件的source(File-based-source)基于网络套接字(socketTextStream)在flink最常见的创建DataStream方式有四种:l 使用env.fromElements(),这种方式也支持Tuple,自定义对象等复合形式。注意:类型要一致,不一致可以用Object接收,但是使用会报错,比如:env.fromElements("haha", 1);
2024-11-22 08:42:55 1241
原创 Flink学习连载第二篇-使用flink编写WordCount(多种情况演示)
使用Flink编写代码,步骤非常固定,大概分为以下几步,只要牢牢抓住步骤,基本轻松拿下:1. env-准备环境2. source-加载数据3. transformation-数据处理转换4. sink-数据输出5. execute-执行。
2024-11-21 11:52:18 1566
原创 Flink学习连载文档第一篇--Flink集群的安装
Flink支持多种安装模式。local(本地)——本地模式standalone——独立模式,Flink自带集群,开发测试环境使用standaloneHA—独立集群高可用模式,Flink自带集群,开发测试环境使用yarn——计算资源统一由Hadoop YARN管理,生产环境测试。
2024-11-21 09:45:39 776
原创 hadoop集群搭建
web访问:namenode 在哪一台,就访问哪一台。分发mapred-site.xml & yarn-site.xml 到另外两台电脑上。目前有两台,克隆第一台(因为第一台上安装了hadoop), 克隆结束后,进行修复操作。路径:/opt/installs/hadoop/etc/hadoop。1) 修改IP 2) 修改主机名 3)修改映射文件hosts。继续配置:为了防止报AppMaster的错误,需要如下配置。修改完了第一台的配置文件,开始分发到其他两台上去。6、修改linux的⼀个安全机制。
2024-11-20 08:45:21 713
原创 虚拟机和远程工具的安装(hadoop集群安装01)
在普通的物理机上,虚拟出来一块资源,安装另一个操作系统,这样的软件就称之为虚拟机。它可以自动的切割一些资源(内存,硬盘,CPU,网络)相当于是模拟器(windows -->模拟器--> 安卓系统-->王者荣耀)远程连接工具非常多:XShell、FinalShell、SSH、Moba双击连接,第一次会出现提示点击:接收并保存,以后就不提示了。如果连接不上,如下进行:1、输入 ip addr 看是否有IP地址,如果没有,重置一下。2、关闭linux的防火墙3、直接重置网卡。
2024-11-20 08:43:53 775
原创 虚拟机的克隆和免密(hadoop集群03)
一定要注意:此脚本文件,不要在windows进行编辑,否则会报错,全程使用linux进行编辑,原因是windows中的字符集和linux中的不一样。如果我们想在Bigdata01 这台电脑上,查看整个集群的服务启动情况,可以使用这个脚本文件。能否实现,在bigdata01上输入一个命令,直接出三台服务器上的所有正在运行的jps。可以一个命令下去,分发所有的Linux服务器,不用一个个的长拷贝了。所有的自定义的脚本文件,存放在/usr/local/bin 下面。需要在所有的分发的电脑上安装 rsync。
2024-11-20 08:42:17 312
原创 Linux设置以及软件的安装(hadoop集群安装02)
快照就是将来可以恢复,以及可以clone(克隆) 的基础,记得先关机, 再克隆。因为我们想将来操作某台服务器,不想通过IP操作,想通过用户名操作。1、创建一个文件夹,用于存放安装包 /opt/modules。假如检查了IP,发现没IP,也没有虚拟网卡,怎么办?点击虚拟机的编辑界面,点击【虚拟网络编辑器】,进入后,将你的hostname 跟 IP 进行一个对应。将软件解压到/opt/installs。思考:为什么号段是从128开始的呢?6、刷新配置文件,让配置文件生效。7、验证配置是否生效。
2024-11-20 08:39:59 509
java程序员上班那些事
2010-03-11
关于手机开发的一些想法
2011-01-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人