Cloudera(CDH) 简介和在线安装

Cloudera 简介


CDH是Apache Hadoop和相关项目的最完整,经过测试的流行发行版。 CDH提供了Hadoop的核心元素 - 可扩展的存储和分布式计算 - 以及基于Web的用户界面和重要的企业功能。 CDH是Apache许可的开放源码,是唯一提供统一批处理,交互式SQL和交互式搜索以及基于角色的访问控制的Hadoop解决方案。

Cloudera作为一个强大的商业版数据中心管理工具,提供了各种能够快速稳定运行的数据计算框架,如Apache Spark;使用Apache Impala做为对HDFS,HBase的高性能SQL查询引擎;也带了Hive数据仓库工具帮助用户分析数据; 用户也能用Cloudera管理安装HBase分布式列式NoSQL数据库;Cloudera还包含了原生的Hadoop搜索引擎以及Cloudera Navigator Optimizer去对Hadoop上的计算任务进行一个可视化的协调优化,提高运行效率;同时Cloudera中提供的各种组件能让用户在一个可视化的UI界面中方便地管理,配置和监控Hadoop以及其它所有相关组件,并有一定的容错容灾处理;Cloudera作为一个广泛使用的商业版数据中心管理工具更是对数据的安全决不妥协!

CDH 提供:

  • 灵活性 - 存储任何类型的数据,并使用各种不同的计算框架进行处理,包括批处理,交互式SQL,自由文本搜索,机器学习和统计计算。
  • 集成 - 在一个可与广泛的硬件和软件解决方案配合使用的完整Hadoop平台上快速启动并运行。
  • 安全 - 过程和控制敏感数据。
  • 可扩展性 - 启用广泛的应用程序并进行扩展和扩展,以满足您的需求。
  • 高可用性 - 充满信心地执行关键业务任务。
  • 兼容性 - 利用您现有的IT基础设施和资源。

这里写图片描述

上述描述来自:https://www.cloudera.com/documentation/enterprise/latest/topics/cdh_intro.html

1.CDH中的Apache Hive概述

Hive数据仓库软件支持在分布式存储中读取,编写和管理大型数据集。使用与SQL非常相似的Hive查询语言(HiveQL),查询被转换为一系列作业通过MapReduce或Apache Spark在Hadoop集群上执行。

用户可以使用Hive运行批处理工作负载,同时还可以在单​​个平台内使用Apache Impala或Apache Spark等工具分析交互式SQL或机器学习工作负载的相同数据。

作为CDH的一部分,Hive还受益于:

  • 统一资源管理由YARN提供
  • Cloudera Manager提供简化的部署和管理
  • 共享安全和治理,以满足Apache Sentry和Cloudera Navigator提供的合规要求

Hive的用例

由于Hive是一个基于Hadoop平台构建的PB级数据仓库系统,因此对于数据量急剧增长的环境而言,它是一个不错的选择。HDFS底层MapReduce接口很难直接编程,但Hive提供了一个SQL接口,可以使用现有的编程技巧来执行数据准备。

Hive MapReduce或Spark最适合批量数据准备或ETL:

  • 必须运行具有非常大的ETL排序并使用连接的计划批处理作业来为Hadoop准备数据。向Impala中BI用户提供的大部分数据由ETL开发人员使用Hive编写。

  • 可以运行花费数小时的数据传输或转换作业。通过Hive,如果通过这样的工作发生问题,它会恢复并继续。

  • 可以接收或提供不同格式的数据,其中Hive SerDes和各种UDF可以方便地获取和转换数据。通常,Hive的ETL过程的最后阶段可能是高性能,广泛支持的格式,例如Parquet。

Hive组件

Hive由以下组件组成:

Metastore数据库

Metastore数据库是Hive基础架构的一个重要方面。它是一个独立的数据库,依赖于传统的RDBMS,例如MySQL或PostgreSQL,它保存有关Hive数据库,表,列,分区和Hadoop特定信息(例如底层数据文件和HDFS块位置)的元数据。

