0593-CDH5与CDH6对比

2019-04-28 18:10:09 浏览数 (1)

1

文档编写目的

Cloudera于2018年8月30日正式发布CDH6.0.0,至2019年2月19日,最新的迭代版本为CDH6.1.1,可能马上就会发布CDH6.2。CDH6是基于Hadoop3同时包含大量其他组件的大版本更新的发布版本,许多用户考虑到未来CDH的版本主要是基于C6,而CDH5会慢慢的停止更新,所以考虑新搭集群使用CDH6,或者想把已有的CDH5集群升级到CDH6。第一个问题就是需要考虑CDH5和CDH6的差别,通过分析一些差异看能否将已有的应用迁移或者直接部署到CDH6,兼容性稳定性是否存在问题等。出于这个目的,本文会从各个方面详细比较CDH5和CDH6的差别,从而让用户能够进行正确的判断并进行相应的选择。以下内容主要基于最新的CDH5.16.1和CDH6.1.1进行比较。最后再次强调,没有最好的技术,也没有最新的技术就是最好的,永远只有最合适的技术。

2

组件版本对比

组件

CDH5.16.1

CDH6.1.1

Cloudera Manager

5.16.1

6.1.1

CDSW

1.5

1.5

Cloudera Navigator

2.15.1

6.1.1

Flume-ng

1.6.0

1.8.0

Hadoop

2.6.0

3.0.0

HBase

1.2.0

2.1.0

Hive

1.1.0

2.1.1

Hue

3.9.0

3.9.0

Impala

2.12.0

3.1.0

Oozie

4.1.0

5.0.0

Pig

0.12.0

0.17.0

Sentry

1.5.1

2.1.0

Solr

4.10.3

7.4.0

Spark

1.6.0/2.3.0

2.4.0

Sqoop

1.4.6

1.4.7

Sqoop2

1.99.5

Zookeeper

3.4.5

3.4.5

Kafka

1.0.1

2.0.0

Kudu

1.7.0

1.8.0

3

操作系统支持

操作系统

CDH5.16.1

CDH6.1.1

RHEL/CentOS/OL with RHCK kernel

7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 6.10, 6.9 , 6.8, 6.7, 6.6, 6.5, 6.4, 5.11, 5.10, 5.7

7.6, 7.5, 7.4, 7.3, 7.2, 6.10, 6.9 , 6.8

Oracle Linux (OL)

7.5, 7.4, 7.3, 7.2, 7.1 (UEK default), 6.9, 6.8 (UEK R2, R4), 6.7, 6.6, 6.5 (UEK R2, R3), 6.4 (UEK R2), 5.11, 5.10, 5.7 (UEK R2)

7.4, 7.3, 7.2 (UEK default), 6.10 (UEK default)

SLES

12 SP3, 12 SP2, 12 SP1, 11 SP4, 11 SP3

12 SP3, 12 SP2

Ubuntu

16.04 LTS (Xenial), 14.04 LTS (Trusty)

16.04 LTS (Xenial)

Debian

8.9, 8.4, 8.2 (Jessie), 7.8, 7.1, 7.0 (Wheezy)

不支持

4

元数据库支持

数据库

CDH5.16.1

CDH6.1.1

MySQL

5.1, 5.5, 5.6, 5.7

5.7

MariaDB

5.5, 10.0

5.5, 10.0

PostgreSQL

8.1, 8.3, 8.4, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 10

8.4, 9.2, 9.4, 9.5, 9.6, 10.x

Oracle

11g R2, 12c R1, 12.2

12.2

5

JDK支持

JDK

CDH5.16.1

CDH6.1.1

JDK7

1.7u55, 1.7u67, 1.7u75, 1.7u80

不支持

JDK8

1.8u31, 1.8u74, 1.8u91, 1.8u102, 1.8u111, 1.8u121, 1.8u131, 1.8u144, 1.8u162, 1.8u181

1.8u31, 1.8u74, 1.8u91, 1.8u102, 1.8u111, 1.8u121, 1.8u131, 1.8u141, 1.8u162, 1.8u181

