首页 > 大数据 > > flume和Kafka、HBase的集成
Flume主要由3个重要的组件构成:
Flume逻辑上分三层架构:agent,collector,storage
关于Flume更多内容,可以参考网络文献:Flume的原理和使用
在/usr/local/flume/conf下面配置flume-conf.properties文件(这个文件可以由flume-conf.properties.template复制得到)
agent1.sources = r1
agent1.channels = kafkaC hbaseC
agent1.sinks = kafkaSink hbaseSink
agent1.sources.r1.type = exec
agent1.sources.r1.command = tail -F /opt/datas/weblogs-flume.log
agent1.sources.r1.channels = kafkaC hbaseC
#*****************flume+Kafka***********************
agent1.channels.kafkaC.type = memory
agent1.channels.kafkaC.capacity = 100000
agent1.channels.kafkaC.transactionCapacity = 100000
agent1.channels.kafkaC.keep-alive = 20
agent1.sinks.kafkaSink.channel = kafkaC
agent1.sinks.kafkaSink.type = org.apache.flume.sink.kafka.KafkaSink
agent1.sinks.kafkaSink.brokerList = localhost:9092
agent1.sinks.kafkaSink.topic = weblogs
agent1.sinks.kafkaSink.zookeeperConnect = localhost:2181
agent1.sinks.kafkaSink.requiredAcks = 1
agent1.sinks.kafkaSink.batchSize = 1
agent1.channels.hbaseC.type = memory
agent1.channels.hbaseC.capacity = 100000
agent1.channels.hbaseC.transactionCapacity = 100000
agent1.channels.hbaseC.keep-alive = 20
agent1.sinks.hbaseSink.type = hbase
agent1.sinks.hbaseSink.table = weblogs
agent1.sinks.hbaseSink.columnFamily = info
agent1.sinks.hbaseSink.serializer = org.apache.flume.sink.hbase.RegexHbaseEventSerializer
# 这个正则表达式临时之举,不过证明确实好用
agent1.sinks.hbaseSink.serializer.regex = (.*?),(.*?),\\[(.*?)\\],(.*?),(.*?),(.*)
agent1.sinks.hbaseSink.serializer.colNames = datatime,userid,searchname,retorder,cliorder,cliurl
agent1.sinks.hbaseSink.channel = hbaseC需要在Hbase中创建相关的表
hbase shell
create 'weblogs','info'编写flume的启动脚本
vi flume-start.sh
#/bin/bash
echo "flume start"
# 这里的agent的名字必须与flume-conf.properties中的agent保持一致
flume-ng agent --conf conf -f /usr/local/flume/conf/flume-conf.properties -n agent1 -Dflume.root.logger=INFO,console如果显示找不到相关命令,说明需要修改环境变量
zkServer.sh start2. 启动hdfs服务
start-dfs.sh3. 启动HBase服务
start-hbase.sh4. 启动Kafka服务
# & 放在启动参数后面表示设置此进程为后台进程,进程切换到后台的时候,我们把它称为job
kafka-server-start.sh /usr/local/kafaka/config/server.properties &5. 创建业务数据topic
kafka-topics.sh --zookeeper localhost:2181 --create --topic weblogs --replication-factor 1 --partitions 16. 启动模拟日志生成脚本
# cd 到你脚本所在的文件
./weblog-shell.sh7. 启动flume脚本
./flume-collect-start.sh
8. 启动Kafka Consumer查看flume日志采集情况
kafka-console-consumer.sh --zookeeper localhost:2181 --topic weblogs --from-beginning9. 查看hbase数据写入情况
./hbase-shell
count 'weblogs'来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3167306/ ,如需转载,请注明出处,否则将追究法律责任。