前置文章参考《0585-Cloudera Enterprise 6.2.0发布》和《0589-Cloudera Manager6.2的新功能》
1
Hadoop各版本说明
组件 | 组件描述 | 版本 |
---|---|---|
Hadoop | 可靠的,可扩展的,分布式的存储和计算平台 | v3.0.0 |
HBase | 实时读写访问的可扩展的记录和表的存储 | v2.1.0 |
Hive | 具备类SQL接口和ODBC/JDBC驱动的元数据知识库连接BI应用和Hadoop | v2.1.1 |
Hue | 遵循Apache许可协议的基于浏览器的桌面Hadoop接口 | v4.2.0 |
Impala | 遵循Apache许可协议的、针对存放在HDFS和HBase数据的实时SQL查询引擎 | v3.2.0 |
Kafka | 高度可扩展的、容错的发布订阅制消息系统 | V2.1.0 |
Yarn | Hadoop各组件资源协调 | V3.0.0 |
Flume | 收集和聚合日志和事件数据,实时流写入HDFS或HBase的分布式框架 | v1.9.0 |
Pig | 处理存放在Hadoop里的数据的高级数据流语言 | v0.17.0 |
Solr | 文本、模糊数学和分面搜索引擎 | v7.4.0 |
Spark | 支持循环数据流和内存计算的高速通用数据处理引擎 | v2.4 |
Sqoop | 为集成Hadoop和关系数据库的数据传输引擎 | v1.4.7 |
Zookeeper | 高可靠的分布式协同服务 | v3.4.5 |
Kudu | 一种新的列式存储 | V1.9 |
2
Apache Flume
从CDH6.2开始,打包的Flume版本是1.9,包含了许多改进:
1.在尝试recoverLease之前,Flume HDFS Sink retries可以以一定的间隔时间关闭可配置的次数,这个间隔时间是可以配置的。
2.通过标准-D JSSE系统属性或环境变量可以指定全局SSL密钥库参数。组件级配置也是可能的。
3.更新到Kafka 2.0客户端。
4.添加了对syslog和多端口syslog源的SSL/TLS支持。
5.hdfs.callTimeout新的默认时间为30s。
6.添加了两个用于获取事务容量和批量字段的新接口,以防止source的批量大小大于channel的事务。
3
Apache Hadoop
3.1
HDFS
3.1.1
JournalNode Synchronization
CDH现在支持同步集群中JournalNodes的内容。此功能有助于保持集群中所有JournalNode内容的一致性。
3.1.2
Option for fixing misreplicated blocks
hdfs fsck命令现在包含-replicate选项,它可以触发错误复制的数据block的复制。
3.2
YARN
3.2.1
GPU Usage
CDH支持NVIDIA GPU作为YARN的资源。可以使用Cloudera Manager启用GPU。
3.2.2
Custom Resource Types
CDH支持自定义资源的定义和管理。这意味着YARN中的资源系统是可配置的。可以使用Cloudera Manager创建资源。
4
Apache HBase
4.1
HBase Pre-Upgrade Tools Checkbox
在将CDH5集群升级到CDH6时,有三种预升级工具可帮助您验证HBase兼容性:
- hbase pre-upgrade validate-dbe和hbase pre-upgrade validate-hfile:这些工具验证您的表或快照都不使用PREFIX_TREE Data Block Encoding。
- hbase pre-upgrade validate-cp:此工具验证您的co-processors是否与升级兼容。
当您尝试从CDH5集群升级到CDH6集群时,会出现复选框以确保您已执行所有与HBase相关的升级前迁移步骤。
4.2
HBase Serial Replication
Serial replication允许HBase Replication以有序的方式将更新发送到远程集群。例如,它可以按照源收到更改的顺序发送更新。有两种方法可以启用此功能:
- 创建新peer时指定SERIAL => true标志:
hbase> add_peer 'serialpeer1', CLUSTER_KEY => "cluster.example.com:2181:/hbase", SERIAL => true
- 修改一个已有的peer:
hbase> set_peer_serial ''serialpeer1', true
如果使用Lily HBase NRT Indexer服务,Cloudera建议不要使用HBase Serial Replication,因为要将更新传播到Solr从而会导致额外的延迟。
4.3
Additional IO Engine Support
支持两种新的桶缓存io引擎类型:
- mmap:通过内存映射存储和访问缓存到指定路径下的文件。
- pmem:使用持久性内存设备的直接访问功能。它只能配置为安装在DC PMEM设备上的路径。
这两个引擎只能在Cloudera Manager中使用safety valve进行配置。
5
Apache Hive
5.1
Compile Lock Removal
Hive现在支持删除查询编译锁。取消激活编译锁可以使受控数量的查询并行编译。默认的并行度(worker的数量)为3,用户可以根据需要在Cloudera Manager中进行配置。
5.2
Secured S3 Credentials for Hive
现在,Cloudera Manager可以安全地存储S3凭据,这使得多用户Hive-on-S3集群成为可能。
5.3
Secured ADLS Credentials for Hive
现在,Cloudera Manager可以安全地存储ADLS凭据,这使得多用户Hive-with-ADLS集群成为可能。
6
Hue
6.1
Apache Tez Integration Improvements
现在,当您使用Tez作为Hive的查询执行引擎时,作业将显示在Hue Job Browser中。 将打印查询ID并显示查询进度。
6.2
Enhanced Impala SQL Query Troubleshooting
Impala SQL查询profiles的图形显示在很多细节方面得到了增强。新添加的这些信息可帮助您了解查询瓶颈发生的位置和原因,以及如何优化查询以消除它们。例如,现在可以提供有关查询执行的每个节点的CPU处理时间和网络或磁盘I/O时间的详细信息:
此外,单击窗格的标题可以打开详细信息面板:
要访问这些特性:
1.在Hue Impala editor中运行一个查询。
2.从左边的菜单,启动Job Browser。
3.在Job Browser中,选择Queries选项卡。
4.在查询列表中,单击刚刚运行的查询以启动图形显示。
7
Apache Impala
7.1
Multi-cluster Support
- Remote File Handle Cache
当--cache_remote_file_handles impalad标志设置为true时,Impala现在可以缓存远程HDFS文件句柄。此功能不适用于非HDFS表,例如Kudu或HBase表,并且不适用于将数据存储在云服务(如S3或ADLS)上的表。
7.2
Enhancements in Resource Management and Admission Control
Admission Debug页面位于Impala Daemon Web UI的/admission中,并提供有关Impala资源池的以下信息。
- Pool configuration
- Relevant pool stats
- Queued queries in order of being queued (local to the coordinator)
- Running queries (local to this coordinator)
- Histogram of the distribution of peak memory usage by admitted queries
添加了一个新的查询选项NUM_ROWS_PRODUCED_LIMIT,以限制从查询返回的行数。
如果查询产生的行数超过此查询选项指定的限制,Impala将取消查询。该限制仅适用于将结果返回给客户端的情况,例如对于SELECT查询,但不是INSERT查询。此查询选项是针对用户意外提交返回大量行的查询的护栏(guardrail)。
7.3
Metadata Performance Improvements
- Automatic Metadata Sync using Hive Metastore Notification Events
启用后,catalogd以可配置的间隔轮询Hive Metastore(HMS)通知事件并与HMS同步。您可以使用catalogd的新Web UI页面来检查自动invalidate event processor的状态。
注意:这是CDH6.2中的预览功能,如果没有Cloudera Support的指导,则不应使用该功能。如果您对使用该功能感兴趣,请提交支持服务ticket并通过Cloudera Support工作。
7.4
Compatibility and Usability Enhancements
- Impala现在可以读取TIMESTAMP_MILLIS和TIMESTAMP_MICROS Parquet类型。
- 支持LEVENSHTEIN字符串功能。
该函数返回两个输入字符串之间的Levenshtein距离,即将一个字符串转换为另一个字符串所需的最小单字符编辑数。
- ALTER TABLE语句支持IF NOT EXISTS子句。
- 新的DEFAULT_FILE_FORMAT查询选项允许您设置默认的表文件格式。这样你就不用设置STORED AS <format>子句。如果您更喜欢非TEXT的值,请设置此选项。 支持的格式包括:
- TEXT
- RC_FILE
- SEQUENCE_FILE
- AVRO
- PARQUET
- KUDU
- ORC
- Extended或verbose的EXPLAIN输出,包括以下用于查询的新信息:
- 已重写的分析查询的文本包括各种优化和隐式强制转换。
- 隐含的强制转换和文字与实际类型一起显示。
- CPU资源利用率(user, system, iowait)指标已添加到Impala profile输出中。
7.5
Security Enhancement
已实现REFRESH AUTHORIZATION语句以刷新授权数据。
8
Apache Kafka
8.1
Rebase on Apache Kafka 2.1.0
CDH6.2.0中的Kafka基于Apache Kafka 2.1.0。
- 用于存储consumer offset的内部schema已更改。
警告:由于此更改,升级后就无法降级。 |
---|
- 增加了对Zstandard压缩的支持。
- 当使用按topic配置覆盖动态更新unclean.leader.election.enable时,controller会自动启用unclean领导者选举。
- AdminClient中添加了一个新方法AdminClient#metrics()。这允许使用AdminClient的任何应用程序通过查看从AdminClient捕获的指标来获取更多信息和洞察力。
8.2
New Metrics
增加了以下Broker相关的指标:
- Zookeeper Request Latency
- Consumer Groups Completing Rebalance
- Consumer Groups Dead
- Consumer Groups Empty
- Consumer Groups Preparing Rebalance
- Consumer Groups Stable
- Zookeeper Auth Failures
- Zookeeper Disconnects
- Zookeeper Expires
- Zookeeper Read Only Connects
- Zookeeper Sasl Authentications
- Zookeeper Sync Connects
- Incremental Fetch Session Evictions Rate
- Number of Incremental Fetch Partitions Cached
- Number of Incremental Fetch Sessions
- Unclean Leader Election Enable Rate and Time
8.3
Support for Authentication with Delegation Tokens
从CDH6.2开始,Kafka集群支持基于委托令牌的身份验证。基于委托令牌的身份验证是一种轻量级身份验证方法,旨在补充现有的SASL身份验证。虽然Kafka委托令牌使用SCRAM身份验证模型,但不支持SCRAM。
8.4
Broker IDs are visible on the instance page in Cloudera Manager
现在可以在Cloudera Manager中轻松查看Broker ID。要查看Broker ID,请选择Kafka服务并转到Instances。可以在括号中的每个Kafka broker实例旁边找到Broker ID。
8.5
Default Behaviour Changes
- 当使用按topic配置覆盖动态更新unclean.leader.election.enable时,controller会自动启用unclean领导者选举。
- Cloudera Manager从现在开始收集的诊断包包括Kafka topic有关的信息。该诊断包包含以下两个命令暴露的信息:
- kafka-topics --describe
- kafka-topics --list
9
Apache Kudu
1.Kudu现在支持位置感知。Cloudera Manager中的机架分配将自动在Kudu中使用。kudu cluster rebalance工具已更新,可以根据位置感知Kudu的放置策略执行操作。升级后,如果分配了机架位置,则应运行kudu cluster rebalance工具,以确保现有表符合机架感知放置策略。
2.创建表时,master现在对副本总数而不是分区总数进行限制。如果手动覆盖--max_create_tablets_per_ts,则新表的最大大小实际上已被其复制因子的一个因子削减。请注意,创建表后仍可以添加分区。
3.更新了compaction策略,以减少行集(rowsets)的数量。这可以加快扫描和缩短启动时间,特别是对于“trickling inserts”工作负载,其中行按主键顺序缓慢插入。
4.新的tablet级别指标,average_diskrowset_height,显示了需要压缩副本的程度,如每单位keyspace的平均行集(rowsets)数所示。
5.读取多个表的多列导致繁重的UPDATE工作负载的扫描现在更加节省CPU。在某些情况下,升级到此版本后,此类表的扫描性能可能会快几倍。
6.Kudu-Spark用户现在可以为Spark提供简短的“kudu”格式别名。这样你可以使用.format(“kudu”),而不是全名如.format(“org.apache.kudu.spark.kudu"),或者导入org.apache.kudu.spark.kudu._,然后使用隐式的.kudu函数。
7.KuduSink类已经添加到Spark的StreamSinkProvider中,允许将structured streaming写入到Kudu。
8.对于Kudu的consensus实现和后台进程,服务器端日志记录的数量已大大减少。此日志记录被确定为无用且冗长。
9.Kudu Web UI现在可以清楚地指出哪些列是主键的一部分。
10.新的kudu table describe工具描述了表属性,包括schema,分区,复制因子,列编码,压缩和默认值。
11.新的kudu table scan工具扫描表中的行,支持comparison, in-list和is-null谓词。
12.新的kudu locate_row工具允许用户确定给定的主键属于哪个tablet,以及该主键是否存在行。
13.新的kudu diagnose dump_mem_trackers工具允许用户以CSV格式输出/mem-trackers Web UI页面的内容。
10
Apache Parquet
10.1
Support for New Logical Type Representation
parquet-mr引入一个新的,更灵活的逻辑类型API,在parquet-format基于Thrift field已经推出有一段时间了。新API允许存储和检索不同类型的属性,例如,时间戳语义和精度。
新逻辑类型由LogicalTypeAnnotation类表示,并且完全向前和向后兼容先前的逻辑类型。使用旧API编写的文件可以使用新API读取,只要不使用新类型,使用旧API编写的文件也可以使用旧API读取。
11
Apache Spark
11.1
Spark Driver Logs
当Spark应用程序以YARN-client模式或Spark Shell运行时,Spark服务会收集Spark driver的日志。此功能默认会启用,日志将持久保存到HDFS目录并包含在YARN诊断包中。
要禁用此功能,可以在Spark服务的Configuration页面取消勾选Persist Driver Logs to Dfs
11.2
Spark Structured Streaming reference application for CDH
Spark结构化流参考应用程序是一个项目,其中包含演示Apache Kafka - > Apache Spark Structured Streaming - > Apache Kudu管道以供摄取的示例应用程序。该项目的主要目标是帮助客户在CDH上构建结构化流应用程序。
12
Apache Sqoop
12.1
Support Decimal Type from Parquet Import and Export
无论是HDFS还是Hive,Sqoop现在都支持DECIMAL类型的import和export。CDH6.2中默认启用该新功能,如果是从旧的版本升级到6.2该功能默认会禁用。
12.2
Importing Data into Microsoft Azure Data Lake Store (Gen1 and Gen2) Using Sqoop
CDH6.2支持在两代ADLS中使用Apache Sqoop。您可以使用Sqoop在Apache Hadoop和结构化数据存储(如关系数据库)之间高效传输批量数据。也可以使用Sqoop将具有JDBC适配器(如SQL Server,MySQL等)的任何关系数据库中的数据导入ADLS文件系统。