- 博客(40)
- 收藏
- 关注
原创 kafka学习-02
可以理解为分配的结果带有“粘性的”。即在执行一次新的分配之前, 考虑上一次分配的结果,尽量少的调整分配的变动,可以节省大量的开销。粘性分区是 Kafka 从 0.11.x 版本开始引入这种分配策略,首先会尽量均衡的放置分区 到消费者上面,在出现同一消费者组内消费者出现问题的时候,会尽量保持原有分配的分区不变化。
2024-11-25 19:02:14
1508
原创 kafka学习-01
需求,如果输入字符中含有bigdata,就存入0分区,没有就存入1分区首先先创建一个自定义分区类CustomPartitionerMy:在里面实现Partitioner ,在partition写我们需要的代码需求@Override// 如果输入字符中含有bigdata,就存入0分区,没有就存入1分区// 判断一个字符串是否包含另一个字符串return 0;return 1;
2024-11-25 18:56:25
1311
原创 Java高频面试题-1
长度大小:byte(1字节8位),short(2字节),char(2字节)—> int(4字节)—> float(4字节)—> long(8字节)—> double(8字节) boolean只表示逻辑值(true,false)八大数据基本类型:int char float double boolean byte short long。Collections工具类提供的内容,解决线程安全问题。获取返回值: 一个是run方法,一个是call方法。
2024-11-21 20:14:10
557
原创 Datasets is not supported in Complete output mode, only in Append output mode
我们在使用pyspark,使用structureStreaming实时流的时候,创建出来的dataframe是流式的,不同于静态的df,流式的df使用的时候,不能用show()直接打印,而且使用sparkSQL的时候不可以在sql中使用开窗函数,并且还不可以使用join进行表关联。执行以下代码会报错,因为在sql中使用了join进行表关联,而在流式的df中是不支持的。这种sql也是不可以的,因为使用了开窗函数,也会报错。只能够这样写,但是还有一点问题,并不完全正确。
2024-11-18 19:55:44
532
原创 kafka中topic的数据抽取不到hdfs上问题解决
将json文件抽取到kafka的消息队列(topic)中,再从topic中将数据抽取到hdfs。我们在从kafka中topic的数据抽到hdfs上的时候会出现 flume不报错,但也不抽取的情况。其实这个也很简单,只需要在 /root/.flume下删除如图文件即可。就卡在页面不动,hdfs上自然也没有数据产生。再次执行flume命令就可以抽取成功了。
2024-11-14 10:41:08
917
原创 kafka:使用flume自定义拦截器,将json文件抽取到kafka的消息队列(topic)中,再从topic中将数据抽取到hdfs上
使用自定义拦截器# type指的是编写java代码所在目录的路径名(我的是在com.bigdata.zidingyi下)# 修改sink为kafka执行之前,先在kafka中创建消息队列(topic)中创建一个topic :zidingyi 数据将会导入到这个topic中创建好后执行conf文件即可可以使用把主题中所有的数据都读取出来(包括历史数据)并且还可以接收来自生产者的新数据。
2024-11-14 10:35:57
1222
1
原创 spark的学习-06
方式一:给定读取数据源的类型和地址方式二:直接调用对应数据源类型的方法特殊参数:option,用于指定读取时的一些配置选项。
2024-11-11 18:17:46
1065
原创 spark的学习-05
结构化数据与非结构化数据结构化数据就类似于excel表中的数据(统计的都是结构化的数据)一般都使用sparkSql处理结构化的数据结构化的文件:JSON、CSV【以逗号分隔】、TSV【以制表符分隔】、parquet、orc结构化的表:数据库中表的数据:MySQL、Oracle、Hive我们在sparkcore中导入数据使用的是textFile,而在sparksql中怎么导入数据呢使用的是DataFrame进行数据的导入。
2024-11-11 18:12:43
1123
原创 spark的学习-04
Broadcast Variables广播变量广播变量本质是一种优化手段,不做也是可以的,做了可以提高性能在使用两张表进行join的时候,将小表进行广播,再与大表中进行join,避免了shuffle过程,提高效率广播变量是一个只读变量,只能取不能更改。
2024-11-11 18:09:07
1401
原创 sql练习专场-02
2)表字段:专利号(patent_id)、专利名称(patent_name)、专利类型(patent_type)、申请时间。(aplly_date)、授权时间(authorize_date)、申请人(apply_users)3)说明:同一个专利,可以有1到多个申请人,多人之间按分号隔开。本表记录数约1万条。4)请写出hive查询语句,各类型专利top 10申请人,以及对应的专利申请数。1)表名:t_patent_detail (专利明细表)
2024-11-07 20:25:00
457
原创 Spark的学习-02
当有任务进行中的时候,就可以启动4040端口,若此任务并没有执行完毕,集群中又启动了新的端口,就会再启动一个4041端口.....可以一直累加下去。注意:我们前面已经将spark的软连接链接到了 standalone(集群)上,所以需要先把之前的软连接删除掉,重现创建新的,指向本地。此处运行的程序,其实就是4040端口中正在执行的进程,当这个正在running的任务结束后,显示执行完成时,4040端口就打不开了。所以我们在本地模式的时候,是无法启动8080端口的,只能启动4040。
2024-11-06 19:54:51
841
原创 Spark的学习-01
我们使用Spark主要是用于做离线数仓,虽然Spark也可以做实时的,但是我们基本不用实时数仓使用的是flinkspark分为5个模式,本地模式 (local)standlone模式Yarn模式 (工作中常用)
2024-10-31 18:40:52
727
原创 大数据面试题小汇总
管理工具,严格来说,不是数据库,本身是不存储数据和处理数据的,其依赖于HDFS存储数据,依赖于MapReducer进行数据处理 既可以计算又可以储存 hive中的计算是由mapreduce任务运行的,执行较慢,不适合做实时。namenode:负责hdfs集群的管理,管理其他的datanode节点,记录各个块的信息,处理客户端的请求,数据存放在内存中。2.Hive本身不存储和计算数据,它完全依赖于HDFS存储数据和MapReduce处理数据,Hive中的表纯逻辑。
2024-10-31 18:36:16
715
原创 mysql中redolog、binlog
存储引擎是 MySQL 中直接与磁盘交互部分。也是存储引擎读写数据的最小单位,一个页里可以有一条或多条表记录。MySQL 中的存储引擎有很多种,比如 InnoDB、MyISAM、Memory 等。其中最常用的是 InnoDB。而 InnoDB 是 MySQL 中唯一能够完整支持事务特性的存储引擎,也是一个高性能的存储引擎。两段式提交」就发生在 InnoDB 中。缓冲池首先,关系型数据库是基于磁盘的,而非关系型数据库是基于内存的。
2024-10-30 14:14:35
1316
1
原创 FineBi FCA 试题 答案2
4 .模板页面已经引用数据集ds1的字段内容,后面将ds1名字改成ds2,模板主体内容会自动变成引用ds2 B。15.有时我们希望将模板发送给别人修改,导出模板时需要附带导出内置数据,导出时其实是作为两个文件存在的 B。17、finebi可以将finereport制作的报表挂出,并且可以集成到finebi制作的仪表板中 A。10、模板单元格中,右侧上方有紫色三角形,表示设置了自定义显示 A。14.以下哪个不属于模板单元格的扩展方向 A。
2024-10-13 21:50:46
617
原创 FastGPT的使用
可以通过这里的导入导入我们需要的数据,其中可以导入ppt、word文档、excel表格等,包括网页的链接或者外部的知识库。以上是一个最简单的案例、我们还可以通过网页链接、word文档等,将自己的模型训练成我们需要的样子。我们可以新建一个知识库,并且可以不断的喂养它,使得它变成我们需要的GPT大模型的样子。这里就显示出来了表格中的内容了,还可以点击引用、上下文查看问答中关于原文档的内容。此时再问他一些关于表格中存在的东西,他就会给你问答出来(之前是只能翻译)这时再点开我们的最开始的那个简易翻译机器人。
2024-09-30 10:47:23
1231
原创 finebi FCA考试认证
组件复用是指在一个仪表板中制作了一个组件,可以重复使用到同一分析主题中另外一个仪表板中,即如果同一个分析中的不同仪表板用到了同一个组件,且其设置过程也一样,那么,为了方便, 可以直接使用组件复用,无需进行重复设置,FineBI是支持同一分析主题中不同仪表板组件复用的。普通用户A做了一张模板,他做的模板想要以公共链接的方式分享出去,那么分享出去的模板数据权限只有普通用户A的数据权限(得分:2分 满分:2分)FineBI的图形形状中的点图、面积图、矩形块图、漏斗图各自适合什么样的数据可视化分析场景,正确的是?
2024-09-29 16:30:32
2500
原创 ERROR:start workflow error,dolphinscheduler log重复刷屏(死循环)直至磁盘存满
在使用ds过后发现,我虚拟机中的磁盘内存全部沾满了查看目录下大于100M的文件:查看后发现问题在于ds产生的日志文件特别大而且多,查看日志后发现日志中一直都在等其中文件下的目录可以直接全部删除:rm -rf ./*运行ds时,为什么磁盘会占用满呢?因为在ds执行的时候你手动关闭了一个任务导致dolphinscheduler log重复刷屏(死循环)直至磁盘存满报错中也会显示 start workflow error等错误。
2024-09-26 17:07:52
781
原创 DS:ERROR tool.ImportTool: Import failed: org.apache.hadoop.mapred.FileAlreadyExistsException错误
当我们使用dolphinscheduler(DS)调度工具,将mysql的数据增量导入至hive中的时候,可能会报出以下错误或这样的错误。
2024-09-26 09:25:00
766
原创 GreenPlum与PostgreSQL数据库
** Greenplum*** 是一款开源数据仓库。基于开源的PostgreSQL改造,主要用来处理大规模数据分析任务,相比Hadoop,Greenplum更适合做大数据的存储、计算和分析引擎它本质上是多个PostgreSQL面向磁盘的数据库实例一起工作形成的一个紧密结合的数据库管理系统(DBMS)。它基于PostgreSQL 9.4开发,其SQL支持、特性、配置选项和最终用户功能在大部分情况下和PostgreSQL非常相似。
2024-09-23 09:31:47
3043
原创 数据仓库建模方法论 :维度模型
粒度定义意味着对各事实表行实际代表的内容给出明确的说明。粒度传递了同事实表度量值相联系的细节所达到的程度方面的信息。它给出了后面这个问题的答案:“如何描述事实表的单个行?粒度定义是不容轻视的至关重要的步骤。在定义粒度时应优先考虑为业务处理获取最有原子性的信息而开发维度模型。原子型数据是所收集的最详细的信息,是高维度结构化的。度量值越细微并具有原子性,就越能够确切地知道更多的事情。原子型数据可为分析方面提供最大限度的灵活性,维度模型的细节性数据是稳如泰山的,并随时准备接受业务用户的特殊攻击。
2024-09-21 11:32:19
1315
原创 数据仓库建模方法论 :ER模型(三范式)
简要说明数据库的三范式1NF --> 字段必须是原子的,不能拆分的,比如5台电脑2NF --> 不能存在部分依赖的情况,比如学生所在的系跟分数没关系,系单独摘出去3NF --> 不能出现传递依赖,学号--> 系名 --> 系主任这种建模方法的出发点是整合数据,其目的是将整个企业的数据进行组合和合并,并进行规范处理,减少数据冗余性,保证数据的一致性。这种模型并不适合直接用于分析统计。
2024-09-21 10:30:23
1037
原创 ZooKeeper 选举机制
ZooKeeper 集群中的选举是为了确保系统的可用性和一致性。在以下情况下,ZooKeeper 需要进行选举:Leader 故障: 当当前的 Leader 出现故障或不可用时,需要选举一个新的 Leader 来接管领导权,以确保系统的正常运行。这种情况下,其他 ZooKeeper 服务器会通过一种选举算法选出新的 Leader。新节点加入: 当新的 ZooKeeper 服务器加入集群时,需要选举一个 Leader 来维护集群的状态和数据一致性。
2024-09-18 15:56:14
1003
原创 数仓工具:datax
datax可以理解为sqoop的优化版,速度比sqoop因为sqoop底层是map任务,而datax底层是基于内存DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能datax 是让你编写 jsonflume 是让你编写 confazkaban 是让你编写 flowsqoop 是让你写命令。
2024-09-12 19:21:25
710
原创 Kettle报错:使用mysql向hive中插入数据只能插入两条的错误
我们在用kettle,使用mysql向hive中插入数据的时候,创建好了一个转换,里面的操作也全部完成了之后,在执行时爆出一下错误例如我这里写入的表输入为:表输出为:看起来是一点问题也没有,但是一执行就会报上述错误,这时只需要在我们的/opt/installs/hive/conf下创建一个 .hiverc文件,在里面写入以下内容即可这时再次运行,即成功!(甚至都不需要重启hiveserver2)还有一个小问题,如果我们表输入的字段里面有date类型的值的时候,我们执行运行kettle的时候也会报一个错
2024-09-12 17:13:55
1410
原创 Kettle 报错Couldn‘t get field info from [SELECT * - “OPTION SQL_SELECT_LIMIT=DEFAULT 问题解决
当我们使用kettle,将mysql表中的数据导入的mysql中( 即 mysql table1------> mysql table2) 的时候点击获取sql查询语句,选择好想要查询的表的时候,
2024-09-11 13:14:52
798
原创 数仓工具:Sqoop
Sqoop 是一个数据库数据导入导出工具Sqoop 即 sql + hadoopSqoop执行时,底层使用的MR中的map,所以输出文件的名字都是part-msqoop底层默认开启4个map任务,所以如果不指定的话就默认有四个文件sqoop分割也不是按照平均分割的,而是根据主键的值,除以 4 份 (默认分割四个文件)根据每一份的跨度进行文件中值的存入Sqoop的。也就是说Sqoop的导入和导出功能是通过基于(只有map)的MapReduce作业实现的。
2024-09-10 21:40:00
1260
原创 海豚调度器DolphinScheduler的安装和使用
跟的Azkaban非常的相似,作用基本相同主要用于数仓项目 是一个分布式、易扩展的可视化DAG工作流任务调度平台DolphinScheduler的主要角色如下:MasterServer采用分布式无中心设计理念,MasterServer主要负责 DAG 任务切分、任务提交、任务监控,并同时监听其它MasterServer和WorkerServer的健康状态。WorkerServer也采用分布式无中心设计理念,WorkerServer主要负责任务的执行和提供日志服务。
2024-09-09 21:11:10
1013
原创 数仓工具之:Flume
处理数据样例:log='{"items":[},}'结果样例:首先, 既然是自定义拦截器,就需要使用java1) 创建maven项目,导入相关jar包--可以使用maven中的某些打包插件,不仅可以帮助我们打包代码还可以打包所依赖的jar包--><build><plugins><plugin>-- 禁止生成 dependency-reduced-pom.xml--><goals></goals>-- 解决包冲突 进行转换--><excludes><filters>
2024-09-07 16:56:58
1119
原创 重新启动MongoDB时,服务启动失败问题(code=exited, status=14)
1、数据存储目录 (dbpath) 的位置,该目录默认在 var/lib/mongo 下,执行如下命令修改目录权限(-R 递归处理所有文件和文件夹)3、最后还有一个文件需要开放用户mongod的写权限,该文件叫*.sock(是通配符)2、再修改日志目录的权限,该文件默认在var/log/mongodb目录,命令如下。问题,用户 mongod 没有对必需文件的写权限,导致数据库服务不能启动。虚拟机重新启动后,发现Mongodb 启动失败问题。这时就可以看到,mongodb可以正常启动了。
2024-09-07 09:45:02
1234
原创 反射和枚举
是指将变量的值一一的列出来,变量的值只限于列举出来的值的范围内。举例:一周只有7天,一年只有12个月等。枚举格式public enum 枚举类名(){枚举项1,枚举项2,枚举项3,枚举4。。。;在枚举类中可以创建成员变量,成员方法,构造方法等,但是创建的这些只能在本类中使用枚举类中创建本类对象时,必须将对象创建放在最前面。
2024-08-29 10:52:14
809
1
原创 Java网络编程
UDP协议是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个Socket只是发送,接收数据的对象,因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器的概念。Java对基于TCP协议的的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。tcp协议:面向连接,安全性高,理论上传输的数据是无上限的,效率较低(相对于UDP来说)socket用于创建数据套接字,发送数据 packet用于创建数据包,将数据存入包内。
2024-08-29 10:42:31
1120
原创 线程中的虚假唤醒
因为if只进行一次判断,假设当+1抢到了资源, 此时的num=1,其他三个线程进行资源抢夺,即使此时+1*抢到了资源,但是判断后,无法进行下面的代码,就沉睡下去,再当+1抢到资源时,就不会再从开始进行if判断了,从而会直接执行下面的++代码,使得num的值变为了2,导致线程不安全的情况,造成了虚假唤醒。扩容时,容量同样会增加为原来的1.5倍,并且所有键值对会重新哈希到新的位置上。中断和虚假唤醒是可能产生的,所以要用loop循环,if只判断一次,while是只要唤醒就要拉回来再判断一次。
2024-08-27 15:57:51
1004
1
原创 线程间的通信
利用多线程实现包子的生产和消费步骤:首先创建一个包子对象,让两个线程中共享同一个包子对象创建生产者线程,生产包子,若生产完包子,就需要唤醒消费者线程,来消费包子,同时当前生产者线程等待创建消费者线程,消费包子,若把包子吃掉了,就需要唤醒生产者线程接着生产包子,当前消费者线程等待注意1 必须使用在synchronized范围内2 必须先唤醒,在等待。
2024-08-27 15:48:42
965
原创 Java 多线程
进程:即正在执行的应用程序线程:程序功能执行的最小单位(代码运行的通道)二者关系:一个进程中包含了多个线程(至少一个)多线程并发: 一个时间段之内,有多个线程执行。多线程并行:(多cpu情况下) 同一时刻有多个线程同时执行。
2024-08-27 14:59:07
750
原创 Java IO 流
此处字符串里的内容为添加的注释 store(write,””)添加注释时使用中文会无法显示(会显示中文的16进制型),所以不要使用中文进行注释其中#后面显示的就为注释的信息将注释更改成非中文时 文件显示如下:Properties中储存的都为键值对的形式,可直接在文件中写入内容书写规范:需要一行一行的书写内容 eg:21=张三22=李四否则读取展示集合中内容时,系统会认为写在一行里的内容是一起的写入不能写成例如 21-hello-hi 形式的 会无法展示想要的信息内容。
2024-08-27 14:17:02
1056
1
将json文件抽取到kafka的消息队列(topic)中,再从topic中将数据抽取到hdfs上中的json数据
2024-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人