Metastore数据库由其他组件共享。例如,Hive和Impala都可以插入,查询,更改等相同的表。尽管您可能会看到对“Hive metastore”的引用,但请注意,即使在您未使用Hive本身的情况下,Metastore数据库也会广泛用于Hadoop生态系统。

Metastore数据库相对紧凑,数据快速变化。备份,复制和其他类型的管理操作会影响此数据库。

HiveServer2

HiveServer2是一个服务器接口,它使远程客户端能够向Hive提交查询并检索结果。它取代了HiveServer1(它已被弃用,并将在未来的CDH版本中被删除)。HiveServer2支持多客户端并发,容量规划控制,Sentry授权,Kerberos身份验证,LDAP和SSL,并为JDBC和ODBC客户端提供更好的支持。

HiveServer2是Hive执行引擎的容器。对于每个客户端连接,它会创建一个新的执行上下文,用于向客户端提供Hive SQL请求。它支持JDBC客户端,例如Beeline CLI和ODBC客户端。客户端通过基于Thrift API的Hive服务连接到HiveServer2。

2.Apache Impala概述

Impala 能够直接对Apache Hadoop平台中存储在HDFS,HBase 的数据提供快速的交互式SQL查询除了使用相同的统一存储平台之外,Impala还使用与Apache Hive相同的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue中的Impala查询UI)。这为实时或面向批处理的查询提供了一个熟悉且统一的平台。

Impala是对可用于查询大数据的工具的补充。Impala不会取代基于MapReduce(如Hive)的批处理框架。基于MapReduce构建的Hive和其他框架最适合长时间运行的批处理作业,例如涉及批处理提取,转换和加载(ETL)类型作业的批处理作业。

Impala的好处

Impala提供:
  • 数据科学家和分析师已经知道的熟悉的SQL接口。
  • 能够在Apache Hadoop中查询大量数据(“大数据”)。
  • 集群环境中的分布式查询,便于扩展并使用经济高效的硬件。
  • 无需复制或导出/导入步骤即可在不同组件之间共享数据文件; 例如,使用Pig编写代码,使用Hive进行转换并使用Impala进行查询。Impala可以读取和写入Hive表格,使用Impala进行简单的数据交换,以便对Hive生成的数据进行分析。
  • 用于大数据处理和分析的单一系统,因此客户可以避免昂贵的建模和ETL仅用于分析。

Impala如何与CDH配合使用

下图说明了Impala如何在更广泛的Cloudera环境中定位:

显示Impala如何与其他Hadoop组件(如HDFS,Hive Metastore数据库以及客户端程序(如JDBC和ODBC应用程序)以及Hue Web UI)相关联的体系结构图。

Impala解决方案由以下组件组成:
  • 客户端 - 包括Hue,ODBC客户端,JDBC客户端和Impala Shell在内的实体都可以与Impala进行交互。这些接口通常用于发出查询或完成管理任务,例如连接到Impala。
  • Hive Metastore - 存储有关Impala可用数据的信息。例如,Metastore让Impala知道哪些数据库可用,以及这些数据库的结构如何。在创建,删除和更改模式对象,通过Impala SQL语句将数据加载到表等中时,相关的元数据更改将通过Impala 1.2中引入的专用目录服务自动广播到所有Impala节点。
  • Impala - 这个在DataNode上运行的进程,协调和执行查询。Impala的每个实例都可以接收,计划和协调来自Impala客户端的查询。查询分布在Impala节点中,然后这些节点充当工作人员,执行并行查询片段。
  • HBase和HDFS - 存储要查询的数据。
使用Impala执行的查询处理如下:
  1. 用户应用程序通过ODBC或JDBC向Impala发送SQL查询,这些查询提供标准化的查询接口。用户应用程序可能连接到任何impalad在集群中。这个impalad 成为查询的协调者。
  2. Impala解析查询并分析它以确定需要执行的任务 impalad整个群集中的实例。计划执行是为了获得最佳效率。
  3. 诸如HDFS和HBase等服务可以通过本地访问 impalad 实例提供数据。
  4. 每 impalad 将数据返回给协调 impalad,它将这些结果发送给客户端。

