本文主要是介绍Hadoop生态圈概要,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ZooKeeper
- ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
- ZooKeeper不仅仅是在Hadoop生态圈中使用,也在其他地方使用,例如阿里的Dubbo。只要是需要分布式应用程序协调服务的地方都可以使用ZooKeeper。
Hadoop 2.X
- HDFS负责海量数据的存储。包含NameNode ,SecondaryNameNode,DataNode三个进程。其中NameNode的HA需要依赖于ZooKeeper来实现。SecondaryNameNode节点的主要功能是周期性将元数据节点的命名空间镜像文件和修改日志进行合并,以防日志文件过大,相当于NameNode的助手,而非NameNode的备份。
- YARN负责资源调度。YARN也是一个集群,包含ResourceManager,NodeManager两个进程,为MapReduce等应用程序进行资源调度。
- MapReduce负责数据分析,主要针对的是离线数据分析。包含Map和Reduce两个过程。Spark 主要是基于内存的分布式实时数据分析。
Hive
- Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句(即HIVE QL)快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
- Hive是将元数据存储于关系型数据库中,例如Mysql或内嵌的Derby;将真实的数据存储于HDFS中。
HBase
- HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
- HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。
- HBase的分布式部署需要依赖于ZooKeeper。
Flume(数据收集工具)
- Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
- 当前Flume有两个版本Flume 0.9X版本的统称Flume-og,Flume1.X版本的统称Flume-ng。由于Flume-ng经过重大重构,与Flume-og有很大不同,使用时请注意区分。
- 部署的时候只需要依赖于JDK以及部分Hadoop jar包,而不需要有分布式集群。
- Flume中有三个模块:
source – > channel –> sink
- source负责读取数据
- channel负责临时存储数据
- sink负责将数据存储到指定的介质
Sqoop(数据迁移工具)
- Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
- 使用Sqoop的时候,Sqoop的语法会转换成MapReduce程序。因此Sqoop必须依赖于YARN。但是只需提供HADOOP_HOME路径即可。
这篇关于Hadoop生态圈概要的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!