Kafka基于Zookeeper协调的分布式日志系统,能够当作MQ。主要就是作:日志收集系统、消息系统。
还有就是用于用户活动跟踪:记录web用户或者app用户的各类活动,相信你们都感觉到了吧。
上篇咱们已经提到,消息系统的两种传递模式:点对点、订阅/发布。这里将再也不赘述。html
名称 | Column 2 |
---|---|
RabbitMQ | 使用Erlang编写的一个开源的消息队列,适合企业级的开发,同时实现了Broker构架,对路由、负载均衡或者数据持久化都有很好的支持 |
Redis | 基于Key-value的Nosql数据库,自己也支持MQ功能,能够当作轻量级的队列服务来使用。 |
ZeroMQ | 听说是最快的消息队列系统,针对大吞吐量的需求场景,可以实现RabbitMQ不擅长的高级、复杂的队列,可是技术上比较难一点 |
ActiveMQ | 这个我们上篇文章已经初步探究了一下,是Apache下的一个子项目,相似ZeroMQ,可以代理任何点对点的技术实现队列;同时,相似RabbitMQ以少许的代码高效的实现更高级的应用。 |
Kafka/Jafka | KafKa也是Apache下的一个子项目,是一个高性能的跨语言分布式发布/订阅消息队列系统。kafka相对于ActiveMQ是一个很是轻量级的消息系统,仍是一个良好的分布式系统。Jafka是kafka演化而来的。 |
问, 为何要安装Zookeeper呢?
答:在Hadoop 2.0以前,在HDFS 集群中NameNode 存在单点故障 (SPOF:A Single Point of Failure)。 对于只有一个 NameNode 的集群,若是 NameNode 机器出现故障(好比宕机或是软件、硬件 升级),那么整个集群将没法使用,直到 NameNode 从新启动。
HDFS 的 HA 功能经过配置 Active/Standby 两个 NameNodes 实如今集群中对 NameNode 的 热备来解决上述问题。若是出现故障,如机器崩溃或机器须要升级维护,这时可经过此种方 式将 NameNode 很快的切换到另一台机器。
在典型HA集群中,使用两台单独的机器配置未NameNodes。任意时间点,确保NameNodes中只有一个出去Active状态,其余处在等待状态。其中ActiveNameNode负责集群中的全部客户端操做,StandbyNameNode充当备机,主程序出现问题是可以快速的切换。
为实现同步Active【激活】与Standby【等待】两个NameNode的元数据信息须要一个共享存储系统,这个系统能够是NFS、QJM或者是Zookeeper。为了实现快速切换, Standby 节点获取集群的最新文件块信息也是颇有必要的。为了实现这一目标,DataNode 需 要配置 NameNodes 的位置,并同时给他们发送文件块信息以及心跳检测。
参考:《ZooKeeper学习之路 (九)利用ZooKeeper搭建Hadoop的HA集群 》web
【集群】
Hadoop的HA集群的搭建依赖于Zookeeper。所以这里先拓展一下Zookeeper的安装。
【PS,鉴于我这里只有一个虚拟机,所以Zookeeper和Hadoop我都不安装了。之后用到再学吧,并非我懒啊(或许是真的懒)。】sql