大数据日志分析系统-缓存组件kafka
2018-02-27 13:20
447 查看
kafka简介
是一种高吞吐量的分布式发布订阅消息系统,当数据量不稳定,数据量大的时候想到它就对了。zookeeper简介
是一个分布式的,开放源码的分布式应用程序协调服务,很多地方用到, 最常见的是为集群提供基础的、高可用HA(High Availability)服务是kafka集群的基础依赖,同时也是hadoop系列中实现HA的基础组件。
实现HDFS的NamaNode和YARN的ResourceManager的HA,Spark实现HA,
HBase主要用ZooKeeper来实现HMaster选举与主备切换、系统容错、RootRegion管理、Region状态管理和分布式SplitWAL任务管理等。
//===========================================================
两种集群的配置相差不大
zookeeper集群配置:
ubuntu@sp1:~/kafka/config$ cat zookeeper.properties | grep -v '#'dataDir=/mnt/data3/zkclientPort=2181tickTime=2000initLimit=7syncLimit=4server.1=sp1:2888:3888server.2=sp2:2888:3888server.3=sp3:2888:3888server.4=sp4:2888:3888server.5=sp5:2888:3888server.6=sp6:2888:3888server.7=sp7:2888:3888强制杀死命令
ps aux |grep kafka |grep -v grep|cut -c 9-15 | xargs kill -9
ps aux |grep zookeeper |grep -v grep|cut -c 9-15 | xargs kill -9
kafka 集群配置:
ubuntu@sp1:~/kafka/config$ cat consumer.properties | grep -v '#'zookeeper.connect=es1:2181,es2:2181,es3:2181,es4:2181,es5:2181
zookeeper.connection.timeout.ms=6000
group.id=test-consumer-group
ubuntu@sp1:~/kafka/config$ cat server.properties | grep -v '#'
broker.id=1
port=9092
advertised.host.name=sp1
listeners=PLAINTEXT://sp1-host-ip:9092
num.network.threads=10
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/mnt/data3/kafka-logs
num.partitions=20
num.recovery.threads.per.data.dir=5
log.retention.hours=8
log.retention.bytes=53687091200
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=false
zookeeper.connect=sp1:2181,sp2:2181,sp3:2181,sp4:2181,sp5:2181,sp6:2181,sp7:2181
zookeeper.connection.timeout.ms=6000
delete.topic.enable=true
auto.leader.rebalance.enable=true
num.replica.fetchers=5
启动命令:
1.zookeeper启动sp1 - sp7在Ubuntu用户下 执行/home/ubuntu/zookeeper-3.4.7/bin/zkServer.sh startjps检查存在 QuorumPeerMain状态查看/home/ubuntu/zookeeper-3.4.7/bin/zkServer.sh status查看为一主动多从启动正常文件查看 /home/ubuntu/zookeeper-3.4.7/bin/zkCli.sh -server localhost:2181进入客户端 ls / 等命令查看
2.kafka启动sp1到sp7执行 nohup /home/ubuntu/kafka/bin/kafka-server-start.sh /home/ubuntu/kafka/config/server.properties 2>&1 > /home/ubuntu/kafka/logs/kafka.log &当然也可以这样远程执行ssh sp1 nohup /home/ubuntu/kafka/bin/kafka-server-start.sh /home/ubuntu/kafka/config/server.properties 2>&1 > /home/ubuntu/kafka/logs/kafka.log &检查~/kafka/bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --broker-info --group kafka_es --topic kafka_es --zookeeper localhost:2181就可以看机器是否正常了
注意:
很可能出现kafka个别分片堆积问题:例如现在kafka有35个分片,只有2个分片产生堆积,通过命令
~/kafka/bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --broker-info --group kafka_es --topic kafka_es --zookeeper localhost:2181
查看,我遇见过是消费线程小于分片数量(现象是用命令查看是不同的分片Pid 拥有相同的 Owner),这个时候增加消费者进程即可(我个人认为数据量大时消费者要多于分片数量 这样不容易出现挂掉一两个消费者出现分片被堆积的情况)
相关文章推荐
- Splunk大数据日志分析系统安装、使用
- 浅谈公司核心业务数据的重构——结合Memcache分析缓存策略与系统数据交互
- 基于 Kafka 和 ElasticSearch,LinkedIn是如何构建实时日志分析系统的
- Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
- flume + kafka + sparkStreaming + HDFS 构建实时日志分析系统
- Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
- 利用Kafka, Cloudera Search以及Hue实现实时日志分析系统
- ELK+Kafka集群日志分析系统
- (转)Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
- Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
- 大数据日志分析系统-logstash
- 利用Maxwell组件实时监听Mysql的binlog日志,并且把解析的json格式数据发送到kafka窗口供实时消费
- 分布式日志分析系统构建实战(三)——Kafka
- Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!
- 企业日志大数据分析系统ELK+KAFKA实现【转】
- 如何在基于kafka和ELK stack的日志分析系统中进行流量控制
- 浅谈公司核心业务数据表的重构——结合Memcache分析缓存策略与系统数据交互
- 大数据Hive-日志分析系统流程
- Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
- 大数据日志分析系统-介绍