OpenJDK

1.8u181(CDH5.16之前的版本不支持OpenJDK)

1.8u181

6

单用户模式

我们一般在安装CDH时,都是使用root或具有sudo权限的用户安装的,如果大家有注意会发现用于管理每台主机上的Hadoop进程的Cloudera Manager Agent服务(cloudera-scm-agent)是以root用户身份运行的。但是在有些企业,运维部门有严格的要求,需要CDH使用自己的用户来管理即不能随便使用root,比如要求cloudera-scm-agent服务以其他用户进行启停和管理。从Cloudera Manager 5.3开始Cloudera提供了single user mode,来满足这种要求。在单用户模式下,Cloudera Manager Agent和所有由Cloudera Manager管理的服务进程都可以由配置的用户来启动。单用户模式优先考虑Hadoop与系统其余进程之间的隔离,而不是Hadoop进程之间的隔离。对于Cloudera Manager的部署,单用户模式是全局的,适用于由该Cloudera Manager管理的所有集群。默认情况下,单用户是cloudera-scm。

从CDH6开始,不再支持单用户模式,安装必须使用root或具有sudo权限的用户安装。

参考:

《0517-如何在CDH5中使用单用户模式》

《0520-如何使用非root用户启动CM的Server和Agent服务》

《0547-CM Server和Agent服务停止脚本说明》

《0547-CM Server和Agent服务停止脚本说明》

《0548-5.13.1-如何使用普通用户管理CM server和agent服务》

《0551-6.1-普通用户配置kill CDH集群进程权限》

7

Cloudera Manager

7.1

安装

1.从安装方式上来看,CDH6与CDH5变化不大,这也方便了CDH5的用户可以较为快速的迁移到CDH6,以及适应CDH6的安装与使用。

2.安装向导界面有一些变化,现在可以一目了然的看到一共多少步骤,以及每个步骤是干什么。

3.进到主界面变化也不大,主要是Cloudera的logo变成了黑色,与Cloudera主页的整体风格一致。

4.在配置Cloudera Manager连接到数据库时的脚本有所变化。以前是/usr/share/cmf/schema/scm_prepare_database.sh,现在是/opt/cloudera/cm/schema/scm_prepare_database.sh

5.Cloudera Manager服务的状态在Redhat7通过systemctl status cloudera-scm-server查看是显示正确,而以前是不正确的。

6.Cloudera Manager的rpm安装包由之前的7个变成了5个,去掉了之前的JDK6的包,然后自带JDK1.8.0_141,将不再支持JDK1.7。

7.注意CM的安装除了下载rpm包以外,还要下载allkeys.asc文件,否则安装agent的时候会报以下错误:

8.对于离线安装CDH6.0,分发Parcel出现hash校验失败的问题,是因为在CM6中修复了一个bug,让它不再忽略由http服务器发送的“Content-Encoding”的header信息,但是我们在Redhat中安装的httpd服务,当它传输parcel文件时,默认会错误的设置“Content-Encoding”。于是CM server会错误的认为parcel文件已经被httpd压缩并尝试解压缩。所以会导致失败。解决办法是设置httpd的conf文件,AddType application/x-gzip .gz .tgz .parcel,然后重启httpd服务和CM服务。

9.在安装过程中会有页面提示Auto-TLS,该步骤可以忽略,不过如果对主机通信或者CM页面访问有SSL/TLS需求的话,也可以按照提示进行配置。

参考:

《0491-如何在Redhat7.4安装CDH6.1》

7.2

Cloudera免费版节点数限制

Cloudera免费版现在不允许集群节点数超过100,具体如下描述:

1.单个Cloudera Manager管理的所有CDH6.x集群所包含的主机总数不允许超过100个,如果超过,增加主机会失败。

2.如果Cloudera Manager管理的集群主机数量超过100,Cloudera Manager不允许将集群升级到CDH6.x。如果你主机总数超过100,从Cloudera Manager6.0升级到6.1会失败,这时你需要移除一些主机使总数小于100,然后重新升级才能成功。

