Cloudera Hadoop-Cloudera大数据平台介绍
Cloudera Hadoop-Cloudera大数据平台介绍
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
由于Hadoop深受客户欢迎,因此许多公司都推出了各自版本的Hadoop,也有一些公司围绕Hadoop开发产品。在Hadoop生态系统中,规模最大,知名度最高的公司就是Cloudera,2008年成立的Cloudera是最早将Hadoop商用的公司,为合作伙伴提供Hadoop商用解决方案。
Cloudera企业解决方案包括Cloudera Hadoop发行版(Cloudera's Distribution Including Apache Hadoop,简称CDH),Cloudera Manager(CM)等。概括起来说,Cloudera提供一个可伸缩,稳定的,综合的企业级大数据管理平台,它拥有最多的部署案例,提供强大的部署,管理和监控工具。
一.Cloudea简介
众所周知,Hadoop是一个开源的项目,所以很多公司在这个基础上进行商业化,在Hadoop生态系统中,规模最大,知名度最高的公司则是Cloudera,目前Intel已经成为额Cloudera最大的战略股东。Cloudera的客户有很多知名公司,如哥伦比亚广播公司,eBay,摩根大通,迪士尼等。 Cloudera提供一个可扩展,灵活的,集成的企业级大数据管理平台,可用来方便地管理你的企业中快速增长的多种多样的数据。业界领先的Cloudera产品和解决方案使你能够部署并管理Apache Hadoop及其相关项目,操作和分析你的数据,以及保护数据的安全。 Cloudera提供下列产品和工具: (1)CDH Cloudera 分发的 Apache Hadoop 和其他相关开放源代码项目,包括 Cloudera Impala 和 Cloudera Search,Cloudera Kudu等。CDH 还提供安全保护以及与许多硬件和软件解决方案的集成。 (2)Cloudera Imapala Impala最初由Cloudera公司开发的,其最初设计动机是充分结合传统数据库与大数据系统Hadoop的优势,构造一个全新的,支持SQL与多租户,并具备良好的灵活性和扩展性的高性能查询引擎。 Cloudera结合传统数据库与大数据系统Hadoop各自优点,利用C++语言构造了一个全新的高性能查询引擎Impala。在Cloudera的测试中,Impala的查询效率比Hadoop生态系统中的SQL引擎Hive有数量级的提升。 您可以通过 Cloudera Manager 用户界面管理 Impala 及其他 Hadoop 组件,并通过 Sentry 授权框架保护其数据。 详情请参考:https://www.cnblogs.com/yinzhengjie/p/10859658.html (3)Cloudera Search 提供近实时访问已存储的数据,或者摄取到Hadoop以及HBase中去。Search提供了近实时的索引,全文检索和Dirll-Down(下钻)的导航,以及一个简单的全文所有接口,只需要一些NoSQL或者编程基础(技能)即可使用。完全集群的数据处理平台Search使用了在CDH中灵活的,可扩展的,可靠的存储系统。这样就不再需要在基础设施层或业务层移动大量的数据了,也不需要产生新的任务。 (4)Cloudera Manager 一个复用与部署,管理,和监控的CDH大数据平台的应用程序。Cloudera Manager提供Admin Console,这是基于Web的用户界面,使得企业数据管理更加容易方便。Coudera Manager易于升级和安装Hadoop组件,还提供了在几分钟之内建立集群主节点的高可用(High Availability)。它还包括Cloudera Manager API,可用来获取集群运行状态以及配置Coudera Manager。 (5)Cloudera Kudu Kudu是Cloudera公司用c++语言开源的列式存储引擎,专门为了对快速变化的数据进行快速分析,填补了以往Hadoop存储层的空缺。 kudu是一个强类型的纯列式存储数据库。类似于HBase,Kudu的表是由很多数据子集构成的,表被水平拆分成多个Tablet(类似于HBase的Region),这些Tablet被散布到不同机器上,以实现分布式的存储存储和读写。 详情请参考:https://www.cnblogs.com/yinzhengjie/p/10915819.html (6)Cloudera Naviator 定位为Hadoop提供数据管理和监管的工具,它简化了存储和密钥的管理。Cloudera Navigator中强的数据审计和数据保护使企业能够满足严格的规范限制并遵从相关法规。 博主推荐阅读一 : https://www.cloudera.com/documentation/enterprise/5-16-x/topics/introduction.html。 博主推荐阅读二 : https://www.cloudera.com/documentation/enterprise/5-16-x/topics/release_notes.html。
二.Coludera的Hadoop发行版CDH简介
1>.CDH概述
Cloudera提供了Hadoop的商业发行版本CDH(Cloudera's Distribution Including Apache Hadoop),能够十分方便地对Hadoop集群进行安装,部署和管理。是目前比较完整的,充分测试的Hadoop及其相关项目的发行版。CDH的基础组件均基于Apache License开源,无论个人学习还是企业使用都比较有保障。 如下图所示(官方链接:https://www.cloudera.com/documentation/enterprise/5-16-x/topics/cdh_intro.html),CDH是Cloudera发布的一个自己封装的Hadoop商业版软件发行包,里面不仅包含了Cloudera的商业版Hadoop,同时CDH中也包含了各类常用的开源数据处理与存储框架,如Spark,Hive,HBase等。 部署Hadoop集群的时候,可以选择Cloudera Express免费版本。这个版本包含了CDH以及Cloudera Manager核心功能,提供了对集群的管理功能,比如自动化部署,中心化管理,监控,诊断功能等。另外,Cloudera Express免费版本对集群节点数目是无限制的。收费的Cloudera Enterprise拥有高级管理功能,如提供商业技术支持,自动化备份和灾难恢复,记录配置历史及回滚等,而这些功能Cloudera Express则没有。
2>.CDH各个版本说明
(1)CDH6 CDH的大版号目前编到6,我们简称CDH 6,其Hadoop核心组件对应社区的3.0.0版本,并在该版本基础上打上各种补丁。在大版本好的后面跟有2位小版本号。 CDH 6下载地址 : https://archive.cloudera.com/cdh6/ (2)CDH5 CDH 5的hadoop核心组件对应社区的2.6.0版本,并在该版本基础上打上了各种补丁。 CDH 5下载地址 : https://archive.cloudera.com/cdh5/ (3)CDH4 CDH4对应Hadoop核心组件2.0,目前还能从Cloudera仓库下载到,但是不推荐使用(信息的小伙伴可以发现该版本最近一次更新时间是2017-9-21日,过了这么久不更新估计以后会停止技术支持!)。 CDH 4下载地址 :https://archive.cloudera.com/cdh4/ (4)CDH3 CDH3以及更早的版本对应Hadoop核心组件1.x(包括0.22x之前),目前已经下载不到,如果有这样版本的集群,应尽快备份数据和升级。
3>.CDH特性
(1)灵活性: 能够存储各种类型的数据,并使用各种不同的计算框架进行操作,包括批处理,交互式SQL,文本搜索,集群学习和统计计算等。 (2)集成性: 能够快速集成和运行一个完整的Hadoop平台,适用于各种不同的硬件和软件。 (3)安全性: 处理和控制敏感数据。 (4)扩展性: 能够部署多种应用,并扩展和扩充它们以满足你的需求。 (5)高可用性: 可以放心地用于关键的商业任务。 (6)兼容性: 可以利用你现有的IT基础设施和投资。
4>.CDH和Apache Hadoop对比
Hadoop大致可分为Apache Hadoop和第三方发行版本Hadoop。考虑到Hadoop集群部署的高效性,集群的稳定性以及后期集中的配置管理,业界大多使用Cloudera公司的发行版CDH。 Apache Hadoop社区版本虽然完全开源免费,但是也存在诸多问题: (1)版本管理比较混乱,让人有些无所适从; (2)集群部署配置较为复杂,通常安装集群需要编写大量的配置文件,分发到每一台节点上,容易出错,效率低下; (3)对集群的监控,运维,需要安装第三方的其他软件,运维难度比较大; (4)在Hadoop生态圈中,组件的选择和使用,比如Hive,Mahout,Sqoop,Flume,Spark,Oozie等,需要大量考虑兼容性的问题,经常会浪大量的时间去编译组件,解决版本冲突问题。 CDH版本的Hadoop的优势在于: (1)基于Apache协议,100%开源,版本管理清晰; (2)在兼容性,安全性,稳定性上比Apache Hadoop有大幅度的增强; (3)运维简单方便,对于Hadoop集群提供管理,诊断,监控,配置更改等功能,使得运维工作非常高效,而且集群节点越来越多,优势越明显。 (4)CDH提供成体系的文档,很多大公司的应用案例以及商业支持等。
三.Cloudera Manager大数据平台管理介绍
1>.Cloudera Manager概述
Cloudera Manager(简称CM)是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机,Hadoop,Hive,Spark等服务的安装和配置做了极大的简化。他是Hadoop集群的软件分发及管理平台,通过它可以快速部署好一个Hadoop集群,并对集群的节点及服务进行实时监控。
CM是一种管理CDH集群的端到端的应用。CM通过对CDH集群的各部分提供精细的可视化和控制,建立企业级部署标准,增强了操作人员的能力以提升性能,提升服务质量,提高合规性,降低管理成本。
通过CM,技术人员可以很容易地部署和集中化操作CDH技术站和其他可托管的服务。它使安装过程自动化,使部署时间从几个星期减少到几个分钟;提供了一个集群范围,实时的主机和服务运行情况的视图;提供了一个单一的中央控制器,对集群配置进行变更;并采用全方位的报告和诊断工具来帮助你优化性能和利用率。
2>.Cloudera Manager架构
Cloudera Manager的整体架构图如下图所示,CM的核心是Cloudera Manager Server。Server承载了管理员控制台(Admin Console Web Server)和应用逻辑,并负责安装软件,配置,启动,停止服务,以及管理运行有服务的集群。 官方链接:https://www.cloudera.com/documentation/enterprise/5-16-x/topics/cm_intro_primer.html#concept_kmf_mss_vk。
Cloudera Manager的核心是Cloudera Manager Server,它包括以下组件: (1)Server 托管Admin Console Web Server和应用程序逻辑。它负责安装软件,配置,启动和停止服务以及管理运行服务的集群。 (2)Agent 安装在每台主机上,它负责启动和停止进程,解压缩配置,触发安装和监控主机。 定期发送检测信号(心跳信息)给CM,默认情况下,Agent每隔15秒向Cloudera Manager Server发送一次检测信号。然而为了减少用户等待时间(延迟),当状态发生变化时会提高频率。如果Agent停止检测信号(心跳信息),主机将被标记为运行状态不良。 心跳信息的交换过程中,Agent通知CMS其自身的活性。反过来,CMS使用该消息对应执行的操作进行响应。Agent和CMS两者最终会达成一致,例如当启动一个服务时,Agent会尝试启动相关的进程;如果一个进程启动失败,CMS会将启动命令标记为失败。 (3)Managerment Server 执行各种监控,报警和报告功能的一组角色的服务。 (4)Database 存储配置和监控信息。通常,多个逻辑数据库在一个或多个数据库服务器上运行。例如,CMS和监控服务使用不同的逻辑数据库。 (5)Cloudera Repository 可供Cloudera Manager分配软件的存储库(repo库),换句话说,就是为CM提供用于软件分发的仓库。 (6)Client 用于与服务器进行交互的接口。包括Admin Console和API。 (7)Admin Cosole 管理控制台,管理员使用该基于Web的界面管理集群和CM。 (6)API Cloudera 产品具有开发的特性,所有在Cloudera Manager界面上提供的功能,通过API都可以完成同样的工作,这些API都是标准的REST API。开发人员使用API甚至可以创建自定义的Cloudera Manager应用程序。 Cloudera Management Server可作为一组角色实时各种管理功能: (1)Activity Monitor 收集有关服务运行活动的信息。 (2)Host Monitor 收集有关主机的运行状况和指标信息。 (3)Service Monitor 收集有关服务的运行状况和指标信息。 (4)Event Server 聚合组件的时间并将其用于警报和搜索。 (5)Alert Publisher 为特定类型的时间生成和提供警报。 (6)Reports Manager 生成图表报告,提供用户组的目录的磁盘使用率,磁盘IO等历史视图。
3>.Cloudera Manager功能概述
一.状态管理 (1)Cloudera Manager Server 维护了集群的各种状态。状态可分为两类:模块和运行时,两者都存储于CMS的数据库中。 (2)模块包含集群,主机,服务,角色,配置。运行时包含进程,命令。 二.配置管理(CM在多个层面定义了配置) (1)服务层面 可定义整个服务实例层面的配置,如HDFS服务的默认副本因子, (2)角色组层面 可定义某个角色组的配置,如DataNode的处理线程数量,可根据DataNodes的不同分组进行不同的配置。 (3)角色层面 可覆盖从角色层面继承的配置。这种配置需要谨慎使用,因为会造成角色组中的配置分歧。如因为拍错需求临时启用某个角色实例的DEBUG日志。 (4)主机层面 根据监控,软件管理,资源管理的不同有不同的配置。 (5)CM自身也有很多与管理操作相关的配置。 三.进程管理 (1)非CM管理的集群使用脚本进行角色进程的启动,但在CM管理的集群中这类脚本不起作用。 (2)CM管理的集群中,只能使用CM进行角色进程的启停,CM使用开源的进程管理名为supervisord,其会启动进程,重定向日志,通知进程失败,为进程设置正确的用户ID等等。CM支持自动重启一个崩溃的进程。如果一个进程在启动会频繁崩溃,还会被大声非健康标记。 (3)停止CMS和CM代理不会使正在运行的进程被中止。 四.软件包管理 CM支持两种软件分发格式:packages和parcels。 (1)package 是一种二进制分发格式,包含编译的代码和元数据如包描述,版本,依赖项。包管理系统评估此元数据以允许包搜索,执行升级,确保包的所有依赖关系得到满足。CM使用本地操作系统支持的包管理程序。 (2)parcel 也是一种二进制分发格式,包含CM需要使用的附加元数据。其余package的却别有:可安装同一个parcel的多个版本,并激活其中一个;parcel可安装到任何路径;通过parcel安装,CM会自动下载并激活和每个节点操作系统版本匹配的parcel包,解决某些操作系统版本不一致问题。 五.主机管理 (1)CM提供了多种功能以管理Hadoop集群的主机。第一次运行CM管理控制台时,可搜索主机并添加到集群,一旦选中了主机就可以为其分配CDH角色。CM会在主机上自动部署作为集群托管节点所有软件:JDK,CM agent,CDH,Impala,Solr等等。 (2)服务部署并运行后,管理员控制台中的“Hosts”区域显示集群中托管主机的总体状态。提供的信息包括主机上的CDH版本,主机所属的集群,运行在主机上的角色的数量。Cloudera管理服务中的主机监控角色执行监控检查并收集主机的统计信息,以允许你监控主机的监控和性能。 六.资源管理 CM允许使用两种资源管理方式: (1)静态资源池 使用Linux cgroups在多个服务间静态进行资源隔离,如HBase,Impala,Yarn分别使用一定百分比的资源。静态资源池默认不启用。 (2)动态资源池 用于某些服务内部的资源管理,如Yarn的各种资源调度器,Impala也可对不同池中的查询动态分配资源。 七.用户管理 (1)访问CM通过用户账户进行控制。用户账户标识如何对用户进行身份验证,并确定授予用户的权限。 (2)CM提供了多种用户认证机制。可以配置CM使用CM数据库认证用户,或使用某种外部认证服务。外部认证服务可以是LADP服务器,或者指定的其他服务。CM还支持使用安全断言标记语言(SAML)来实现单点登录。 八.安全管理 (1)认证: 认证是指用户或服务证明其有访问某种系统资源的权限。Cloudera集群支持操作系统认证,LDAP,Kerberos等认证方式。LDAP和Kerberos并不是互斥的,很多时候可以一起使用。 (2)授权: 授权关注谁可以存取或控制指定的资源或服务。CDH目前支持以下几种权限控制: 1>.传统的POSIX形式的目录和文件权限控制; 2>.HDFS扩展的ACL细粒度权限控制; 3>.HBase可对用户和组设置各种操作的ACL; 4>.使用Apache Sentry进行基于角色的全下控制; (3)加密: 集群不同层面存储和传输的数据支持不同的加密方式。 九.Cloudera管理服务 Cloudera Management Service 实现了多种管理特性,包括活动监视,主机监控,服务监控,时间服务,告警发布,报表管理等。
4>.Cloudera Manager基本核心功能
Cloudera Manager作为Hadoop大数据平台的管理工具,能够有效地帮助用户更容易地使用Hadoop。他的核心功能分为四大模块:管理功能,监控功能,诊断功能和集成功能。 一.Cloudera Manager提供的管理功能 (1)批量自动化部署节点 CM提供强大的Hadoop集群部署能力,能够批量的自动化部署节点。安装一个Hadoop集群只需添加安装的节点,安装需要的组件和服务角色这三步,大大缩短了Hadoop的安装时间,也简化来Hadoop的安装过程。 (2)可视化的参数配置功能 Hadoop包含许多组件,不同组件都包含各种各样的XML配置文件。CM提供界面GUI可视化参数配置功能。 (3)智能参数验证以及优化 当用户配置部分参数值有问题时,CM会给出智能错误提示,帮助用户更合理地修改配置参数。 (4)高可用配置 CM对关键的组件使用HA部署,如NameNode高可用可以通过CM的Web管理界面,根据向导启用HDFS HA。 (5)权限管理 提供不同级别的管理权限,比如只度用户访问Cloudera Manager的界面时,所有服务对应的启停等操作选项都不可用。 二.Cloudera Manager提供的监控功能 (1)服务监控 查看服务和实力级别健康检查的结果,对设置的各种指标和系统运行情况进行全面监控。如果任何运行情况测试是不良(Bad),则服务或者角色的状态就是不良(Bad)。如果结果运行状况存在隐患(Concering,没有任意一项目是不良(Bad)),则服务或者角色的状况就是存在隐患(Concerning)。而且系统会对管理员应该采取得到行动提出建议。 (2)主机监控 监控集群内所有主机的有关信息,包括主机上目前消耗的内存,主机上运行的角色分配等,不但显示所有集群主机的汇总视图,而且能进一步显示单个主机关键指标详细视图。 (3)行为监控 CM提供来列表和图表来查看集群上进行的活动,不仅显示当前正在执行的任务行为,还可以通过仪表盘查看历史活动。 (4)事件活动 监控界面可以查看事件,系统管理员可以通过时间范围,服务,主机,关键字等信息过滤事件。 (5)报警 通过配置CM可以对指定的时间产生警报,并通过电子邮件或者SNMP的事件得到制定的警报通知。 (6)日志和报告 可以轻松点击一个链接查看相关的特定服务的日志条目,并且Cloudera Manager可以将收集的历史日志监控数据统计生成报表。 三.Cloudera Manager提供的诊断功能 (1)周期性服务诊断 CM会对集群中运行的服务进行周期性的运行状况测试,以检测这些服务的状态是否正常。如果有异常情况,就会进行告警,有利于更早地让用户感知集群服务存在的问题。 (2)日志采集及检索 对于一个大规模的集群,CM提供了日志收集功能,能够通过统一的界面查看集群中每台及其,各项服务的日志,并且能够根据日志级别等不同的条件进行检索。 (3)系统性能使用报告 CM能够查看系统性能使用报告,包括集群的CPU使用率,单节点的CPU使用率,单个进程的CPU使用率等各项性能数据,这对于Hadoop集群的性能调试很重要。 四.Cloudera Manager提供的集成功能 (1)安全配置 为了方便Hadoop大数据平台与原有身份认证系统如AD,LDAP等的集成,CM只需在界面上配置即可完成。 (2)Cloudera Manager API 通过Cloudera Manager API,能够方便地将CM集成到企业原有管理系统集成。 (3)SNMP集成 CM也提供了方便的SNMP集成能力,只要简单的配置,就能够将SNMP进行集成,并且将集群中的告警信息进行转发。
5>.Cloudera Manager高级功能
Cloudera Manager的高级功能在免费的Express版本中是不提供的。 (1)软件升级滚动 Hadoop版本升级和bug修复,通常会影响业务的连续性。CM提供了滚动升级的功能,支持Hadoop平台进行滚动升级时继续对外提供服务以及应用。 (2)参数版本控制 任何时候进行配置修改并保存之后,Cloudera Manager会对该配置生成一个版本。Cloudera Manager支持查看历史配置,并回滚到不同版本,从而为集群恢复,问题诊断等提供了一个可靠的一句和方便的工具。 (3)备份及容灾系统BDR Cloudera为Hadoop平台提供一个集成的,易用的灾备解决方案。BDR为灾备方案提供了丰富的功能,CM和BDR提供了完整的用户画像,实现界面化的数据备份与灾难恢复。 (4)数据审计 Cloudera Navigator的审计功能支持对数据的审计和访问。 (5)安全集成向导 启用Kerberos集成和外部安全认证集成,如支持通过内部数据库和外部服务进行用户认证。 更多关于CM Express和付费版本功能对比表如下所示:
6>.CM和CDH安装方式
方法一: 使用使用一站式的二进制安装包,适合短期的小项目,会使用内置的PostgreSQL作为元数据库,如果你对该数据库运维知识掌握不是很清楚的话,不推荐使用该方法。因为它是一种类似于镜像文件的软件。 方法二: 手动安装数据库(支持Oralce,MySQL/MariaDB,PostgreSQL),手动安装CM,再通过CM安装各个组件。这也是比较喜欢用的一种方式。(我们会演示这种安装方式) 方法三: 使用tar包编译安装,适合需要定制开发的场景,或者使用puppet等自动化运维工具进行安装。这种方式甚至可以不装CM只装CDH即可。感兴趣的小伙伴可以研究一下哟~
7>.CM的下载地址
CM 6: 关于CM的bin下载地址 https://archive.cloudera.com/cm6/6.2.0/ 关于CM的rpm下载地址 https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPMS/x86_64/ 关于CM的tar包下载地址 https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPMS/x86_64/ CM 5: 关于CM的bin下载地址 https://archive.cloudera.com/cm5/installer/5.16.1.1/ 关于CM的rpm下载地址 https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.16.1/RPMS/x86_64/ 关于CM的yum源下载地址 https://archive.cloudera.com/cm5/repo-as-tarball/5.16.1/ 关于CM的tar包下载地址 http://archive.cloudera.com/cm5/cm/5/
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。
欢迎交流学习技术交流,个人微信: "JasonYin2020"(添加时请备注来源及意图备注)
作者: 尹正杰, 博客: https://www.cnblogs.com/yinzhengjie/articles/11019444.html