pyspark kafka mysql_数据平台实践①——Flume+Kafka+SparkStreaming(pyspark)

蜻蜓点水

Flume——数据采集

如果说,爬虫是采集外部数据的常用手段的话,那么,Flume就是采集内部数据的常用手段之一(logstash也是这方面的佼佼者)。

下面介绍一下Flume的基本构造。

Agent:包含Source、Channel和Sink的主体,它是这3个组件的载体,是组成Flume的数据节点。

Event:Flume 数据传输的基本单元。

Source: 用来接收Event,并将Event批量传给Channel。

Channel:Source和Sink之间的Event缓冲通道,它有个type属性,一般为memory,可以提高传输速度。

Sink:负责将数据沉淀到最终存储区,或沉淀给下一个source,形成数据流。

c2e5c347fe60

Flume

在大致了解了以上要素之后,通过上图,我们就可以有一个大概的认识。一句话讲,Source接收数据,并转成Event单元,然后导入Channel缓冲通道,最后,经由Sink进行数据沉淀。当然这里的沉淀,有多种选择,除了上图中的HDFS外,还包括HBase、File,或者作为另一个Source的源。在一系列过程,一条有序的数据流就诞生了。

Kafka——数据的发布/订阅

Kafka,作为基于发布/订阅的消息系统,以其分布式性而受到大家的喜爱。

下面介绍一下Kafka的基本构造。

Broker(代理): Kafka集群可由一个或多个服务器组成,其中的每个服务节点称作这个集群的一个Broker。

Topic(主题): 一个Topic对应一类消息,Topic用作为消息划分类别。

Partition(分区): 一个Topic一般含有多个分区。

Producer(生产者):消息生产者,负责生产Topic消息。

Consumer(消费者): 消息消费者,负责消费Topic消息。

c2e5c347fe60

Kafka

Zookeeper——服务器间协调

这里需要提一下Zookeeper,对于Kafka这样的分布式服务,大多需要多台服务器相互协调工作,且保持一致性。任意一台服务器出现问题,如果不及时处理,都有可能导致整个服务的崩溃,其后果是不堪设想的。ZooKeeper的分布式设计,可用于领导人选举、群组协同工作和配置服务等,保证了服务的一致性和可用性。

c2e5c347fe60

Zookeeper

Spark Streaming——Spark核心API

Spark Streaming属于Spark的核心api,它支持高吞吐量、支持容错的实时流数据处理。它可以通过Kafka、HDFS、Flume等多种渠道获取数据,转换数据后利用Spark Engine进行数据处理。现在,包括Python、Java等多种高级语言都对Spark进行支持。本文使用pyspark进行编程。

c2e5c347fe60

Spark Streaming

实践出真知

要做什么

nginx日志分析,简单统计了下PV和UV,并做了H5图表实时展示。使

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值