注意:如果你从Cloudera企业版降级为Cloudera免费版后,并且你的主机数量超过了100,这时Cloudera Manager会禁用集群管理的所有功能除了停止集群。如果主机总数超过100,你将无法重启集群或以其他方式使用集群,必须使用Cloudera Manager删除主机使主机总数小于100后才能恢复正常。

受影响的版本:Cloudera Manager6.1或更高版本

7.3

Cloudera Manager6.0的新特性

参考:

https://www.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cm_600_new_features.html

7.4

Cloudera Manager6.1的新特性

参考:

《0488-Cloudera Manager6.1的新功能》

8

CDH6的新特性

8.1

CDH6.0的新特性

参考:

https://www.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_600_new_features.html

8.2

CDH6.1的新特性

参考:

0487-CDH6.1的新功能

9

总结

CDH6相对于CDH5是一次各个组件的大版本升级,要理解大版本更新,这里先解释一下Hadoop相关组件的版本说明。比如版本号是x.y.z,z代表的一般是Maintenance Version或Patch Version,这种版本升级主要修复bug,不改动API,也不涉及新的功能,y代表的是Minor Version,这种版本升级主要是增加新的功能和新的API,x代表的是Major Version,往往会新增全新的功能,甚至改动API。那么CDH5到CDH6就是一次Major Version的升级,新增了很多功能,API的更改有可能导致你旧有的程序的不兼容而需要修改或者重新开发,但根据软件开发迭代的原则,往往新版本会向下兼容一段时间,你只需要经过严格的测试,在一段时间内应用开发的修改理论不会太大,但还是要结合实际情况,进行严格的测试后再行判断和评估。

CDH5现在依旧是市场上用的最多,推得最广的版本,客户认可度也较高。同时,CDH5经过快5年的迭代也是目前最成熟和稳定的版本,各个组件跟随着社区版的更新迭代,已经把各个组件的bug修复得很完善。另外,无论是国外还是国内支持案例也多,国内可以找到很多相关的实施案例供参考,可以节省运维人力、物力成本。最后CDH5的周边生态圈支持也比较丰富,无论是开源还是商业产品,ETL工具,调度工具,报表工具,BI工具等。你如果现在选择CDH5或者已经在用了,Cloudera也官宣了依旧会再支持三年。

CDH6的更新较大,很多组件也都是大版本更新,引入了很多激动人心的新功能,同时各个组件也修复了大量已知的问题和安全漏洞。比如HDFS的纠删码用于冷数据降低存储成本又保证了数据的可用性,NameNode和YARN的联邦解决大规模集群的性能瓶颈问题,YARN引入GPU支持,未来会引入docker支持等。长远来看,从Hadoop2升级到Hadoop3或者从CDH5升级到CDH6是必须的,因为无论是社区还是Cloudera从现在开始开始都会将开发重心转移到Hadoop3或CDH6上,而CDH5则主要以维护和修复bug为主。

建议:

1.如果你是新搭集群,并且规模不太大(50个节点以内),基于Hadoop的应用也都是新开发,CDH6是一个不错的选择,毕竟避免了以后还要考虑从CDH5升级到CDH6的麻烦,同时还需要进行一次应用测试和迁移。未来迁移到CDH和HDP的合并版本CDP也会更加容易。

2.如果你已经有CDH5集群,作为生产系统各种应用已经稳定运行了较长的时间,如果不是因为功能或性能原因必须要用新版本,现阶段可以暂时不考虑升级,继续观望一段时间。而你一旦决定升级,需要谨慎和细致的对待,包括你要考虑OS,JDK,元数据库等的升级,已有各种应用比如Hive/Impala/Spark SQL,MapReduce/Spark代码,脚本,Python/R算法工程等在CDH6进行测试,同时周边的一些工具对接比如ETL,调度,报表,BI工具等也需要进行对接测试,一切测试通过以后规划好合理的停机时间,然后进行升级。

注:以上总结分析和建议不具备通用性,仅供参考,如果您在选择CDH版本时存在问题,请联系Cloudera销售代表和技术支持结合您的实际情况进行合理的分析和建议。

0 人点赞