Hadoop生态圈-Cloudera Manager扫盲篇
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
在讨论CDH、cloueramamager之前,我要问大家几个问题:
1>.4000台服务器的集群(已经安装好linux操作系统且分配好IP地址),最少花费多长时间来搭建好Hadoop集群(包括Hive,HBase,Flume,Kafka,Spark等Hadoop生态圈组件)?
2>.如果给你一天时间,你是否可以完成以上工作呢?
3>.对于以上集群进行hadoop版本升级,你会选择什么升级方案,最少花费多长时间呢?
4>.新版本的Hadoop,与Hive,HBase,Flume,Kafka,Spark等等兼容性问题你又打算如何处理?
关于上述的前两个问题,我之前分享过关于Hadoop生态圈各个组件的部署笔记,没错,我们可以写个脚本一台一台去执行安装,顺利的话我们是可以在一天内完成该工作的。但是在解决后两个问题就相对较麻烦了。这时候手动部署就带来了诸多不便,因此我们需要引入专业的Hadoop集群管理软件,比如CDH,HUE,HDP等等。
一.Apache Hadoop 不足之处
1>.版本管理混乱
如果部署过Hadoop的小伙伴,去官网下载安装包的时候,你会发现Hadoop各个发行版本特别多,目前主流分为三个大版本:hadoop-1.x,hadoop-2.x,hadoop-3.x。在每个不同的版本下又细分多个子版本。我们究竟应该选择哪个版本也比较麻烦。
2>.部署过程繁琐,升级过程复杂
相比看过我之前分享关于Hadoop各个组件的安装配置,你可能会觉得部署起来特别的麻烦。稍微又一个步骤没有做好,很可能导致集群中的某个节点无法正常启动进程。比如在集群中第一次部署完全分布式模式的时候,我们需要先启动一个进程(JournalNode),然后在对NameNode进行格式化操作。
3>.兼容性差
当你选择了Hadoop1.x版本时,那么也就意味着你只能选择相应的Hadoop 1.x版本兼容的Hadoop生态圈安装包,如果你选择的是Hadoop 2.x或者 Hadoop 3.x版本时,他们也对应的相应的Hadoop生态圈安装包,因此在部署的过程中你得考虑到版本是否兼容的问题。
4>.安全性底
我们在使用Java代码通过HDFS分布式文件系统时,想必大家都知道Hadoop默认的安全认证仅仅只是通过用户名的匹配(我们需要手动设置Hadoop访问的用户名), 这样的安全性配置就相对来说比较低了。
二.Hadoop发行版本介绍
1>.Apache版本(Apache Hadoop)最原始(最基础)的版本,对于入门学习最好
2005年Hadoop作为Lucene的子项目,Nutch的一部分正式引入Apache基金会。2006年3月份,Map-Reduce和Nutch Distributed File System(NDFS)分别被纳入称为Hadoop的项目中。
官网地址:http://hadoop.apache.org/
2>.Cloudera's Distribution Including Apache Hadoop(简称CDH)是大型企业互联网企业中的较多(按照技术服务收费)
2.1>.2008年成立的Coudera是最早将Hadoop商用的公司,为合作伙伴提供Hadoop的商用解决方案,主要包括支持,咨询服务,培训;
2.2>.2009年Hadoop的创始人Doug Cutting也加盟Cloudera公司。Cloudera产品主要为CDH,Cloudera Manager,Cloudera Support;
2.3>.CDH是Cloudera的Hadoop发行版,完全开源,比Apache Hadoop在兼容性,安全性,稳定性上有所增强;
2.4>.Coundera Manager是集群的软件分发及管理监控平台,开源在几个小时内部署好的一个Hadoop集群,并对集群的节点及服务进行实时监控。Cloudera Support即是对Hadoop的技术支持;
2.5>.Cloudera的标价为每年每个节点4000美元。Cloudera开发并贡献了可实时处理大数据的Impala项目。
官网地址:https://www.cloudera.com/downloads/cdh/5-10-0.html
下载地址:http://archive-primary.cloudera.com/cdh5/cdh/5/
3>.Hortonworks Data Platform(简称HDP),引入了沙盒(sandbox,也就是说我们可以直接拿过来用,对于hadoop初学者就不用考虑部署的过程)的概念,它文档比较好,它是后起之秀(即起步较晚)
3.1>.2011年成立的Hortonworks是雅虎与硅谷风投公司Benchmark Capital合资组建;
3.2>.公司成立之初最吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop 80%的代码;
3.3>.雅虎工程副总裁,雅虎Hadoop开发团队负责人Eric Baldeschwieler 出任Hortonworks的首席执行官;
3.4>Hortonworks的主打产品是Hortonworks Data Platform(HDP),也同样是100%开源的产品,HDP除常见的项目还包括Ambari,一款开源的安装呵呵管理系统;
3.5>.HCatalog,一个元数据管理系统,Hcatalog现已集成到Facebook开源的Hive中。Hortonworks的Stringer开创性的极大的优化了Hive项目。Hortonworks为入门提供了一个非常好的,易于使用的沙盒;
3.6>.Hortonworks开发很多增强特性并提交至核心主干,这使得Apache Hadoop能够在包括Windows Server和Windows Azure在内的Microsoft Windows平台上本地运行。定价以集群为基础,每10个节点每年为12500美元;
官网地址:https://hortonworks.com/products/data-platforms/
下载地址:https://hortonworks.com/downloads/#data-paltform
4>.MapR
和其它的Hadoop发型版本相比,它的优势在于他支持linux,unix,hdfs文件系统。并且在容灾方面相比其它的版本来说更好一些。比HDFS块2-5倍,还具有镜像,快照等特性,但用的人少。
5>.EMR
这个是亚马逊推出的一个托管的方案,这个软件我也没咋研究过。感兴趣的小伙伴可以自行百度学习一下吧。
6>.Alluxio
基于内存的分布式文件系统,速度比HDFS有优势,但想替代HDFS进行海量存储还是不现实的,用的人也少。
7>.Kudu
Kudu是一个秘密开发三年的解决方案,它现在已经被列为Apache的一个顶级项目(官网地址:http://kudu.apache.org/),严格来说,Kudu想替代的是HDFS+HBase的解决方案。具备低写入延迟和高性能分析的特征。缺点本身不提供SQL接口,学习成本相对较大!
替代MapReduce的产品出现:
Spark:
更好的利用内存,因此比MapReduce快10倍以上,它也可以很好的和Hadoop共存,On yarn模式,因此一部分场景可以替代MapReduce是可以的。
Tez:
适合DAG形式的计算,也有on yarn模式,用作hive的底层计算框架效果较好,用作hive的底层计算框架效果较好,缺点还是用的人少。
ParameterServer:
主要用于机器学习的并行计算,和MapReduce,Spark不同的是,其采用异步通信的方式,减少由于节点间的延时和性能浪费。
8>.为什么大数据都要学Hadoop
非顶级公司,即非一线互联网公司(如谷歌,Facebook,百度,阿里等等),公司规模少于1000人,Hadoop几乎是分布式计算的必选方案。即使你进入顶级公司,Hadoop的经验也非常有用!比如阿里公司就没有用Hadoop生态圈组件,而是用C++自己研发了一套“阿里飞天架构”(如下图,图片来自互联网,如有侵权,请在博客下文留言!)
三.CDH简介
1>.CDH的全称是Cloudera's Distribution Including Apache Hadoop。它是Cloudera’s公司的推出的;
2>.CDH是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建;
3>.提供了Hadoop的核心:可扩展存储(HDFS),分布式计算(MapReduce);
4>.基于Web的用户界面
5>.CDH架构图
6>.CDH的优势
6.1>.版本划分清晰(CDH.3.x版本主要针对hadoop1.x版本,CDH.4.x以后版本主要针对hadoop2.x版本,一开始CDH免费版本仅支持50台集群的服务器,建议使用CDH5.x版本,因为它取消了关于50台集群的限制,不过如果需要定制化的CDH版本就得付费了)
6.2>.版本更新速度块
6.3>.默认支持kerberos安全认证
6.4>.文档清晰(具体可以参考官方文档:https://www.cloudera.com/downloads/manager/5-4-3.html)
6.5>.支持多种安装方式(比如:Cloudera Manager,Yum,Rpm,Tarball等方式,本篇博客采用Cloudera Manager方式)
7>.CDH下载地址
CDH5.4下载地址:http://archive.cloudera.com/cdh5/
Cloudera Manager5.4.3下载地址:http://archive.cloudera.com/cm5/
四.Cloudera Manager介绍
1>.什么是Cloudera Manager
Cloudera Manager 是一个管理CDH的端到端的应用。
2>.Cloudera Manager的作用
主要表现在以下几个方面:
2.1>.管理(可以管理整个集群的服务器,还可以管理CDH所安装的服务)
2.2>.监控(可以监控集群中CDH服务器的硬件以及软件的运行情况)
2.3>.诊断(可以以日志或图表的形式显示出集群中存在的问题)
2.4>.集成(将hadoop生态圈的软件都集成在一起了)
3>.Cloudera Manager架构图(注意,CM是管理CDH的哟!)
4.1>.Agent 1 .. .Agent n:
所有的Agent相当于集群。Agent部署在每一台服务器上,Server的控制命令最终由Agent来完成,而Agent通过Python调用shell脚本来控制具体的启动或者停止的脚本执行。
4.2>.Server
相当于Cloudera Manager的主节点,它可以管理整个集群。它主要负责以下几件事情:
第一:处理软件和服务器的逻辑关系;
第二:处理服务的安装配置,启动,停止等;
第三:控制对应的角色的启动和停止;
第四:管理集群(每一台Agent)
4.3>.Database
需要关系型数据库存储数据。
4.4>.Management Server
对整个集群运行的硬件和软件做一些预警,监控,报告等。当你的图标没有出来的时候,你就得考虑它是否正常启动了。
4.5>.Cloudera Repository
Cloudera官网的支持,可以下载软件包。
4.6>.Clients
通过webUI或者调用对应的API来控制Server。如果你是通过webUI界面点击了某个操作,比如让某个集群停止或启动,首先这个指令会发送给Server端,然后Server端根据自己的记录去找相应的Agent执行相应的脚本来停止或者启动应用。默认Server端会想Agent发送五次指令,如果这五次指令Agent都没有相应,则Server端判定Agent端存在故障。
五.Cloudera Manager的部署
详情请参考:https://www.cnblogs.com/yinzhengjie/p/9495964.html
六.Cloudera's Distribution Including Apache Hadoop(简称CDH)部署
详情请参考:https://www.cnblogs.com/yinzhengjie/p/9638360.html