热存储关联:利用Flink的RichAsyncFunction读取外部存储的数据到缓存中,我们在关联维度表时先去查询缓存,如果缓存中不存在这条数据,就利用客户端去查询外部存储,然后插入到缓存中, 可以使用 Guava 库提供的 CacheBuilder 来创建缓存。
业务计算中,我们经常会遇到使用Flink实时计算UV的问题,比如计算一天的实时UV,或者每个小时的UV。应为UV是需要去重的,再大数据量的情况下,如何使用Flink进行高效的UV统计呢#比如计算一天实时UV
对于Flink,Spark在Yarn上提交的LongTime Job(比如一个批处理作业要运行几个小时或者本身就是实时作业),其作业的运行日志我们不能等到作业结束后,通过Yarn日志聚合后查看,我们希望作业提交后就能够马上看到运行日志( 这里注意,你的作业被调度到集群的各个计算节点中,比如你的集群有100个节点,你的作业可能被调度到几十个个节点中),如何能够实时方面的查看所有节点产生的日志呢?
高可用的集群中namenode宕机了,怎么恢复的?数据如何转移?首先进入安全模式: hdfs dfsadmin -safemode enter然后刷一下active节点的log到image hdfs dfsadmin -saveNamespace然后将active节点的image文件全部拷贝到故障节点的相应目录下
- 数据类型和序列化 Flink支持java、scala基本数据类型,以及java Tuples、scala Case Class、Flink Value,对于这些数据类型,flink会采用自身的序列化反序列化器去做序列化操作,对于其他数据类型,flink会采用kyro方式序列化,kyro序列化方式效率会比flink自带的方式低很多。因此在数据序列化方面我们可以做如下工作