主要Impala功能

Impala为以下方面提供支持:
  • Hive Query Language(HiveQL)的大多数常见SQL功能
  • HDFS,HBase,其中包括:
    • HDFS文件:分隔文本文件,Parquet,Avro,SequenceFile和RCFile。
    • 压缩编解码器:Snappy,GZIP,Deflate,BZIP。
  • 常见的数据访问接口包括:
    • JDBC驱动程序
    • ODBC驱动程序
    • Hue Beeswax和Impala查询UI。
  • impla-shell命令行界面
  • Kerberos身份验证
3. Cloudera Search概述

Cloudera Search提供简单,自然的语言访问存储或存入Hadoop,HBase或云存储的数据。最终用户和其他Web服务可以使用全文查询和下钻来分析文本,半结构化和结构化数据,以及快速筛选和聚合它,以获取业务洞察力,而无需SQL或编程技能。

Cloudera Search是Apache Solr完全集成在Cloudera平台中的产品,充分利用了CDH中包含的灵活,可扩展且强大的存储系统和数据处理框架。这消除了跨基础架构移动大型数据集以执行业务任务的需要。它进一步实现了简化的数据管道,其中搜索和文本匹配是较大工作流程的一部分。

Cloudera Search合并了Apache Solr,其中包括Apache Lucene,SolrCloud,Apache Tika和Solr Cell。Cloudera Search包含在CDH 5及更高版本中。

在CDH基础架构中使用Cloudera Search提供:

  • 简化基础设施
  • 更好的生产可视性和控制
  • 对各种数据类型有更快速的见解
  • 更快的问题解决方案
  • 为更多用户和SQL以外的用例简化交互和平台访问
  • 用于在相同数据上运行其他类型工作负载的同一平台上的搜索服务的可伸缩性,灵活性和可靠性
  • 跨所有进程访问数据的统一安全模型
  • 摄取和预处理选项的灵活性和规模
下表介绍了Cloudera搜索功能。
Cloudera搜索功能
特征描述
使用Cloudera Manager进行统一管理和监控Cloudera Manager为CDH和Cloudera Search提供统一和集中的管理和监控。Cloudera Manager简化了搜索服务的部署,配置和监控。许多现有的搜索解决方案缺乏管理和监控能力,并且无法深入了解利用率,系统健康状况,趋势和其他可支持性方面。
索引存储在HDFS中

Cloudera Search与HDFS集成在一起,实现了健壮,可扩展且自我修复的索引存储。由Solr / Lucene创建的索引直接使用数据写入HDFS,而不是本地磁盘,从而提供容错和冗余。

Cloudera Search经过优化,可在HDFS中快速读取和写入索引,同时通过标准Solr机制提供索引并进行查询。由于数据和索引位于同一位置,因此数据处理不需要传输或单独管理的存储。

通过MapReduce创建批索引为了便于大数据集的索引创建,Cloudera Search内置了MapReduce作业,用于索引存储在HDFS或HBase中的数据。因此,MapReduce的线性可伸缩性应用于索引管道,从而减轻Solr索引服务资源的负担。
数据摄取的实时和可伸缩索引

Cloudera Search提供与Flume的集成以支持接近实时的索引。当新事件通过Flume层次结构并写入HDFS时,可以将这些事件直接写入Cloudera Search索引器。

此外,Flume还支持路由事件,过滤和传递给CDH的数据注释。这些功能可与Cloudera Search一起使用,以改进索引分片,索引分隔和文档级访问控制。

通过Hue轻松进行互动和数据探索Cloudera搜索GUI作为Hue插件提供,使用户能够交互式查询数据,查看结果文件并进行分面探索。Hue还可以安排常规查询和探索索引文件。此GUI使用基于标准Solr API的Cloudera Search API。拖放仪表板界面使任何人都可以轻松创建搜索仪表板。
简化了搜索工作负载的数据处理Cloudera Search可以使用Apache Tika解析和准备许多用于索引的标准文件格式。此外,Cloudera Search支持Avro,Hadoop Sequence和Snappy文件格式映射,以及日志文件格式,JSON,XML和HTML。

