2018-07-28-初入Hadoop生态系统

2018-11-08  本文已影响0人  ohcomeyes

前言

说起Hadoop,知道它是一个开源的、可运行于大规模集群上的分布式计算平台,实现了MapReduce计算模型和分布式文件系统HDFS等功能;但对Hadoop整个的生态不够了解,本着爱学习的态度,一块来探探hadoop的生态圈。

关于Hadoop

日常生活中我们一看到大数据和大数据相关的信息就会想到了hadoop,但要说具体点,又不知从何说起。
hadoop是基于Java开发的,所以在跨平台上有很大的优势,并且可以部署在廉价的计算机集群中,所以导致hadoop的火热程度。hadoop的核心是HDFS和MapReduce,HDFS是针对谷歌文件系统(GFS)的开源实现,具有较高的读写速度、容错性、可伸缩性,采用MapReduce的整合,可以在不了解分布式系统底层细节的情况下开发。这样就可以轻松的完成海量数据的存储和计算。

Hadoop的特性

Hadoop生态系统

hadoop除了HDFS和MapReduce外,还还包括了其它很多的功能组件。例如:经常听到的zookeeper、hbase、hive、pig、mahout、sqoop、flume、ambari等功能组件。


hadoop生态系统

下面对各个组件做一个简单的概述,比较常用的着重描述。

附加几个其它的功能组件

针对Hadoop的改进和提升
Hadoop框架自身的改进,从1.0到2.0

组件 Hadoop1.0的问题 Hadoop2.0的改进
HDFS 单一名称节点,存在单点失效问题 设计了HDFS HA,提供名称节点热备份机制
单一命名空间,无法实现资源隔离 设计了HDFS联邦,管理多个命名空间
MapReduce 资源管理效率底 设计了新的资源管理框架YARN

不断完善的Hadoop生态系统

组件 功能 解决Hadoop中存在的问题
Pig 处理大规模数据的脚本语言,用户只要编写几条简单的语句,系统会自动转换为MapReduce作业 抽象层次低,需要手工编写大量代码
Oozie 工作流和协作服务引擎,协调Hadoop上运行的不同任务 没有提供作业依赖关系管理机制,需要用户自己处理作业之间的依赖关系
Tez 支持DAG作业的计算框架,对作业的操作进行重新分解和组合,形成一个搭的DAG作业,减少不必要操作 不同的MapReduce任务之间存在重复操作,降低了效率
Kafka 分布式发布订阅消息系统,不同类型的分布式系统可以统一接入到Kafka,实现和Hadoop各个组件之间的不同类型数据的实时高效交换 Hadoop生态系统中各个组件和其它产品之间缺乏统一的、高效的数据交换中介

结语

这里主要是对Hadoop生态系统的一些功能组件做一个简单的归类描述,不涉及到具体的实现。
感兴趣的可以看看个别组件功能的详细实战。
浅谈Hbase与中间的一些设计策略
个人博客~
简书~

上一篇 下一篇

猜你喜欢

热点阅读