CDH5.14和CM5.14的新功能

Hadoop实操2018-10-10 13:37:25

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。


Fayson的github:https://github.com/fayson/cdhproject


提示:代码块部分可以左右滑动查看噢


Fayson2017年的1012日介绍了《CDH5.13和CM5.13的新功能》,今天126日,Cloudera正式发布了CDH5.14。三个月零几天,2018年第一次更新比以往时候来的更晚一些,估摸着是老外过年放假导致的吧。本次更新包括集成CDSW1.3Kudu1.6Impala2.11等新功能,还修复了大量bug。以下我们看看CDH5.14CM5.14具体的更新内容。


1.CDH5.14的新功能

1.1.Apache Impala 2.11



1.新的Boolean运算符:IS TRUE, IS NOT TRUE, IS FALSE, IS NOT FALSE, IS UNKNOWN,IS NOT UNKNOWN。这些运算符不是返回TRUE就是FALSE,即使左边表达式的值为空(NULL)。IS[NOT] TRUE IS [NOT] FALSE是等式和不等式比较的空安全等价(NULL-safe equivalents)。IS[NOT] UNKNOWNIS[NOT] NULL相同。


2.新的内置函数DATE_TRUNC()可以让你将TIMESTAMP的值截断到一个给定的精度。比如,调用函数date_trunc('hour',ts)ts截断到相应小时的开始位置,所有分钟,秒,毫秒等都会被设置为0


3.impala-shell命令行你现在可以带上参数--query_option=option=value来设置该shell会话的查询选项。在impala-shell中也可以指定多个--query_option来指定多个查询选项。

 

impala-shell的配置文件,比如.impalarc,你可以以[impala.query_options]开头,然后后面跟上query_option=value格式的行。这样对于使用这些配置文件的impala-shell,这些查询选项默认生效,不需要在命令行再单独指定。


4.SET语句,如果不加任何参数运行,输出会被分组成正常(regular),高级(advanced),开发(未完成,没准备好通用)"development" (unfinished, not ready for general use),和已弃用(可移除)"deprecated"(subject to removal)。默认情况下,SET输出中不显示”development" "deprecated" 两个选项组。使用SET ALL命令可以查看所有组的选项和值。


5.通过构建表示从join的字段中最小和最大匹配值的运行时的filter,优化了基于Kudu表的一些join查询。将min-max的信息下推(pushed down)到Kudu,这样Kudu在将结果集发送给Impala之前可以裁剪掉没用的行。


6.BATCH_SIZE查询选项的允许范围为065536,以前是没有上限的。


7.算数表达式包含DECIMALFLOAT或者DOUBLE参数时,现在生成的结果是DECIMAL类型而不是DOUBLE


1.2.Cloudera Search



在之前的版本中,Lily HBase Indexer服务仅仅支持Sentry策略文件的授权。现在直接支持Sentry服务。具体请参考:


https://www.cloudera.com/documentation/enterprise/latest/topics/search_hbase_indexer_security.html


1.3.Kudu 1.6

1.3.1.Kudu 1.6/CDH 5.14的新功能



1.Tablet Server默认启用了磁盘容错功能,该功能扩展到可以处理运行时数据目录故障。运行时如果发生磁盘故障,在故障磁盘上的所有有数据的tablets会关闭,然后在其他的Tablet Server上起来。注意第一个配置的数据目录和WAL目录是不能忍受磁盘故障的。这个可能会在后续的版本中得到改进。


2.Kudu服务器现在可以通过kudu fs update_dirs这个工具来更新数据目录。新的目录只能用于新的tablet的副本。目前还不支持删除目录,参考:

https://issues.apache.org/jira/browse/KUDU-2202


3.Kudu Servers支持两个新的flags来控制WebUITLS/HTTPS设置:--webserver_tls_ciphers--webserver_tls_min_protocol。这些flags允许配置公布TLS密码和TLS的协议版本。另外,Web服务器现在默认排除不安全的传统密码。参考:

https://issues.apache.org/jira/browse/KUDU-2190


1.3.2.Kudu 1.6/CDH 5.14的优化和改进




1.Kudu Servers现在可以容忍NTP时钟同步的短暂中断。任何Kudu的守护进程启动时仍然需要NTP同步。如果NTP不同步,诊断信息会被记录从而方便查明问题。参考:

https://issues.apache.org/jira/browse/KUDU-1578


2.包含大量数据块的Tablet Server的启动时间明显得到提升。