Cloudera Search还提供Morphlines,这是一个易于使用的预建库,包含常用数据预处理功能。Morphlines简化了多种文件格式索引的数据准备工作。用户可以轻松实现Flume,Kafka和HBase的Morphlines,或者将其他应用程序(如MapReduce或Spark作业)重复使用相同的Morphlines。

HBase搜索Cloudera Search与HBase集成,支持全文搜索HBase数据,而不会影响HBase性能或复制数据存储。监听器监控来自HBase RegionServers的复制事件流,并捕获每个写入或更新复制的事件,从而启用抽取和映射(例如,使用Morphlines)。然后将事件直接发送到Solr以便在HDFS中进行索引和存储,使用与Cloudera Search的其他索引工作负载相同的过程。这些索引可以立即提供,从而实现HBase数据的自由文本搜索。

Cloudera搜索的工作原理

在接近实时的索引用例中,例如日志或事件流分析,Cloudera Search索引通过Apache Flume,Apache Kafka,Spark Streaming或HBase流式传输的事件。字段和事件映射到标准Solr可索引架构。Lucene索引传入事件,并将索引写入并存储在HDFS中的标准Lucene索引文件中。在HDFS分区中的常规流量事件路由和数据存储也可以应用。事件可以通过多个Flume代理进行路由和流式传输,并写入单独的Lucene索引器中,这些索引器可以写入单独的索引碎片,以便在索引时实现更好的扩展并在搜索时更快地响应。

索引从HDFS加载到Solr核心,就像Solr从本地磁盘读取一样。Cloudera Search设计的不同之处在于HDFS的健壮,分布式和可扩展的存储层,它有助于消除代价高昂的停机时间,并且在不移动数据的情况下实现跨工作负载的灵活性。搜索查询然后可以通过标准Solr API或通过包含在Cloudera Search中的简单搜索GUI应用程序(可以在Hue中部署)提交给Solr。

Cloudera Search面向批处理的索引功能可以满足在批量上传文件或大数据集中进行搜索的需求,这些数据集的更新频率较低,而且不需要近实时索引。它还可以方便地用于重新索引(独立Solr中常见的难题)或用于按需数据探索的临时索引。通常,批量索引定期完成(小时,每日,每周等),作为较大工作流程的一部分。

对于这种情况,Cloudera Search包含基于MapReduce或Spark的高度可扩展的索引工作流程。针对HDFS中的指定文件或文件夹或HBase中的表启动MapReduce或Spark工作流,并在映射阶段执行字段提取和Solr模式映射。Reducers使用嵌入式Lucene将数据作为单个索引或索引碎片写入,具体取决于您的配置和首选项。索引存储在HDFS中之后,可以使用标准的Solr机制来查询它们,如前面关于近实时索引用例所描述的那样。您还可以配置这些批量索引选项,以将新索引数据直接发布到由Solr提供的实时活动索引中。GoLive 选项启用简化的数据管道,而不会中断服务以定期处理传入的批次更新。

Lily HBase Indexer Service是一个灵活的,可扩展的,容错的,事务性的,接近实时的系统,用于处理连续的HBase单元更新到实时搜索索引。Lily HBase Indexer使用Solr来索引存储在HBase中的数据。随着HBase向HBase表格单元应用插入,更新和删除操作,索引器使用标准HBase复制功能使Solr与HBase表格内容保持一致。索引器支持灵活的自定义应用程序特定规则来提取,转换和加载HBase数据到Solr。Solr搜索结果可以包含的ColumnFamily:预选赛链接回存储在HBase中的数据。这样应用程序可以使用搜索结果集来直接访问匹配的原始HBase单元。索引和搜索不会影响HBase的操作稳定性或写入吞吐量,因为索引和搜索过程与HBase是分开的和异步的。

了解Cloudera搜索

