flume+kafka+storm单机部署
flume-1.6.0
kafka0.9.0.0
storm0.9.6
一.部署flume
1.解压
tar -xzvf apache-flume-1.6.0-bin.tar.gz -C ../app/
2.在conf目录中添加自己的配置文件,内容是source、sink、channel的配置
cd ../app/apache-flume-1.6.0-bin/conf
新建配置文件flume-directory-kafka.conf,内容如下
# flume-directory-kafka.conf: A single-node Flume configuration
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = spooldir
a1.sources.r1.channels = c1
a1.sources.r1.spoolDir = /home/koushengrui/flumeDemoLog
a1.sources.r1.fileHeader = true
# Describe the sink
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.topic = webService_log
a1.sinks.k1.brokerList = montnets:9092
a1.sinks.k1.requiredAcks = 1
a1.sinks.k1.batchSize = 20
a1.sinks.k1.channel = c1
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
3.启动flume
必须在bin目录以上级别目录启动,在bin目录启动无效,因为log4j.properties文件在跟bin目录同级的conf目录中
./bin/flume-ng agent --conf conf --conf-file ./conf/flume-directory-kafka.conf --name a1 -Dflume.root.logger=INFO,console
二.部署zookeeper并启动
三.部署kafka
1.解压
tar -xzvf kafka_2.11-0.9.0.0.tgz -C ../app/
2.修改conf目录中的server.properties文件
cd ../app/kafka_2.11-0.9.0.0/config/
vi ./server.properties
broker.id=1
zookeeper.connect=montnets:2181
3.在每一台节点上启动broker
cd ../bin
./kafka-server-start.sh ../config/server.properties
4.查看现有topic的状态
./kafka-topics.sh --list --zookeeper montnets:2181
如果之前有topic的话,此时会显示出来
5.新建对应flume的配置文件的topic webService_log
./kafka-topics.sh --create --zookeeper montnets:2181 --replication-factor 1 --partitions 1 --topic webService_log
6.此时就可以校验flume与kafka是否整合成功了。用一个comsumer从webService_log中读取信息
./kafka-console-consumer.sh --zookeeper montnets:2181 --from-beginning --topic webService_log
在/home/koushengrui/flumeDemoLog目录中添加一个内容如下的名为log1的文件,观察是否在kafka的控制台输出了文件信息。经校验,整合成功。
<EVTCONT>
[{USERID:"用户账号1",MSG:"这里填写xxx帐号离线等详情" }]
</EVTCONT>
四.部署storm
1.解压
tar -xzvf apache-storm-0.9.6.tar.gz -C ../app/
2.修改conf目录下的storm.yaml文件
cd ../app/apache-storm-0.9.6/conf/
vi ./storm.yaml
#所使用的zookeeper集群主机
storm.zookeeper.servers:
- "montnets"
#nimbus所在的主机名
nimbus.host: "montnets"
3.启动storm
分别要启动nimbus及supervisor
在nimbus主机上
./storm nimbus
./storm ui 提供web页面,通过http://montnets:8080/可以访问Storm UI。
在supervisor主机上
./storm supervisor
五.把项目打jar包上传,此处命名jar包为demoTopo,其中入口类(有main方法的类)为com.montnets.test.Entrance
./storm jar ../demoTopo.jar com.montnets.test.Entrance
./storm kill topologyName
flume+kafka+storm单机部署的更多相关文章
- Flume+Kafka+Storm整合
Flume+Kafka+Storm整合 1. 需求: 有一个客户端Client可以产生日志信息,我们需要通过Flume获取日志信息,再把该日志信息放入到Kafka的一个Topic:flume-to-k ...
- Flume+Kafka+storm的连接整合
Flume-ng Flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统. Flume的文档可以看http://flume.apache.org/FlumeUserGuide.html ...
- flume+kafka+storm+mysql架构设计
前段时间学习了storm,最近刚开blog,就把这些资料放上来供大家参考. 这个框架用的组件基本都是最新稳定版本,flume-ng1.4+kafka0.8+storm0.9+mysql (项目是mav ...
- 一次简单的springboot+dubbo+flume+kafka+storm+redis系统
最近无事学习一下,用springboot+dubbo+flume+kafka+storm+redis做了一个简单的scenic系统 scenicweb:展现层,springboot+dubbo sce ...
- 简单测试flume+kafka+storm的集成
集成 Flume/kafka/storm 是为了收集日志文件而引入的方法,最终将日志转到storm中进行分析.storm的分析方法见后面文章,这里只讨论集成方法. 以下为具体步骤及测试方法: 1.分别 ...
- Flume+Kafka+Storm+Hbase+HDSF+Poi整合
Flume+Kafka+Storm+Hbase+HDSF+Poi整合 需求: 针对一个网站,我们需要根据用户的行为记录日志信息,分析对我们有用的数据. 举例:这个网站www.hongten.com(当 ...
- 大数据处理框架之Strom:Flume+Kafka+Storm整合
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 storm-0.9 apache-flume-1.6.0 ...
- Flume+Kafka+Storm+Redis 大数据在线实时分析
1.实时处理框架 即从上面的架构中我们可以看出,其由下面的几部分构成: Flume集群 Kafka集群 Storm集群 从构建实时处理系统的角度出发,我们需要做的是,如何让数据在各个不同的集群系统之间 ...
- flume+kafka+storm
centos06.6+JDK1.7 flume1.4+kafka2.10+storm0.9.3 zookeeper3.4.6 集群: 192.168.80.133 x01 192.168.80.134 ...
随机推荐
- Tomcat下的work目录
work目录只是tomcat的工作目录,也就是tomcat把jsp转换为class文件的工作目录,这也正是为什么它叫work目录而不是cache目录的原因. jsp,tomcat的工作原理是当浏览器访 ...
- no method declared with objective-c selector error
down voteaccepted Swift 2.2 / Xcode 7.3 has a new way to use selector:Selector("funcName") ...
- sql server 自定义split 标值函数
自定义一个函数,分隔一个以分隔符的隔开字符串,例如把'1,3,5,7,9' 变成 数字1 3 5 7 9的结果集. 自定义标值函数: ),)) )) --实现split功能 的函数 as begin ...
- Unity3D 导出的apk进行混淆和加固防止反编译
前言: 对于辛辛苦苦完成的apk程序被人轻易的反编译了,那就得不偿失了,这篇文章就是解决Unity打包出来的apk进行代码加固和混淆. 准备资料: 1:Obfuscator.zip 作用是代码混淆, ...
- TCP三次握手中,为什么需要第三次握手?
为什么客户端A还要发送一次确认呢?(为什么需要第三次握手) 这主要是为了防止已失效的连接请求报文段突然又传送到了B(服务器端),因而产生错误. 所谓"已失效的连接请求报文段"是这样 ...
- 【转】母函数(Generating function)详解 — TankyWoo(红色字体为批注)
母函数(Generating function)详解 - Tanky Woo 在数学中,某个序列的母函数(Generating function,又称生成函数)是一种形式幂级数,其每一项的系数可以提供 ...
- selenium webdriver学习-怎么等待页面元素加载完成
http://blog.csdn.net/aerchi/article/details/8055913 WebDriverWait类和ExpectedCondition
- 《JavaScript网页特效经典300例-高级篇》
<Javascript网页经典特性300例> 高级篇 第18章:ajax应用 Ajax传输JSON数据实例定义一套自己的Ajax框架 第19章:面向对象的特性 定义一个类利用prototy ...
- 《JS权威指南学习总结--8.5 作为命名空间的函数》
内容要点: 函数作用域的概念:在函数中声明的变量在整个函数体内都是可见的(包括在嵌套的函数中),在函数的外部是不可见的.不在任何函数内声明的变量是全局变量,在整个JS程序中都是可见的. 在JS中 ...
- Node.js:url
在node运行环境中输入url: > url url { parse: [Function: urlParse], resolve: [Function: urlResolve], resolv ...