- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
结论 总体评价:Flume最好 ZooKeeper ZooKeeper是一个开源分布式的服务,它提供了分布式协作,分布式同步,配置管理等功能。 为分布式应用系统服务 主要提供全局同步、配置管理维护和分组命名服务 ZooKeeper Zookeeper server角色 领导者(Leader) : 领导者不接受client的请求,负责进行投票的发起和决议,最终更新状态。 跟随者(Follower): Follower用于接收客户请求并返回客户结果。参与Leader发起的投票。 观察者(observer): Oberserver可以接收客户端连接,将写请求转发给leader节点。但是Observer不参加投票过程,只是同步leader的状态。Observer为系统扩展提供了一种方法。 学习者 ( Learner ) : 和leader进行状态同步的server统称Learner,上述Follower和Observer都是Learner。 Watch: client 通过设置watch来监听事件 ZooKeeper Paxos算法: prepare 阶段: proposer 选择一个提案编号 n 并将 prepare 请求发送给 acceptors 中的一个多数派; acceptor 收到 prepare 消息后,如果提案的编号大于它已经回复的所有 prepare 消息,则 acceptor 将自己上次的批准回复给 proposer,并承诺不再批准小于 n 的提案; 批准阶段: 当一个 proposor 收到了多数 acceptors 对 prepare 的回复后,就进入批准阶段。它要向回复 prepare 请求的 acceptors 发送 accept 请求。 在不违背自己向其他 proposer 的承诺的前提下,acceptor 收到 accept 请求后即批准这个请求。 Thank you! Log收集分析平台 需求 Log收集 分布式application log 即时log 数量多,平均每条log不会太大(以后可能有流式日志) Log分析 log合并(多条相同log去重) log析取(分析重要log信息) Log近实时查询 方案 Scribe Chukwa Flume 自选 Scribe facebook开源的日志收集系统 大量应用在facebook里 从各种日志源收集日志,存储到中央存储系统 可扩展,高容错的方案 C++编写 基于thrift Scribe 架构 Scribe 优点: 容错(只是collector和store之间) 支持hdfs 设计简单,易于使用 扩展性好 基于thrift,集成性好 缺点: agent和collector之间没有容错 无负载 基于thrift,依赖复杂,环境侵入性强 资料少 Chukwa hadoop系统产品 非常灵活,动态控制数据源 高性能,高可扩展性 分布式数据收集,快速处理 java编写 Chukwa 架构 Chukwa 优点: agent定期记录已发送数据来提供容错 和hadoop集成好,自带很多基于hadoop的组件 扩展性好 缺点: 无负载 版本太新 据我所知,无商业应用采用 Flume OG cloudera的开源日志系统 内置丰富组件,基本不用开发 高可靠性,高可扩展性,可管理性 java编写 Flume OG 架构 Flume OG 优点: 高可靠,agent,collector,store之间具有容错机制,提供3种策略 通过zookeeper提供负载 agent,collector非常丰富 支持hdfs 有商业应用使用 缺点: 商业支持不对开源社区开放 Flume NG Apache 旗下 开源日志系统 内置丰富组件,基本不用开发 高可靠性,高可扩展性,可管理性 java编写 Flume NG 架构 Flume NG 与OG不同: 高可靠,end-to-end模式 摒弃了Master,zookeeper,controller等 纯agent(source+channel+sink)模式 Flume NG # example.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 = netcat a1.sources.r1.bind = localhost a1.sources.r1.port = 44444 # Describe the sink a1.sinks.k1.t
文档评论(0)