Cloudera Search适合用于分析大型数据集中信息的更广泛的解决方案。CDH提供了存储数据和运行查询的手段和工具。你可以通过以下方式探索数
  • MapReduce或Spark作业
  • Impala查询
  • Cloudera搜索查询

CDH通过使用MapReduce作业为大数据集提供存储和访问,但创建这些作业需要技术知识,每个作业可能需要几分钟或更长时间才能运行。与MapReduce作业相关的较长运行时间会中断探索数据的过程。

为了提供更直接的查询和响应,并消除编写MapReduce应用程序的需要,可以使用Apache Impala。Impala以秒为单位返回结果,而不是分钟。

虽然Impala是一个快速,功能强大的应用程序,但它使用基于SQL的查询语法。使用Impala对于不熟悉SQL的用户可能会遇到挑战。如果您不知道SQL,则可以使用Cloudera Search。尽管Impala,Apache Hive和Apache Pig都需要在查询时应用的结构,但搜索支持对已编制索引的任何数据或字段进行自由文本搜索。

Cloudera搜索和其他Cloudera组件

Cloudera搜索与其他Cloudera组件交互以解决不同的问题。下表列出了对搜索过程有贡献的Cloudera组件,并描述了它们如何与Cloudera Search进行交互:

零件贡献适用于
HDFS存储源文件。搜索索引源文档以使其可搜索。支持Cloudera Search的文件(例如Lucene索引文件和预写日志)也存储在HDFS中。使用HDFS可在更大的基础上提供更简单的配置,冗余和容错功能。借助HDFS,Cloudera Search服务器本质上是无状态的,因此主机故障的后果极小。HDFS还提供快照,群集间复制和灾难恢复。所有情况
MapReduce搜索包括一个预建的基于MapReduce的作业。此作业可用于HDFS中存储的任何受支持数据集的按需索引或计划索引。此作业使用群集资源进行可伸缩批量索引。很多情况下
TlumeSearch包含一个Flume接收器,可以将事件直接写入群集中部署的索引器,从而允许在摄取期间进行数据索引。很多情况下
HueHue包含一个基于GUI的搜索应用程序,该应用程序使用标准Solr API并可与HDFS中索引的数据进行交互。该应用程序为Solr标准查询语言和分面搜索功能的可视化提供支持。很多情况下
Morphlinesmorphline是一个定义ETL转换链的丰富配置文件。Morphlines可以使用来自任何数据源的任何类型的数据,处理数据并将结果加载到Cloudera Search。Morphlines运行在一个小型的,可嵌入的Java运行时系统中,可用于近实时应用程序,如flume代理以及批处理应用程序,如Spark作业。很多情况下
Zookeeper协调数据和元数据的分布,也称为碎片。它提供自动故障转移功能以提高服务弹性。很多情况下
SparkCrunchIndexerTool可以使用Spark将HDFS文件中的数据移动到Apache Solr中,并通过morphline运行数据以进行提取和转换。一些案例
HBase支持索引存储的数据,提取列,列族和关键信息作为字段。尽管HBase不使用二级索引,但Cloudera Search可以促进HBase中行和表内容的全文搜索。一些案例
Cloudera Manager部署,配置,管理和监控Cloudera Search进程和资源利用率,以跨群集服务。Cloudera Manager有助于简化Cloudera Search管理,但这不是必需的。一些案例
Cloudera NavigatorCloudera Navigator为Hadoop系统提供治理,包括支持审计搜索操作。一些案例
SentrySentry支持基于角色的Cloudera Search的精细授权。Sentry可以对各种操作应用一系列限制,例如访问数据,通过配置对象管理配置或创建集合。无论用户尝试完成操作的方式如何,都会始终应用限制。例如,限制对集合中数据的访问会限制访问权限,无论查询来自命令行,浏览器,Hue还是通过管理控制台。一些案例
Oozie自动化索引作业的调度和管理。Oozie可以检查新数据并根据需要开始索引工作。一些案例
Impala进一步分析搜索结果。一些案例
Hive进一步分析搜索结果。一些案例
Parque提供列式存储格式,为结构化工作负载(如Impala或Hive)提供特别快速的结果返回。Morphlines为从Parquet提取数据提供了一条高效的流水线。一些案例
Avro包含Cloudera Search可用于建立索引的元数据。一些案例
Kafka搜索使用此消息代理项目来增加吞吐量并减少处理实时数据的延迟。一些案例
Sqoop批量采集数据并为批量索引启用数据可用性。一些案例

