小白爱AI
个人博客网站 https://rabbitai.cn 文章同步发布
Mr_Hagrid
这个作者很懒,什么都没留下…
展开
-
用户活跃度标签建模
应用场景期望根据客户近3个月的登录行为和发帖更新贴行为,评估客户的活跃度,将活跃度分为多个等级,以根据不同的活跃等级开展不同的营销活动。基本思路1、采用聚类算法,特征值取最近3个月每周(一周取7天)登录次数,每周发帖次数,每周更新贴次数,按周展开列,共12周*3=36个特征值,对每个特征值按照时间周期做降权处理。借鉴牛顿温度冷却定律:本期温度=上期温度 * exp(-(冷却系数)*间隔的周期数)特征值考虑时间周期作降权处理。假设,第12周的一次登录,在今日的权重变为0.05(暂定),则,冷却系数原创 2020-06-08 17:36:17 · 2761 阅读 · 1 评论 -
Spark 为啥比 MapReduce 快?
Spark 为啥比 MapReduce 快?DAG优化 和 内存(1) 算子灵活性:MR只支持Map和Reduce 两种操作,而Spark有丰富的算子。(2) Map 中间结果写磁盘,Reduce 写HDFS,多个MR之间通过HDFS交换数据。(3) DAG引擎,先划分为Stage,Stage之间才Shuffle落盘,Stage之内,都可以内存处理。(4) spark 中的rdd数据可以缓存到内存中,充分使用内存,多次使用,减少IO。进程和线程(1) MR的任务调度和启动都是进程级别的,每个进原创 2020-06-06 16:16:24 · 962 阅读 · 0 评论 -
Hive SQL 优化
要想做好hive优化,首先要理解MR过程,HiveSQL转换为MR的过程,以及Hive表的分区分桶机制。本质上的优化是,减少读,避免shuffle 和 增加并发度。优化的手段:跳过不必要的读减少Shuffle读延迟问题数据倾斜Partition、Bucket 使用 Skew(hive对声明了Skew的列会单独使用文件存储,并且在资源分配上有优待)MapJoin(Broadcast Join),避免ReduceJoin增加热数据备份数对于倾斜部分单独拿出来,做Map Joi原创 2020-06-04 14:44:12 · 1441 阅读 · 0 评论 -
Spark Streaming
资料:Spark精品教程Spark Streaming通过JDBC操作数据库Spark Streaming的基本原理以时间为单位(通常在0.5到2秒之间\color{red}通常在0.5到2秒之间通常在0.5到2秒之间)切分为微型RDD,然后进行微批处理。spark streaming $\color{red}无法实现毫秒级别 $的响应,因为他的微批处理的特性,使得它每一段数据的处理都会经历Spark DAG,任务调度等过程,需要一定的开销。因此可以认为spark streaming实现的是准实时原创 2020-06-03 11:13:14 · 220 阅读 · 0 评论 -
Flink Windows 多流 Join 和 SQL Join
Flink Windows Join 都是 Inner Join两个流join时,先做join操作,形成JoinedStream,然后再指定Window,最后接着join后的transform操作。案例:inputStream1:DataStream[(Long,String,Int)] = ...inputStream2:DataStream[(String,Long,Int)] = ...//通过DataStream Join方法将两个数据流关联inputStream1.join(input原创 2020-06-03 11:11:42 · 3555 阅读 · 0 评论 -
Flink 状态管理
有状态计算是指在程序计算过程中,在Flink程序内部存储计算产生的中间结果,并提供给后续Function或者算子计算结果使用。状态数据可以维系在本地存储中(Flink的堆内存或者堆外存),也可以借助第三方的存储,例如Flink已经实现的RocksDB,或者自定义其他存储。state 可以理解为Flink上下文中可以access的一个内存数据库(相比于无状态计算,需要实现同样功能需要借助外部数据库,如Redis),通过存取更新状态,从而实现有状态地算子运算。案例:用户想实现CEP(复杂事件处理),获原创 2020-06-03 11:10:54 · 388 阅读 · 0 评论 -
Flink 时间概念与 WaterMark
Flink 时间概念与 WaterMarkFlink中的时间分为三种事件时间:Event Time接入时间:Ingestion Time处理时间:Processing Time[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v5oglSmm-1591153494979)(http://cdn.rabbitai.cn/flink/flink_time/01.png)]时间指定语法:env.setStreamTimeCharacteristic(TimeCharact原创 2020-06-03 11:05:40 · 184 阅读 · 0 评论 -
Flink Window 机制
Flink 流的处理过程stream.keyBy(...) // 是否制定分组.window(...) 或者 .windowAll() // 指定窗口的种类,如果不分组,则指定为windowAll.trigger(...) // 指定触发器的类型,可选.evictor(...) // 指定剔除器,可选.allowedLateness(...) // 指定是否延迟处理数据,可选.sideOutputLateDate(...) // 指定OutPut Lag ,可选.reduce/aggregat原创 2020-06-03 11:02:57 · 314 阅读 · 0 评论 -
Flink Exactly Once
Flink Exactly OnceFlink Exactly Once 语意是基于Chandy-Lamport这个算法的思想的改进版,引入了barrier,可以在不停止整个流处理系统的前提下,保存和恢复每个subtask的snapshot,让每个节点独立地做状态保存和恢复。Chandy-Lamport 算法Initiating a snapshot: 也就是开始创建 snapshot,可以由系统中的任意一个进程发起Propagating a snapshot: 系统中其他进程开始逐个创建 sna原创 2020-06-03 11:01:24 · 217 阅读 · 0 评论 -
Flink DataStream API 介绍
DataStream 编程模型DataSource模块负责数据接入内置数据源:文件数据源readTextFile/readFile(InputFormat),Socket端口socketTextStream,集合数据源 fromElements第三方数据源:仅支持读取:Netty仅支持输出:ElasticSearch,HDFS支持读取和输出:Kafaka,RabbitMQ用户自定义数据源连接器Transformation模块负责数据集的各种转换操作单SingleDataSt原创 2020-06-03 10:59:11 · 303 阅读 · 0 评论 -
Flink基本概念和编程模型
数据分类有界数据,无界数据,其实没有必要,分为流数据和静态数据还差不多。Flink 编程接口高级语言:SQL声明式API Table API核心API DataStream/DateSet API低级构建模块 Stateful Stream ProcessingFlink程序结构第一步是获取ENV,StreamExecutionEnvironment是流式环境,而ExecutionEnvironment是批处理环境。有三种获取env的方式,以StreamExecutionEnvironme原创 2020-06-03 10:58:17 · 211 阅读 · 0 评论 -
一文搞懂网络协议
整个计算机和互联网行业,都是建立在数据化和网络传输基础之上的,因此,理解网络传输的模型对于一个计算机人才是十分必要的。TCP/IP 协议簇是网络协议中的事实标准TCP/IP 协议簇从下到上分为: 网络接口层:定义了物理接口和之上的驱动程序。 网络互联层:定义了IP和路由协议。 传输层:TCP、UDP,定义了线程端口级别的数据交换协议。 应用层:HTTP等,定义了不同问题下的解决方案。可以简单记忆为:WLan =》IP =》TCP =》HTTPTCP的三次握手t原创 2020-06-03 10:57:23 · 445 阅读 · 0 评论 -
Druid为啥这么好用?
一、Druid设计原则(1)快速查询能力:部分数据聚合(Partial Aggregate) + 内存化(In-Memory)+索引(Index)(2)水平扩展能力:分布式查询(Distributed Data) + 并行化查询(Parallelizable Query)(3)实时分析能力:不可变的过去(Immutable Past),只追加的未来(Append-Only Future)。部分聚合:Partial AggregateDruid默认会对明细数据按最明细的全维度组合,以及指标,进行预先原创 2020-06-03 10:55:21 · 1164 阅读 · 0 评论