构建大数据环境的目的
如果数据量生成非常快,且非常多,而又需要对这些数据进行实时的处理,那么就需要用一些工具进行自动化的操作
flume用于实时高效的数据收集,通过source组件监听和收集某个目录下日志的生成,然后缓存到channel,通过sink指定kafka的topic将数据发给kafka
kafka是一个分布式消息订阅系统,组件会注册到zookeeper,在将flume的数据存到topic之后,会实时将数据推送给消息订阅者,这里是spark
spark用于接收kafka传过来的消息,并进行实时处理,语言使用的是scala,处理后的数据可以存到数据库也可以存到HDFS
RDD是弹性分布式数据集(Resilient Distributed Datasets),可由spark从scala的集合、本地或HDFS的文件、transform创建。因为其分布式特性,一份数据可以拆开放在多台服务器,形成多个分区,一个计算任务调用一个分区的数据,并支持将任务分配给数据所在的服务器。数据在tranform的时候只记录变换的过程,也就是惰性执行,只有在action即计算的时候才会将数据进行处理。多个计算任务可能执行的是相同的处理,所以会有不必要的计算,这样就可以将计算结果cache到内存或者persist到内存、磁盘或二者都有。RDD的数据集生成后就是只读的,所以RDD的多次transform就会有多次依赖关系,从而形成了lineage(血缘)。
因为RDD只是一堆数据,当有了DataFrame之后,就相当于给RDD定义了表头,RDD数据成为了一张数据表。效率更高,代码更简洁,且SQL操作能被自动优化引擎优化。DataFrame也是分布式数据集,可从结构化的数据文件,Hive中的表,外部数据库和已存在的RDD得到数据。
spark streaming可以从kafka, flume, Tcp socket近实时的接收数据,并实时处理。整个数据流被定义为离散流(DStream).以时间片为单位,一个时间片内的流数据叫做批数据(batch data),两个批数据的间隔是批处理时间间隔(batch interval),即一个时间片,底层是RDD。一个窗口长度(window length)可包含多个批数据,也就有多个批处理时间间隔,而滑动间隔(slide interval)就是一个窗口到另一个窗口的的时间间隔。接收数据之后先transformation,在output
常用端口
1 | hadoop: |
- 本文标题:大数据中日志分析——5、日志分析总结
- 创建时间:2022-03-08 10:34:26
- 本文链接:https://blog.212490197.xyz/article/program/bigdata/log-analysis-summary/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!