Flume+Kafka+SparkStreaming的整合是怎么样的

本篇文章给大家分享的是有关Flume+Kafka+SparkStreaming的整合是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计、成都网站建设、西宁网络推广、重庆小程序开发、西宁网络营销、西宁企业策划、西宁品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供西宁建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

1.架构

第一步,Flume和Kakfa对接,Flume抓取日志,写到Kafka中

第二部,Spark Streaming读取Kafka中的数据,进行实时分析

下面首先使用Kakfa自带的消息处理(脚本)来获取消息,走通Flume和Kafka的对接

2.安装flume,kafka

flume install: http://my.oschina.net/u/192561/blog/692225

kafka install: http://my.oschina.net/u/192561/blog/692357

3.Flume和Kafka整合

3.1 两者整合优势

Flume更倾向于数据传输本身,Kakfa是典型的消息中间件用于解耦生产者消费者。

具体架构上,Agent并没把数据直接发送到Kafka,在Kafka前面有层由Flume构成的forward。这样做有两个原因:

Kafka的API对非JVM系的语言支持很不友好,forward对外提供更加通用的HTTP接口。forward层可以做路由、Kafka topic和Kafkapartition key等逻辑,进一步减少Agent端的逻辑。

数据有数据源到flume再到Kafka时,数据一方面可以同步到HDFS做离线计算,另一方面可以做实时计算。本文实时计算采用SparkStreaming做测试。
 

3.2 Flume和Kafka整合安装

1. 下载Flume和Kafka集成的插件,下载地址:

https://github.com/beyondj2ee/flumeng-kafka- plugin

将package目录中的flumeng-kafka-plugin.jar拷贝到Flume安装目录的lib目录下

2. 将Kakfa安装目录libs目录下的如下jar包拷贝到Flume安装目录的lib目录下

kafka_2.11-0.10.0.0.jar

scala-library-2.11.8.jar

metrics-core-2.2.0.jar

提取插件中的flume-conf.properties文件:修改如下:flume源采用exec

producer.sources.s.type = exec
producer.sources.s.command=tail -F -n+1 /home/eric/bigdata/kafka-logs/a.log
producer.sources.s.channels = c1

修改producer代理的topic为 HappyBirthDayToAnYuan

将配置放到 apache-flume-1.6.0-bin/conf/producer.conf中

 完整 producer.conf:   

#agentsectionproducer.sources= s1producer.channels= c1producer.sinks= k1#配置数据源producer.sources.s1.type=exec#配置需要监控的日志输出文件或目录producer.sources.s1.command=tail -F -n+1 /home/eric/bigdata/kafka-logs/a.log#配置数据通道producer.channels.c1.type=memoryproducer.channels.c1.capacity=10000producer.channels.c1.transactionCapacity=100#配置数据源输出#设置Kafka接收器,此处最坑,注意版本,此处为Flume 1.6.0的输出槽类型producer.sinks.k1.type= org.apache.flume.sink.kafka.KafkaSink#设置Kafka的broker地址和端口号producer.sinks.k1.brokerList=localhost:9092#设置Kafka的Topicproducer.sinks.k1.topic=HappyBirthDayToAnYuan#设置序列化方式producer.sinks.k1.serializer.class=kafka.serializer.StringEncoder#将三者级联producer.sources.s1.channels=c1producer.sinks.k1.channel=c1

3.3 启动kafka flume相关服务

启动ZK bin/zookeeper-server-start.sh config/zookeeper.properties

启动Kafka服务bin/kafka-server-start.sh config/server.properties

创建主题

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic HappyBirthDayToAnYuan

查看主题

bin/kafka-topics.sh --list --zookeeper localhost:2181

查看主题详情

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic HappyBirthDayToAnYuan

删除主题

bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test

创建消费者

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

启动flume

bin/flume-ng agent -n producer -c conf -f conf/producer.conf -Dflume.root.logger=INFO,console

向flume发送数据:

echo "yuhai" >> a.log

kafka消费数据:

Flume+Kafka+SparkStreaming的整合是怎么样的

注意:当前文件内容删除,服务器重启,主题需重新创建,但是消费内容有落地文件,当前消费内容不消失.

以上就是Flume+Kafka+SparkStreaming的整合是怎么样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。

分享名称:Flume+Kafka+SparkStreaming的整合是怎么样的
浏览地址:https://www.cdcxhl.com/article38/jjjpsp.html

成都网站建设公司_创新互联,为您提供建站公司手机网站建设网站改版电子商务网站内链静态网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

商城网站建设