Cloudera搜索架构

Cloudera Search作为一组服务器上的分布式服务运行,并且每个服务器负责一部分可搜索数据。数据被分割成小块,副本由这些块组成,并且这些块分布在服务器中。这提供了两个主要优点:

  • 分割内容成小块分配索引服务器之间的内容的任务。
  • 复制整个部分可以使查询更有效地缩放,并使系统能够提供更高级别的可用性。


每个Cloudera Search服务器都可以独立处理请求。客户端可以发送请求索引文档或对任何搜索服务器执行搜索,并且该服务器将请求路由到正确的服务器。

每个搜索部署都需要:

  • ZooKeeper至少在一台主机上运行。您可以在同一台主机上安装ZooKeeper,Search和HDFS。
  • 至少有一台HDFS,但与所有主机一样多。HDFS通常安装在所有群集主机上。
  • Solr至少有一台,但与所有主机一样多。Solr通常安装在所有群集主机上。

使用Solr和HDFS的更多主机具有以下优点:

  • 更多搜索服务器处理请求。
  • 更多搜索和HDFS搭配增加了数据局部性的程度。更多的本地数据提供更快的性能并减少网络流量。

下图显示了典型部署中的一些关键元素。



该图形说明:

  1. 客户端通过HTTP提交查询。
  2. 该响应由NameNode接收,然后传递给DataNode。
  3. DataNode使用相关的分片在其他主机之间分发请求。
  4. 查询结果将被收集并返回给客户端。

另请注意:

  • Cloudera Manager将客户端和服务器配置文件提供给部署中的其他服务器。
  • ZooKeeper服务器提供有关集群状态和运行Solr的其他主机的信息。

客户必须发送信息才能完成工作:

  • 对于查询,客户端必须具有Solr服务器的主机名和要使用的端口。
  • 对于与集合相关的操作,例如添加或删除集合,集合的名称也是必需的。
  • 索引工作,如 MapReduceIndexer作业,使用启动MapReduce作业的MapReduce驱动程序。这些作业也可以处理变形线并将结果索引到Solr。

4.Apache Kudu概述

Apache Kudu是一个为Hadoop平台开发的列式存储管理器。Kudu分享Hadoop生态系统应用程序的通用技术特性:它运行在商品硬件上,可横向扩展,并支持高度可用的操作。

Apache Kudu是Apache软件基金会的顶级项目。

Kudu的好处包括:

  • 快速处理OLAP工作负载。
  • 与MapReduce,Spark,Flume和其他Hadoop生态系统组件集成。
  • 与Apache Impala紧密集成,使其成为在Apache Parquet中使用HDFS的良好可变替代方案。
  • 强大但灵活的一致性模型,允许您根据每个请求选择一致性要求,包括严格的序列化一致性选项。
  • 强大的性能可同时运行顺序和随机工作负载。
  • 通过Cloudera Manager轻松管理和管理。
  • 高可用性。平板电脑服务器和主服务器使用Raft一致性算法,只要有更多的副本可用,就可以确保可用性。只读的跟随者平板电脑即使在领先平板电脑故障的情况下也可以为其提供读取服务。
  • 结构化数据模型。
通过结合所有这些属性,Kudu的目标是支持难以或不可能在当前可用的Hadoop存储技术上实现的应用程序。Kudu是一个可行的解决方案的应用包括:
  • 报告应将新数据立即提供给最终用户的应用程序
  • 时间序列应用程序必须支持跨大量历史数据的查询,同时返回有关单个实体的细粒度查询
  • 应用程序使用预测模型进行实时决策,并根据所有历史数据定期刷新预测模型

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值