hadoop组件
hadoop三大核心组件:
- HDFS:HDFS有一个主/从架构。NameNode存放元数据,包括:文件名称、大小、位置,也会周期性的接收来自DataNodes的心跳和块报告,还存储数据块到DataNode的映射信息;DataNode是存放数据的地方,客户端可以向它请求读和写;
- YARN:(1)ResourceManager接收客户请求,启动和管理应用程序的AppicationMaster,接收AppicationMaster的资源申请并启动Container组成,管理NodeManager的资源和健康(2)NodeManager管理Container,并汇报监控情况(3)AppicationMaster负责向ResourceManager申请资源并将资源分配给task,这些task在Container中运(4)Container存放AppicationMaster和task,Container需要时候申请,用完释放,可以结合zookeer实现YARN集群的故障切换
- MapReduce:map负责对数据获取、分割、处理,reduce负责对map的结果汇总
hadoop相关系统:
- zookeeper:是一个分布式协调服务,提供一致性服务,包括:配置维护、域名服务、分布式同步、组服务等。应用场景1:几百台服务器的配置信息批量改变,应用场景2:结果zookeeper进行HDFS自动故障转移;
- Hbase:分布式数据库,HDFS为Hbase提供了高可靠的底层存储,Mapreduce为Hbase提供了高性能的计算能力,zookeeper为Hbase提供了稳定服务和失效恢复机制
- Hive:可以将结构化的数据文件映射为一张数据库表,并提供sql查询,可以将sql语句转换为MapReduce任务。通过hiveSQL语句快速实现简单的MapReduce统计,十分适合数据仓库的统计分析
- sqoop:关系型数据库和hadoop(hdfs、hive、hbase)之间数据传输的工具
实时处理系统:
- flume:实时日志收集系统,用于将大量日志数据从不同的源进行收集、聚合,最终移到集中的地方存储。可以结合Kafka;
- Kafka:基于zookeeper的分布式发布订阅消息系统,生产者生产鸡蛋,篮子存放鸡蛋,消费者消费鸡蛋,鸡蛋相当于消息,篮子相当于存放消息的消息队列,也就是kafka集群,篮子满了,需要增加,就是kafka集群扩容。概念:消息,broker(节点),topic(主题),分区
- storm:实时计算系统,计算任务成为拓扑,mapreduce运行的是任务(job),而storm运行的是拓扑,任务会结束,拓扑会一直运行。主从架构,主节点和从节点通过zookeeper来交互,storm于kafka结合,kafka缓存消息,并将不均匀的消息转换成均匀的数据流提供给storm进行消费
- Spark: MapReduce的中间结果保存在HDFS,而spark的中间输出结果可以保存在内存中,速度更快,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。适合ETL、机器学习、图形计算。
分布式搜索系统:
- ElasticSearch:它提供了基于RESTful web接口从而使全文搜索非常容易。能够以近似实时速度存储、搜索、分析
浙公网安备 33010602011771号