CDH组件简介

1.HDFS:Hadoop分布式文件系统被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。这个项目的地址是http://hadoop.apache.org/core/。

2.HBase:HBase是一个分布式的、非关系型开源数据库。 HBase有如下几个特点: HBase是No-SQL的一个典型实现,提升了系统的可扩展性; HBase支持线性水平扩展,极大提升了系统的可伸缩性和运算能力; HBase和Google的BigTable有异曲同工之妙,底层也是建立在HDFS(Hadoop分布式文件系统)之上,可以搭建在廉价的PC机集群上。

       NoSQL(NoSQL = Not Only SQL),意思是不仅仅是SQL的扩展,一般指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,传统的电信行业动辍就千万甚至上亿的数据,甚至有客户提出需要存储相关的日志数据50年以上,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

关系型数据库难以克服的问题:

l        不能很好处理对数据库高并发读写的需求;

l        不能很好处理对海量数据的高效率存储和访问的需求;

l        不能很好处理对数据库的高可扩展性和高可用性的需求。

SQL语言和关系型数据库(MySQL、PostgreSQL、Oracle等)是通用的数据解决方案,占有绝大多数的市场。但是就像上面提到的,它有很多难以解决的问题。不过在最近兴起的NoSQL运动中,涌现出一批具备高可用性、支持线性扩展、支持Map/Reduce操作等特性的数据产品比如MongoDB、CouchDB、Hbase等,它们具有如下特性:

l        频繁的写入操作、相对较少的读取统计信息的操作;

l        海量数据(如数据仓库中需要分析的数据)适合存储在一个结构松散、分布式的文件存储系统中;

l        存储二进制文件(如mp3或者pdf文档)并且能够直接为用户的浏览器提供下载功能。

使用这些非关系数据库并不是要取代原有的关系数据库,而是为不同的应用场景提供更多的选择。也就是说,在一些特定的情况下如果是关系型的数据库解决不了的问题,那么就可以考虑使用nosql,而不是说完全将应用移植到nosql上,毕竟适合才是最好的。

3.Hive:是一个建立在Hadoop架构之上的数据仓库。它能够提供数据的精炼,查询和分析。Apache Hive起初由Facebook开发,目前也有其他公司使用和开发Apache Hive,例如Netflix等。亚马逊公司也开发了一个定制版本的Apache Hive,亚马逊网络服务包中的Amazon Elastic MapReduce包含了该定制版本。

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

4.Oozie:

(1)Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。

(2)Oozie的工作流是一系列动作的直接周期图。

(3)Oozie协调作业就是通过时间(频率)和有效数据触发当前的Oozie工作流程。

(4)Oozie是Yahoo针对Apache Hadoop开发的一个开源工作流引擎。用于管理和协调运行在Hadoop平台上(包括:HDFS、Pig和MapReduce)的Jobs。Oozie是专为雅虎的全球大规模复杂工作流程和数据管道而设计。

(5)Oozie围绕着两个核心进行:工作流(Workflow)和协调器(Coordinator),前者定义任务拓扑和执行逻辑,后者负责工作流的依赖和触发。

5.Hue:是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job等等。很早以前就听说过Hue的便利与强大,一直没能亲自尝试使用,下面先通过官网给出的特性,通过翻译原文简单了解一下Hue所支持的功能特性集合:

(1)默认基于轻量级sqlite数据库管理会话数据,用户认证和授权,可以自定义为MySQL、Postgresql,以及Oracle

(2)基于文件浏览器(File Browser)访问HDFS

(3)基于Hive编辑器来开发和运行Hive查询

(4)支持基于Solr进行搜索的应用,并提供可视化的数据视图,以及仪表板(Dashboard)

(5)支持基于Impala的应用进行交互式查询

(6)支持Spark编辑器和仪表板(Dashboard)

(7)支持Pig编辑器,并能够提交脚本任务

(8)支持Oozie编辑器,可以通过仪表板提交和监控Workflow、Coordinator和Bundle

(9)支持HBase浏览器,能够可视化数据、查询数据、修改HBase表

(10)支持Metastore浏览器,可以访问Hive的元数据,以及HCatalog

(11)支持Job浏览器,能够访问MapReduce Job(MR1/MR2-YARN)

(12)支持Job设计器,能够创建MapReduce/Streaming/Java Job

(13)支持Sqoop 2编辑器和仪表板(Dashboard)

(14)支持ZooKeeper浏览器和编辑器

(15)支持MySql、PostGresql、Sqlite和Oracle数据库查询编辑器

6.Impala:是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。

7.Key-Value Indexer:HBase是一个列存数据库,每行数据只有一个主键RowKey,无法依据指定列的数据进行检索。查询时需要通过RowKey进行检索,然后查看指定列的数据是什么,效率低下。在实际应用中,我们经常需要根据指定列进行检索,或者几个列进行组合检索,这就提出了建立 HBase 二级索引的需求。Key-Value Indexer使用的是Lily Hbase NRT Indexer服务,Lily HBase Indexer是一款灵活的、可扩展的、高容错的、事务性的,并且近实时的处理hbase列索引数据的分布式服务软件。它是NGDATA公司开发的Lily系统的一部分,已开放源代码。Lily HBase Indexer使用SolrCloud来存储HBase的索引数据,当HBase执行写入、更新或删除操作时,Indexer通过HBase的replication功能来把这些操作抽象成一系列的Event事件,并用来保证写入Solr中的HBase索引数据的一致性。并且Indexer支持用户自定义的抽取,转换规则来索引HBase列数据。Solr搜索结果会包含用户自定义的columnfamily:qualifier字段结果,这样应用程序就可以直接访问HBase的列数据。而且Indexer索引和搜索不会影响HBase运行的稳定性和HBase数据写入的吞吐量,因为索引和搜索过程是完全分开并且异步的。

8.YARN (MR2 Included):下一代 Hadoop 计算平台,以下名称的改动有助于更好地了解 YARN 的设计:

(1)ResourceManager 代替集群管理器

(2)ApplicationMaster 代替一个专用且短暂的 JobTracker

(3)NodeManager 代替 TaskTracker

(4)一个分布式应用程序代替一个 MapReduce 作业

9.Cloudera Manager:核心是Cloudera Manager Server。Server托管Admin Console Web Server和应用程序逻辑。它负责安装软件、配置、启动和停止服务以及管理运行服务的群集。解释:

(1)Agent:安装在每台主机上。它负责启动和停止进程,解压缩配置,触发安装和监控主机

(2)Database:存储配置和监控信息

(3)Cloudera Repository:可供Cloudera Manager分配的软件的存储库(repo库)

(4)Client:用于与服务器进行交互的接口: 

(5)Admin Console:管理员控制台

(6)API:开发人员使用 API可以创建自定义的Cloudera Manager应用程序

(7)Cloudera Management Service:

        a、Cloudera Management Service 可作为一组角色实施各种管理功能

        b、Activity Monitor:收集有关服务运行的活动的信息

        c、Host Monitor:收集有关主机的运行状况和指标信息

        d、Service Monitor:收集有关服务的运行状况和指标信息

        f、Event Server:聚合组件的事件并将其用于警报和搜索

        g、Alert Publisher :为特定类型的事件生成和提供警报

        h、Reports Manager:生成图表报告,它提供用户、用户组的目录的磁盘使用率、磁盘、io等历史视图

你可能感兴趣的:(CDH组件简介)