3.日志块管理(log block manager)现在可以批量执行磁盘数据的删除。这个优化明显减少了删除tablet上数据的时间。


4.敏感数据编辑(data redaction)标志的使用已更改。通过设置--redact=log,在Web UI中将禁用编辑(redaction)功能,但保留用户服务器日志。或者,也可以使用--redact=none来完全禁用编辑(redaction)。


5.Spark DataSource的集成现在可以利用scanlocality获得更好的扫描性能。扫描将发生在最接近的副本,而不是非要去找副本的leader


6.做了很多优化来减少Tablet Server写入到第99个百分位时的延迟。同时也提高了写入工作负载的吞吐量,特别是在较大的集群上。


7.你可以配置Kudu忽略system-wide auth_to_local mappings,通过在/etc/krb5.conf中配置--use_system_auth_to_local=false,参考:

https://issues.apache.org/jira/browse/KUDU-2198


8.提升了compaction调度的性能。在以前的版本中,某些类型的时间序列工作负载可能导致compaction调度花费数十秒。这些工作负载现在可以更有效的提升一个数量级。


9.改进compaction调度,以避免在compaction的好处非常小的情况下进行compaction


10.Tablet servers现在会测试一个tablet所有副本的健康状态,然后决定是否先去掉这个tablet。当遇到多个同时发生的守护进程故障时,这个可以提高Kudu集群的稳定性。参考:

https://issues.apache.org/jira/browse/KUDU-2048


11.Kudu Master做了一些性能改进,尤其是在并发打开多个表时。这应该可以提高并发多的工作负载的性能。


12.Tablet磁盘大小的指标现在包含所有数据和元数据。以前,它不包括WALconsensus metadata。参考:

https://issues.apache.org/jira/browse/KUDU-1755


13.Kudu集群的ksck命令增加了一个详细模式,即使没有检测到错误,也可以输出有关集群元数据的详细信息。


1.3.3.Wire Protocol兼容性




Kudu1.6可以与以前旧版本的Kudu保持wire-compatible


1.Kudu1.6的客户端可以连接到Kudu1.0或之后的服务端。如果客户端使用的功能在服务端没有,则会报错。


2.虽然没有经过充足的测试,但是从Kudu1.5滚动升级到Kudu1.6可能可行。你也可以停掉集群所有节点的服务,升级软件,然后重启所有的daemon进程。


3.除了下面提到的安全集群的限制之外,Kudu1.0客户端可以连接到Kudu1.6的服务器。


Kudu1.3引入的认证功能对Kudu1.61.3之前的版本之间的wire compatibility有以下限制:


1.如果Kudu1.6的集群被配置为认证或者加密是必须的("required"),1.3之前的客户端不能够连接。


2.如果Kudu1.6的集群被配置为认证或者加密是可选的("optional")或者禁用的("disabled"),1.3之前的客户端可以连接。


1.3.4.客户端包的兼容性




1.Kudu1.6Java客户端与Kudu1.5API-或者ABI-兼容。针对Kudu 1.5编写的应用程序将编译和运行Kudu1.6客户端库,反之亦然。


2.Kudu 1.6 C ++客户端与Kudu 1.5APIABI向前兼容。针对Kudu 1.5客户端库编写和编译的应用程序将运行而不需要对Kudu 1.6客户端库进行修改。针对Kudu 1.6客户端库编写和编译的应用程序将运行而不需要对Kudu 1.5客户端库进行修改。


3.Kudu1.6Python客户端与Kudu1.5API兼容。针对Kudu1.5编写的应用程序可以继续在Kudu1.6上运行,反之亦然。


2.Cloudera Manager 5.14的新功能

2.1.ADLS



1.你现在可以使用Cloudera Manager为集群访问ADLS配置Microsoft Azure凭据(credentials),这样可以直接基于ADLS中存储的表运行HiveImpala查询,同时你还可以是用Hue浏览ADLS中的数据。具体参考:

https://www.cloudera.com/documentation/enterprise/latest/topics/cm_adls_creds.html


2.Hue集成ADLS。用户可以直接在ADLS中查询和存储数据,而不需要任何移动或复制数据到HDFS,或者从HDFSADLS


2.2.Backup and Disaster Recovery (BDR)



1.添加了Skip Checksum on Listing的选项。这个选项跳过通过比较2个文件的checksum来确认是否相同。BDR会使用文件大小和上次修改时间来检测文件是否修改。Skip Checksum on Listing这个选项可以提高性能。


