![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据
文章平均质量分 79
ambitfly
这个作者很懒,什么都没留下…
展开
-
Hive自定义UDF,UDTF函数
(1) 自定义UDF:继承UDF,重写 evaluate 方法(2) 自定义 UDTF:继承自 GenericUDTF,重写 3 个方法:initialize(自定义输出的列名和类型),process(将结果返回 forward(result)),close打包=》上传集群路径=》在hive客户端注册为什么要自定义UDF/UDTF?因为自定义函数,可以自己埋点 Log 打印日志,出错或者数据异常,方便调试。依赖以及打jar包插件配置原创 2023-05-23 15:29:55 · 844 阅读 · 0 评论 -
基于 Flink SQL 构建流批一体的 ETL 数据集成
数据仓库是一个集成的(Integrated),面向主题的(Subject Oriented),随时间变化的(Time-Variant),不可修改的(Nonvolatile)数据集合,用于支持管理决策。这是数据仓库之父 Bill Inmon 在 1990 年提出的数据仓库概念。该概念里最重要的一点就是“集成的”,其余特性都是一些方法论的东西。因为数据仓库首先要解决的问题,就是数据集成,就是将多个分散的、异构的数据源整合在一起,消除数据孤岛,便于后续的分析。转载 2023-03-21 09:40:34 · 586 阅读 · 0 评论 -
Zeppelin整合Spark3.2.2 yarnClient模式
命令如下:cp zeppelin-site.xml.template zeppelin-site.xml。同理,拷贝zeppelin-env.sh.template并改名为zeppelin-env.sh。先把zeppelin-site.xml.template拷贝一份防止修改错误没有副本了。HADOOP_CONF_DIR为hadoop的环境变量HADOOP_CONF_DIR。zeppelin.server.port 指定对应的端口号,这里为8089。SPARK_MASTER 为spark的提交模式。原创 2023-02-08 17:46:23 · 537 阅读 · 0 评论 -
ClickHouse日期相关操作
6.获取上一年的本月的最后一天。5.获取上一年的本月的第一天。8.获取上个月的最后一天。2.获取本周的最后一天。4.获取本月的最后一天。7.获取上个月的第一天。1.获取本周的第一天。3.获取本月的第一天。原创 2023-01-16 16:28:49 · 4083 阅读 · 0 评论 -
flink源码解读启动类CliFrontend
flink源码 CliFrontend原创 2023-01-02 21:44:34 · 527 阅读 · 0 评论 -
MongoDB实时同步方案
MongoShake是一个以golang语言进行编写的通用的平台型服务,通过读取MongoDB集群的Oplog操作日志,对MongoDB的数据进行复制,后续通过操作日志实现特定需求。日志可以提供很多场景化的应用,为此,我们在设计时就考虑了把MongoShake做成通用的平台型服务。通过操作日志,我们提供日志数据订阅消费PUB/SUB功能,可通过SDK、Kafka、MetaQ等方式灵活对接以适应不同场景(如日志订阅、数据中心同步、Cache异步淘汰等)。原创 2022-11-13 23:27:56 · 3909 阅读 · 1 评论 -
Flink 基本合流操作
App 的支付信息到达以后,会检查对应的第三方支付信息是否已经先到达(先到达会保存在对 应的状态变量中),如果已经到达了,那么对账成功,直接输出对账成功的信息,并将保存第 三方支付消息的状态变量清空。当定时器触发时,检查保存 app 支付信息的状态变量是否还在,如果还在,说明对应的第三方支付信息没有到来,所以输出报警信息。对于连接流 ConnectedStreams 的处理操作,需要分别定义对两条流的处理转换,因此接口中就会有两个相同的方法需要实现,用数字“1”“2”区分,在两条流中的数据到来时分别调用。原创 2022-10-24 09:09:01 · 458 阅读 · 0 评论 -
flink定时器(Timer)
定时器 默认的区分精度是毫秒。由于定时器只能在 KeyedStream 上使用,所以到了 KeyedProcessFunction 这里,我们 才真正对时间有了精细的控制,定时方法.onTimer()才真正派上了用场。所以我们会看到,程序运行后先在控制台输出“数据到达”的信息,等待 10 秒之后, 又会输出“定时器触发”的信息,打印出的时间间隔正是 10 秒。基于 KeyedStream 注册定时器时,会传入一个定时器触发的时间戳,这个时间戳的定时器对于每个 key 都是有效的。原创 2022-10-17 09:36:58 · 5770 阅读 · 7 评论 -
Flink 检查点(Checkpoint)
发生故障之后怎么办?最简单的想法当然是重启机器、重启应用。这里的问题在于,流处理应用中的任务都是有状态的,而为了快速访问这些状态一般会直接放在堆内存里;现在重启应用,内存中的状态已经丢失,就意味着之前的计算全部白费了,需要从头来过。就像编写文档或是玩 RPG 游戏,因为宕机没保存而要重来一遍是一件令人崩溃的事情;所以就有了存档,这样即使遇到宕机也可以读档继续了。 在流处理中,我们同样可以用存档读档的思路,把之前的计算结果做个保存,这样重启之后就可以继续处理新数据、而不需要重新计算了。进一步地,我们原创 2022-09-16 10:25:52 · 3044 阅读 · 1 评论 -
JVM 堆
而很多对象都是朝生夕死的,如果分代的话,把新创建的对象放到某一地方,当GC的时候先把这块存储“朝生夕死”对象的区域进行回收,这样就会腾出很大的空间出来。如果再次触发垃圾回收,会对伊甸园区和幸存者0区的对象进行垃圾回收,此时幸存者0区还幸存的对象会放在幸存者1区,下次再进行垃圾回收会回收对伊甸园区和幸存者1区的对象,把还幸存的对象放到幸存者0区,循环往复(谁空谁是to)5.由Eden区、s0区向s1区复制时,对象大小大于s1区的可用内存,则把该对象转移到老年代,并且老年代的可用内存小于该对象的大小。原创 2022-09-12 22:48:26 · 263 阅读 · 0 评论 -
Flink SQL(四) 连接到外部系统Elasticsearch和HBase
Elasticsearch连接器的使用与JDBC连接器非常相似,写入数据的模式同样是由创建表的DDL中是否有主键定义决定的。除了所有ROW类型的字段(对应着HBase中的family),表中还应有一个原子类型的字段,它就会被识别为HBase的rowkey。在表中这个字段可以任意取名,不一定非要叫rowkey。我们将另一张T中的数据提取出来,并用ROW()函数来构造出对应的columnfamily,最终写入HBase中名为mytable的表。...原创 2022-07-31 21:57:09 · 951 阅读 · 0 评论 -
Flink Sql(二) Kafka连接器
如果作为TableSource,连接器会将读取到的topic中的数据(key,value),解释为对当前key的数据值的更新(UPDATE),也就是查找动态表中key对应的一行数据,将value更新为最新的值;需要特别说明的是,在KafkaTable的字段中有一个ts,它的声明中用到了METADATAFROM,这是表示一个“元数据列”(metadatacolumn),它是由Kafka连接器的元数据“timestamp”生成的。下面我们就分别进行介绍。...原创 2022-07-17 20:01:12 · 4579 阅读 · 0 评论 -
Flink Sql (一)
对于 Flink 这样的流处理框架来说,数据流和表在结构上还是有所区别的。所以使用 TableAPI 和 SQL 需要一个特别的运行时环境,这就是所谓的“表环境”(TableEnvironment)。它主要负责:(1)注册 Catalog 和表;(2)执行 SQL 查询;(3)注册用户自定义函数(UDF);(4)DataStream 和表之间的转换。 这里的 Catalog 就是“目录”,与标准 SQL 中的概念是一致的,主要用来管理所有数据库(database)和表(table)的元数据(met原创 2022-07-10 20:49:24 · 1398 阅读 · 0 评论 -
InLong介绍
Manager功能Manager 数据流Agent采集插件化用户可以根据自己的使用场景快速开发新的采集插件 本地缓存层DataProxy功能DataProxy工作流程Sort分拣执行流程Sort 插件原创 2022-07-03 20:43:14 · 2249 阅读 · 0 评论 -
Flink部署模式
会话模式(Session Mode)单作业模式(Per-Job Mode)应用模式(Application Mode) 我们需要先启动一个集群,保持一个会话,在这个会话中通过客户端提交作业。这样的好处很明显,我们只需要一个集群,就像一个大箱子,所有的作业提交之后都塞进去;集群的生命周期是超越于作业之上的,铁打的营盘流水的兵,作业结束了就释放资源,集群依然正常运行。当然缺点也是显而易见的:因为资源是共享的,所以资源不够了,提交新的 作业就会失败。另外,同一个 TaskManager 上可能运行了很多作业,原创 2022-06-27 01:22:57 · 438 阅读 · 0 评论 -
第二次提交Flink作业报No suitable driver found for jdbc
这个BUG是这样的,在flink集群测试(session mode)实时把pulsar的数据写入TDengine的时候,第一次提交任务可以运行成功,然后把任务cancel掉后,再次启动就会报No suitable driver found for jdbc:TAOS://hadoop001:6030?user=root&password=taosdata错误,导致任务提交失败,后续提交任务都会失败,报同样的错误。windows本地环境和linux本地环境都没有问题。一开始思考问题的方向是:在一个个都验证过之原创 2022-06-19 18:28:15 · 2042 阅读 · 3 评论 -
电商数据仓库项目总结
数据采集:Flume,Kafka,Datax数据存储:Mysql,HDFS数据计算:Hive,Saprk任务调度:DolphinScheduler数据可视化:Superset高可用:Zookeeper别克商城分PC、WAP、微信小程序埋点PC、WAP为自动埋点 微信小程序为手动埋点浏览(页面加载的时候)点击(点击页面某个点位)停留(近入下一个页面或者离开当前页面时在当前页面的停留时间)曝光 (开屏、轮播等显示日志) 用来算 CTR(Click-Through-Rate) 点击通过率留资、订单关联 (在原创 2022-06-16 23:23:38 · 4273 阅读 · 0 评论 -
Java Pulsar Clinet 和 Flink Pulsar Connector 示例
Pulsar Java ClientMaven依赖 <dependency> <groupId>org.apache.pulsar</groupId> <artifactId>pulsar-client-all</artifactId> <version>2.8.1</version> </dependency>租户操作public class CreateNamespa原创 2022-05-30 00:50:25 · 881 阅读 · 3 评论 -
yarn的提交流程和spark在yarn的提交流程
yarn的提交流程1.用户向 YARN 提交一个应用程序,向RM申请启动ApplicationMaster,RM 为这个应用程序分配第一个 Container,并与之对应的 NM 通讯,要求 它在这个 Container 中启动应用程序 ApplicationMaster。2.ApplicationMaster 向 RM 注册,然后拆分为内部各个子任务,AM 采用轮询的方式向 RM 申请和领取资源。3.RM 为 AM 分配资源,以 Container 形式返回。4.AM 申请到资源后,便与之对原创 2022-04-21 01:17:04 · 2183 阅读 · 0 评论 -
OneData指标体系
指标体系架构名词术语数据域:指面向业务分析,将业务过程或者维度进行抽象的集合。其中,业务过程可以概括为一个个不可拆分的行为事件,在业务过程之下,可以定义指标;维度是指度量的环境,如买家下单事件,买家是维度。为保障整个体系的生命力,数据域是需要抽象提炼,并且长期维护和更新的,但不轻易变动。在划分数据域时,既能涵盖当前所有的业务需求,又能在新业务进入时无影响地被包含进已有的数据域中和扩展新的数据域。业务过程:指企业的业务活动事件,如下单、支付、退款都是业务过程。 请注意,业务过程是一个不可拆分的行为时间原创 2022-03-16 01:09:02 · 1208 阅读 · 0 评论 -
写map-reduce,两份数据,一份是设备id+用户id,一份是设备id+点击的广告+点击时间,找出每个用户id每天3条最新的广告点击记录
题目写map-reduce,两份数据,一份是设备id+用户id,一份是设备id+点击的广告+点击时间,找出每个用户id每天3条最新的广告点击记录文件1:diviceid,userid文件2:diviceid,adname,cdate设定一个用户id有多个设备id,一个设备id不能有多个用户id思考由于要用diviceid join 然后对userid 排序,所以要进行两次map-reduce第一次map-reduce对diviceid join 得到 userid,adname,cdate第原创 2022-03-15 02:58:07 · 671 阅读 · 0 评论 -
Spark Shuffle
Spark Shuffle Shuffle描述着数据从map task输出到reduce task输入的这段过程。Spark的数据模型是RDD,弹性分布式数据集,这些RDD是一个逻辑概念,一个RDD一般包含多个分区,数据在不同分区的节点上,算子作用在RDD的分区上。父RDD和子RDD构成了一个数据依赖关系,为了更好的建立映射关系,把这些依赖关系分为窄依赖和宽依赖。窄依赖父RDD和子RDD的分区之间的数据为全部依赖,不存在子RDD要父RDD一个分区一部分的数据。宽依赖父RDD和子RDD的分区之间的数据为部原创 2022-03-14 01:14:15 · 3700 阅读 · 0 评论 -
只有时间戳时求平均停留时长的思路
在出数据时,有一个需求是求平均停留时长的,但现有的埋点只记录了用户访问访问和点击数据,没有登入登出记录。最开始的计算方法只是很粗暴的。就是把用户按天分组,计算一个用户一天内第一次访问记录和最后一次访问记录时间差,然后过滤掉不合理的数据,按天求平均值。这种方法是不合理的,只要用户登录两次以上并且中间间隔比较大,就会被过滤掉。 sql如下select sum(diff)/count(cookie)from(select day,timestamp,cookie,(m...原创 2021-06-25 12:22:14 · 913 阅读 · 0 评论 -
Linux高级命令总结
文章目录1. scp传输文件2. 查看当前目录文件大小3. 查看当前目录大于1G的文件4. 查看进程5. 查看端口号6. 关掉xxx进程,不知其端口号7. 查看进程情况8. 查找文件9. 后台执行10. 查看进程树11. 查询守护进程12. 恢复对应守护进程13. 修改文件执行权限14. 监控文件15. 终止进程16. 使当前阻塞进程变成守护进程17. 以对应用户(hive)执行xxx命令18. 关机和重启19. VIM命令1. scp传输文件scp -r ip:pwd2. 查看当前目录文件大小du原创 2021-03-07 22:31:00 · 157 阅读 · 0 评论 -
Hadoop草稿
入门简要描述如何安装配置apache的一个开源Hadoop,只描述即可,无需列出具体步骤,列出具体步骤更好。1)使用root账户登录。2)修改IP。3)修改host主机名。4)配置SSH免密码登录。5)关闭防火墙。6)安装JDKs7)解压hadoop安装包8)配置hadoop的核心文件hadoop-env.sh, core-site.xml , mapred-site.xml9)配置hadoop环境变量。10)格式化hadoop namenode-format11)启动节点start原创 2021-03-03 00:21:21 · 253 阅读 · 0 评论 -
Zookeeper总结
文章目录Zookeeper 文件系统服务器角色Zookeeper 下 Server 工作状态常用命令Zookeeper的选举机制Zookeeper怎么避免脑裂,什么是脑裂Zookeeper的HA原理讲一讲什么是CAP法则?Zookeeper符合了这个法则的哪两个?Zookeeper集群是如何做到数据的最终一致性的?zookeeper 是如何保证事务的顺序一致性的?ZAB 协议四种类型的数据节点 ZnodeZookeeper Watcher 机制 -- 数据变更通知zk 节点宕机如何处理?Zookeeper原创 2021-02-27 23:42:30 · 174 阅读 · 0 评论 -
Redis总结
文章目录Redis特点数据类型Redis的应用场景计数器缓存数据冷热交换去重持久化RDBAOFRedis的过期键的删除策略事务管理(ACID)概述哨兵模式Redis常用命令StringHashListSetRedis槽Redis实现分布式锁1、加锁2、解锁缓存穿透、缓存雪崩、缓存击穿Redis特点读写性能优异支持数据持久化,支持AOF和RDB两种持久化方式。支持事务,Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。数据结构丰富,除了支持string类型的val原创 2021-02-27 21:38:05 · 101 阅读 · 0 评论 -
Spark总结(SparkCore,SparkSQL,SparkStreaming)
SparkCore1.一句话介绍Hadoop 和 Spark spark是基于内存的分布式计算框架。 hadoop是一个分布式计算开源框架,包含分布式文件系统HDFS、 MapReduce分布式计算的软件架构和Yarn资源管理调度系统。2.Spark和MR的区别1.MR是基于磁盘迭代处理数据,Spark是基于内存处理数据2.Spark有DAG有向无环图做优化3.MR是细粒度资源申请,application执行慢,spark是粗粒度资源申请,application执行快4.MR没有SQL,原创 2021-02-26 21:35:10 · 875 阅读 · 0 评论 -
Hive小结
文章目录Hive什么是hivehive架构Hive DDL**创建内部表****创建外部表****创建分区表**修复分区hive开启远程服务命令hive动态分区Hive 分桶内部表和外部表的区别4个By的区别系统函数cube维度查询自定义UDF,UDTF函数窗口函数Hive优化MapJoin行列过滤采用分区技术开启map端combiner(不影响最终业务逻辑)小文件如何产生的?开启JVM重用压缩(选择快的)Hive什么是hive Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映原创 2021-02-24 16:43:50 · 152 阅读 · 0 评论