概述
zookeeper 为分布式系统提供一致性协调(Coordination)服务,Client与ZooKeeper之间的通信,需要创建一个Session
https://www.2cto.com/net/201806/756084.html https://www.cnblogs.com/felixzh/p/5869212.html
配置DNS映射: 将zkCluster的标识lgprc通过DNS解析到对应的ZooKeeper集群的地址
创建ZNode: 在对应的ZooKeeper上创建/NameService/hdfs/lgprc-example结点,将HDFS的配置文件存储于该结点下
用户程序要访问hdfs://lgprc-example/的HDFS集群,首先通过DNS找到lgprc的ZooKeeper机群的地址,然后在ZooKeeper的/NameService/hdfs/lgprc-example结点中读取到HDFS的配置,进而根据得到的配置,得到HDFS的实际访问入口
https://www.jianshu.com/p/b19702403a6e生产者Producer,消费者Consumer,消费者组Consumer Group,代理Broker(我更喜欢叫他中介者),备份Replica,主题Topic,分区Partition,领导Leader,下属Fllower,isr解决了两件事,一个是动态维护replica列表,保证了消息接受的高效性和一致性,一个是leader挂掉时选取新leader很容易。broker由zookkeper维护。kafka是一个消息系统
- Topic:特指Kafka处理的消息源(feeds of messages)的不同分类。
- Partition:Topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)。
- Message:消息,是通信的基本单位,每个producer可以向一个topic(主题)发布一些消息。
- Producers:消息和数据生产者,向Kafka的一个topic发布消息的过程叫做producers。
- Consumers:消息和数据消费者,订阅topics并处理其发布的消息的过程叫做consumers。
- Broker:缓存代理,Kafa集群中的一台或多台服务器统称为broker。https://blog.csdn.net/burpee/article/details/78773738
高吞吐量,分布式,由consumer处理,可以将数据持久化到磁盘中
source:source组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy、自定义。
channel:source组件把数据收集来以后,临时存放在channel中,即channel组件在agent中是专门用来存放临时数据的——对采集到的数据进行简单的缓存,可以存放在memory、jdbc、file等等。
sink:sink组件是用于把数据发送到目的地的组件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、Hbase、solr、自定义。
flume编写三个对应的配置信息,启动服务器,打开telnet.在sink查看。 https://www.cnblogs.com/wangtao1993/p/6404232.html
写入kafka# 定义这个agent中各组件的名字
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 描述和配置source组件:r1
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /opt/datas/tmp.log
# 描述和配置sink组件:k1
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.topic = flumetopic
a1.sinks.k1.kafka.bootstrap.servers = hadoop01:9092,hadoop02:9092,hadoop03:9092,hadoop04:9092
a1.sinks.k1.kafka.flumeBatchSize = 20
a1.sinks.k1.kafka.producer.acks = 1
a1.sinks.k1.kafka.producer.linger.ms = 1
a1.sinks.ki.kafka.producer.compression.type = snappy
# 描述和配置channel组件,此处使用是内存缓存的方式
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# 描述和配置source channel sink之间的连接关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
RPC原理 https://blog.csdn.net/u012165769/article/details/88205604
redis知识 https://blog.csdn.net/zlc3323/article/details/80836881
Redis是一个基于内存且支持持久化的key-value的NoSQL数据库,其中每个key和value都是使用对象表示的,具有以以下特征:多样数据类型、持久化、主从同步。
和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的使用RDB快照的方式,把更新的数据写入磁盘或者使用类似MySQL的AOF日志方式把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis支持将数据同步到多台从数据库上,这种特性对提高读取性能非常有益。
https://my.oschina.net/u/2330181/blog/1987299 页面缓存,数据缓存,redis
https://www.jianshu.com/p/0b70133ee040 实时流计算案例
Topology Storm中运行的一个实时应用程序的名称。将 Spout、 Bolt整合起来的拓扑图。定义了 Spout和 Bolt的结合关系、并发数量、配置等等
使用OutputFieldsDeclarer.declareStream来定义多个stream,然后使用SpoutOutputCollector来发射指定的stream
Bolt 接受数据然后执行处理的组件,用户可以在其中执行自己想要的操作
Tuple 一次消息传递的基本单元,理解为一组消息就是一个Tuple
Stream Tuple的集合。表示数据的流向。
在Storm中,Topology任务一旦提交后永远不会结束,除非你显示去停止任务。计算任务Topology是由不同的Spouts和Bolts,通过数据流(Stream)连接起来的图一个Storm在集群上运行一个Topology时,主要通过以下3个实体来完成Topology的执行工作:
https://www.2cto.com/net/201806/756083.html
并发和通信机制 https://www.cnblogs.com/frankdeng/p/9572017.html https://www.cnblogs.com/cxzdy/p/5513316.html
简单的storm实现 https://blog.csdn.net/sinat_38718822/article/details/83063893
最后
以上就是畅快中心为你收集整理的storm+flume+kafka+redis+zookeeper的全部内容,希望文章能够帮你解决storm+flume+kafka+redis+zookeeper所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复