2.当有复制作业在运行时,现在可以对集群执行滚动重启,或者对部分服务如HDFSHive


3.Replication Schedules页面上,你可以看到正在运行的复制任务的ThroughputProgress。这些信息你也可以在日志文件中看到。


4.hdfs-site.xmlcore-site.xml增加了用于HDFS复制的Advanced Configuration Snippets。通过增加一些参数可以对HDFS复制进行一些调试,比如由BDR写入的文件的复制因子。之前,你必须使用HDFS Client Advanced Configuration Snippet,这会影响目标集群上所有的HDFS客户端配置。


2.3.Custom Service Descriptor (CSD)



1.自定义服务添加了新的功能。CSD作业现在可以在拓扑描述符(topology descriptor)中指定一个角色类型,只有奇数个实例应该运行。


2.改进CSD的版本控制逻辑。当Cloudera Manager启动加载CSD时,只加载最新版本的CSD服务。版本号优先于CDH兼容性范围。


2.4.诊断包



诊断包现在包含了一些额外的数据:

集群资源使用报告

Navigatordashboard数据,如果集群中有Navigator服务的话


2.5.健康测试和监控



1.Linux主机熵监控增加了一个新的运行状况测试。默认情况下,运行状况测试会针对熵<200发出警告,对熵<100发出警报。另外,图标库(Charts Library)中也提供图标。


2.Cloudera Manager现在将KafkaBroker的健康状态汇总到Kafka服务的健康状态中。如果存在隐患(concerning)的brokers超过5%,则Kafka服务的健康状态为存在隐患(concerning)。如果不良(bad)的brokers超过50%,则Kafka服务的健康状态为不良(bad)。


3.如果至少有一个broker中的partition是离线,则Kafka服务的健康状态变为不良(bad)。


4.如果broker中的任何分区复制滞后,该broker的健康状态则变为存在隐患(concerning)


 2.6.主机维护模式



Cloudera Manager现在为主机维护和下线(decommissioning)提供了更多的选择。在下线时,在同一个对话框中你可以指定是否抑制来自下线主机的警告,对于具有DataNode角色的主机,你可以指定在维护期间是否将副本数不足的数据块复制到其他的DataNode。这个功能可以让DataNode处于离线(offline)状态,这会比较方便对主机进行小型维护比如添加内存,更换网卡或网线,这种操作的维护窗口都会比较短,而且也不会动到主机上的磁盘。否则,一旦一台DataNode离线超过10分钟,NameNode就开始复制不足的副本,这样会消耗集群的IO资源是不合理的。具体请参考:

https://www.cloudera.com/documentation/enterprise/latest/topics/cm_mc_decomm_host.html


2.7.安装



1.当你使用Cloudera Manager控制台或者API完成集群安装后,在Commands页面会提供一个链接方便你压缩打包下载所有主机上的安装日志文件。


2.你现在可以给一个集群增加一个服务,即使这个集群一个服务都没有。以前,如果这个集群是空的没有任何服务,你不能增加服务除非你先删除这个集群再添加一个集群。参考:

https://jira.cloudera.com/browse/OPSAPS-43577


2.8.Logs



cloudera-scm-agent.out目录现在使用跟Agentlog文件一样的目录,可以通过在Agentconfig.ini文件中指定存放路径。


2.9.设置默认的Oozie配置



action-conf/default.xml增加了新的Oozie Advanced Configuration Snippet。使用这个Advanced Configuration Snippet可以将默认的配置属性发布到所有的Oozie actions。参考:

https://jira.cloudera.com/browse/OPSAPS-42546


2.10.资源池



1.现在你可以为YARN的资源池的CPU和内存的最大值指定一个百分比,以前只能指定一个静态的值。


2.通过Cloudera Manager可以在配置页面,状态页面和资源报告页面对动态资源池进行排序。


2.11.Sentry



Lily HBase Indexer支持Sentry服务的直接授权。


3.Issues Fixed



还有修复了大量Hadoop, Hue, Impala, Flume, YARN, HBase, Kudu, Zookeeper等的bug,具体请参考:


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


参考文章:

https://www.cloudera.com/documentation/enterprise/release-notes/topics/cm_rn_new_changed_features.html#concept_h15_trd_ybb

https://www.cloudera.com/documentation/enterprise/release-notes/topics/cdh_rn_new_in_cdh_514.html#cdh_rn_new_in_cdh_514



提示:代码块部分可以左右滑动查看噢


为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。



推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操