问题导读 1.容器新增加了哪个概念? 2.Opportunistic类型容器有什么特点? 3.为何说Opportunistic类型容器提高集群效率? 4.hadoop3.0,可以通过什么方式来配置Capacity 调度? 5.yarn资源类型除了cpu和内存,还可以自定义哪些类型?
Shaded client jars 解决了依赖冲突问题 hadoop2.x中所有依赖都添加到应用程序环境变量,这样有可能造成应用程序依赖与hadoop依赖冲突。HADOOP-11804添加了新的 hadoop-client-api 和hadoop-client-runtime artifacts,这样避免了hadoop依赖到应用程序的classpath.这可能跟我们以前经常遇到的多个重复的包,有关系。 支持 Opportunistic 容器和分布式调度 引入了一个概念ExecutionType。应用程序需要Opportunistic类型的可执行的containers.这种类型的容器,可以在namenode上执行,甚至在调度没有资源的情况下。这种情况下,这些容器containers,将会在namenode排队,等待资源启动。Opportunistic 容器比默认的Guaranteed类型容器优先级低,因此如果需要可以抢占资源,为Guaranteed容器腾出空间。这将提高集群利用率。 S3Guard:为S3 客户端文件系统提供一致性和缓存Metadata HADOOP-13345为亚马逊存储(Amazon S3 storage)S3A 客户端添加了一个可选的feature:有能力使用DynamoDB表作为一个快速的和一致的存储文件和目录元数据 HDFS基于路由器联盟(Router-Based Federation) HDFS路由器联盟添加了RPC 路由层,提供多个HDFS命名空间namespaces的联合视图。这个与 ViewFs和 HDFS Federation类似。这里面mount table由服务端管理,而不是有客户端管理,这简化了HDFS 客户端对联盟集群的访问。 基于API配置Capacity 调度 OrgQueue扩展了capacity 调度,提供了可编程的方式来配置,可以调用 REST API 来修改队列配置。 YARN资源类型 YARN 的资源类型已经扩展到支持用户自定义类型,不止是 CPU 和内存。例如用户可以自定义的类型如GPUs,软件许可证书或则本地附加存储( locally-attached storage),Yarn的任务可以基于这些资源调度。 英文链接:http://hadoop.apache.org/docs/r3.0.0/ 对于alpha1不了解的,可参考下面 ############################################# 补充: Apache Hadoop 3.0.0-alpha1版发布做了哪些改进 Apache Hadoop 3.0.0-alpha1包含很多重要的改进在hadoop2.x的基础上。 这个是一个alpha 版,通过开发者和使用者帮助测试和搜集反馈。API的稳定性和质量还不能保证。 概述 提倡阅读全部发布说明,这里对更改内容做一个概述。 1.Java最低版本要求从Java7更改为Java8 所有的Hadoop JARs针对运行时版本的Java 8被编译。仍在使用Java 7或更低版本的用户必须升级至Java 8。 2.支持hdfs erasure encoding 与副本相比纠删码是一种更节省空间的数据持久化存储方法。编码标准如Reed Solomon(10,4)有1.4倍的空间开销.与HDFS副本相比则是3倍空间开销。 因为纠删码主要的额外开销是在重建和执行远程读,它传统用于存储冷数据,即不经常访问的数据。当部署这个新特性时用户应该考虑纠删码的网络和CPU开销。 更多细节参考 HDFS Erasure Coding (http://hadoop.apache.org/docs/r3 ... SErasureCoding.html)文档. 3、YARN Timeline Service v.2 我们引入YARN 的alpha 1版,. YARN Timeline Service v.2 地址两大挑战:提高时间轴的可扩展性和可靠性,并通过引入流量和聚合增强可用性. ———————————————— YARN Timeline Service v.2 alpha 1让用户和开发者测试,反馈和建议为替换 Timeline Service v.1.x做准备。它应用于测试容量。最重要的是,没有启用安全性。不设置或则使用Timeline Service v.2 ,直到安全是有效的如果安全是一个关键的要求。 更多细节参考 YARN Timeline Service v.2 【http://hadoop.apache.org/docs/r3.0.0-alpha1/hadoop-yarn/hadoop-yarn-site/TimelineServiceV2.html】文档. 4、Shell 脚本重写 Hadoop的shell脚本已被重写,解决许多长期存在的漏洞,包括一些新的功能。尽管一些关键点保持兼容性,但是一些更改可能会破坏现有的安装。 不兼容的改变在发布说明中,相关的讨论在 HADOOP-9902(https://issues.apache.org/jira/browse/HADOOP-9902) 更多内容在 Unix Shell Guide文档。也可看 Unix Shell API文档,它描述了许多新的功能,特别是与可扩展性有关的功能。 5、MR任务级本地优化 MR任务级本地优化。MapReduce添加了Map输出collector的本地实现。对于shuffle密集型作业,这将会有30%以上的性能提升。 更多细节: MAPREDUCE-2841(https://issues.apache.org/jira/browse/MAPREDUCE-2841) 6、支持2个及以上 NameNodes. 允许用户运行多个Standby NN,更高的容错性。比如,通过配置3个NN和5个JournalNodes,集群能够容忍2个NN宕机而不是之前的一个。 刚开始HDFS NameNode高可用提供了一个namenode,和Standby namenode.通过规定的三个JournalNodes,复制edits 。这种架构能够容忍系统中的任何一个节点的失败。 然而,一些部署需要更高程度的容错性。这是通过这一新功能,它允许用户运行多个备用节点【Standby namenode】。例如,通过配置三个NameNodes和五个journalnodes,集群能够容忍两节点而不是一个失败。 高可用文档(http://hadoop.apache.org/docs/r3.0.0-alpha1/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html)已经更新,说明如何配置多个namenode。 7、更改多个服务的默认端口。 此前,多个Hadoop服务的默认端口是在Linux的临时端口范围(32768-61000)。这意味着在启动时,服务有时会失败,绑定到端口,由于与另一个应用程序的冲突。 这个冲突的端口已经移出这个范围,影响 NameNode, Secondary NameNode, DataNode, 和KMS。文档已更新 发布说明地址https://issues.apache.org/jira/browse/HDFS-9427 更改端口列表地址https://issues.apache.org/jira/browse/HADOOP-12811 8.支持微软Azure 数据Lake 系统连接器 hadoop支持整合软Azure 数据Lake作为一种替代Hadoop兼容的文件系统。 9、Intra-datanode 平衡器 一个DataNode管理多个磁盘. 10.改编守护进程和任务堆管理 hadoop守护进程及MapReduce任务一系列的heap管理的改变。 HADOOP-10950(https://issues.apache.org/jira/browse/HADOOP-10950) 介绍了配置守护进程heap大小配置方法 值得注意的是基于主机内存调整成为可能,和 HADOOP_HEAPSIZE 值被弃用。更多细节查看发布说明 HADOOP-10950 MAPREDUCE-5785(https://issues.apache.org/jira/browse/MAPREDUCE-5785)简化了map和reduce任务的heap大小的配置,因此理想的heap的大小,不在需要任务的指定配置和作为Java选项。已有的配置不受影响。更多谢姐可查看MAPREDUCE