今天有人问Hadoop 3.x的主要变动在哪里,这里在官网(http://hadoop.apache.org/docs/r3.0.0/index.html)查了下,总结简单翻译如下:

  • 1.要求JDK>=1.7
  • 2.HDFS支持纠删码

       与副本相比纠删码是一种更节省空间的数据持久化存储方法。标准编码(比如Reed-Solomon(10,4))会有

1.4 倍的空间开销;然而HDFS副本则会有3倍的空间开销。因为纠删码额外开销主要是在重建和执行远程读,它传统用于存储冷数据,即不经常访问的数据。当部署这个新特性时用户应该考虑纠删码的网络和CPU 开销。更多关于HDFS的纠删码可以参见http://hadoop.apache.org/docs/r3.0.0-beta1/hadoop-project-dist/hadoop-hdfs/HDFSErasureCoding.html.

  • 3.YARN Timeline Service版本更新到v.2

        本版本引入了Yarn时间抽服务v.2,主要用于解决2大挑战:改善时间轴服务的可伸缩性和可靠性,通过引入流和聚合增强可用性。

YARN Timeline Service v.2 alpha 1可以让用户和开发者测试以及反馈,以便使得它可以替换现在的Timeline Service v.1.x。请在测试环境中使用。更多关于YARN Timeline Service v.2的知识请参见http://hadoop.apache.org/docs/r3.0.0-beta1/hadoop-yarn/hadoop-yarn-site/TimelineServiceV2.html

  • 4.重写相关shell脚本,比如所有脚本都以hadoop-env.sh为基础脚本等等

        Hadoop的Shell脚本被重写解决了之前很多长期存在的bug,并且引入了一些新的特性。绝大部分都保持兼容性,不过仍有些变化可能使得现有的安装不能正常运行。不兼容的改变可以参见HADOOP-9902。更多内容请参见Unix Shell Guide文档。即使你是资深用户,也建议看下这个文档,因为其描述了许多新的功能,特别是与可扩展性有关的功能。

  • 5.合并客户端jar,比如使用maven的shaded插件将 hadoop-client-api和hadoop-client-runtime合并为一个jar

        在 Hadoop 2.x 版本,hadoop-client Maven artifact将 Hadoop 所有的依赖都加到 Hadoop 应用程序的环境变量中,这样会可能会导致应用程序依赖的类和 Hadoop 依赖的类有冲突。这个问题在 HADOOP-11804 得到了解决。

  • 6.支持投机性的容器和分布式调度,比如在没有资源可分配时仍可执行一个Applications

        Opportunistic Container引入新 Opportunistic 类型的 Container 后,这种 Container 可以利用节点上已分配但未真正使用的资源。原有 Container 类型定义为 Guaranteed 类型。相对于 Guaranteed 类型Container, Opportunistic 类型的Container优先级更低。

  • 7.MapReduce本地优化

        MapReduce添加了Map输出collector的本地实现。对于shuffle密集型的作业来说,这将会有30%以上的性能提升。更多内容请参见 MAPREDUCE-2841

  • 8.支持2个以上namenode

        初的HDFS NameNode high-availability实现仅仅提供了一个active NameNode和一个Standby NameNode;并且通过将编辑日志复制到三个JournalNodes上,这种架构能够容忍系统中的任何一个节点的失败。然而,一些部署需要更高的容错度。我们可以通过这个新特性来实现,其允许用户运行多个Standby NameNode。比如通过配置三个NameNode和五个JournalNodes,这个系统可以容忍2个节点的故障,而不是仅仅一个节点。HDFS high-availability文档已经对这些信息进行了更新,我们可以阅读这篇文档了解如何配置多于2个NameNodes。

  • 9.默认的端口和服务有改变

        在此之前,多个Hadoop服务的默认端口都属于Linux的临时端口范围(32768-61000)。这就意味着我们的服务在启动的时候可能因为和其他应用程序产生端口冲突而无法启动。现在这些可能会产生冲突的端口已经不再属于临时端口的范围,这些端口的改变会影响NameNode, Secondary NameNode, DataNode以及KMS。与此同时,官方文档也进行了相应的改变,具体可以参见 HDFS-9427以及HADOOP-12811。

       
namenode端口 namenode 8020 9820
namenode端口 namenode htttp web 50070 9870
namenode端口 namenode https web 50470 9871
secondnamenode端口 secondnamenode https web 50091 9869
secondnamenode端口 secondnamenode http web 50090 9868
datanode端口 datanode ipc 50020 9867
datanode端口 datanode 50010 9866
datanode端口 datanode http web 50075 9864
datanode端口 datanode https web 50475 9865
  • 10.支持微软Azure存储系统和阿里云存储系统
  • 11.新增内部节点的平衡器

        一个DataNode可以管理多个磁盘,正常写入操作,各磁盘会被均匀填满。然而,当添加或替换磁盘时可能导致此DataNode内部的磁盘存储的数据严重内斜。这种情况现有的HDFS balancer是无法处理的。这种情况是由新intra-DataNode平衡功能来处理,通过hdfs diskbalancer CLI来调用。更多请参考HDFS Commands Guide

  • 12.重做了后台程序和任务的堆内存管理

        Hadoop守护进程和MapReduce任务的堆内存管理发生了一系列变化。

HADOOP-10950:介绍了配置守护集成heap大小的新方法。主机内存大小可以自动调整,HADOOP_HEAPSIZE 已弃用。
MAPREDUCE-5785:map和reduce task堆大小的配置方法,所需的堆大小不再需要通过任务配置和Java选项实现。已经指定的现有配置不受此更改影响。

  • 13.针对S3文件系统支持DynamoDB存储

        HADOOP-13345 里面为 Amazon S3 存储系统的 S3A 客户端引入了一个新的可选特性,也就是可以使用 DynamoDB 表作为文件和目录元数据的快速一致的存储。

  • 14.HDFS支持基于路由器的联盟

        HDFS Router-Based Federation 添加了一个 RPC路由层,提供了多个 HDFS 命名空间的联合视图。与现有 ViewFs 和 HDFS Federation 功能类似,不同之处在于挂载表(mount table)由服务器端(server-side)的路由层维护,而不是客户端。这简化了现有 HDFS客户端 对 federated cluster 的访问。 详细请参见:HDFS-10467

  • 15.提供REST API来修改容量调度

        OrgQueue 扩展了 capacity scheduler ,通过 REST API 提供了以编程的方式来改变队列的配置,This enables automation of queue configuration management by administrators in the queue’s administer_queue ACL.。详细请参见:YARN-5734

  • 16.YARN的资源除了传统的CPU和内存外,还可以支持用户自定义的资源类型,比如GPU

        YARN 资源模型(YARN resource model)已被推广为支持用户自定义的可数资源类型(support user-defined countable resource types),不仅仅支持 CPU 和内存。比如集群管理员可以定义诸如 GPUs、软件许可证(software licenses)或本地附加存储器(locally-attached storage)之类的资源。YARN 任务可以根据这些资源的可用性进行调度。详细请参见: YARN-3926。

Apache Hadoop 3.0.0

Apache Hadoop 3.0.0 incorporates a number of significant enhancements over the previous major release line (hadoop-2.x).

This release is generally available (GA), meaning that it represents a point of API stability and quality that we consider production-ready.

Overview

Users are encouraged to read the full set of release notes. This page provides an overview of the major changes.

Minimum required Java version increased from Java 7 to Java 8

All Hadoop JARs are now compiled targeting a runtime version of Java 8. Users still using Java 7 or below must upgrade to Java 8.

Support for erasure coding in HDFS

Erasure coding is a method for durably storing data with significant space savings compared to replication. Standard encodings like Reed-Solomon (10,4) have a 1.4x space overhead, compared to the 3x overhead of standard HDFS replication.

Since erasure coding imposes additional overhead during reconstruction and performs mostly remote reads, it has traditionally been used for storing colder, less frequently accessed data. Users should consider the network and CPU overheads of erasure coding when deploying this feature.

More details are available in the HDFS Erasure Coding documentation.

YARN Timeline Service v.2

We are introducing an early preview (alpha 2) of a major revision of YARN Timeline Service: v.2. YARN Timeline Service v.2 addresses two major challenges: improving scalability and reliability of Timeline Service, and enhancing usability by introducing flows and aggregation.

YARN Timeline Service v.2 alpha 2 is provided so that users and developers can test it and provide feedback and suggestions for making it a ready replacement for Timeline Service v.1.x. It should be used only in a test capacity.

More details are available in the YARN Timeline Service v.2 documentation.

Shell script rewrite

The Hadoop shell scripts have been rewritten to fix many long-standing bugs and include some new features. While an eye has been kept towards compatibility, some changes may break existing installations.

Incompatible changes are documented in the release notes, with related discussion on HADOOP-9902.

More details are available in the Unix Shell Guide documentation. Power users will also be pleased by the Unix Shell API documentation, which describes much of the new functionality, particularly related to extensibility.

Shaded client jars

The hadoop-client Maven artifact available in 2.x releases pulls Hadoop’s transitive dependencies onto a Hadoop application’s classpath. This can be problematic if the versions of these transitive dependencies conflict with the versions used by the application.

HADOOP-11804 adds new hadoop-client-api and hadoop-client-runtime artifacts that shade Hadoop’s dependencies into a single jar. This avoids leaking Hadoop’s dependencies onto the application’s classpath.

Support for Opportunistic Containers and Distributed Scheduling.

A notion of ExecutionType has been introduced, whereby Applications can now request for containers with an execution type of Opportunistic. Containers of this type can be dispatched for execution at an NM even if there are no resources available at the moment of scheduling. In such a case, these containers will be queued at the NM, waiting for resources to be available for it to start. Opportunistic containers are of lower priority than the default Guaranteed containers and are therefore preempted, if needed, to make room for Guaranteed containers. This should improve cluster utilization.

Opportunistic containers are by default allocated by the central RM, but support has also been added to allow opportunistic containers to be allocated by a distributed scheduler which is implemented as an AMRMProtocol interceptor.

Please see documentation for more details.

MapReduce task-level native optimization

MapReduce has added support for a native implementation of the map output collector. For shuffle-intensive jobs, this can lead to a performance improvement of 30% or more.

See the release notes for MAPREDUCE-2841 for more detail.

Support for more than 2 NameNodes.

The initial implementation of HDFS NameNode high-availability provided for a single active NameNode and a single Standby NameNode. By replicating edits to a quorum of three JournalNodes, this architecture is able to tolerate the failure of any one node in the system.

However, some deployments require higher degrees of fault-tolerance. This is enabled by this new feature, which allows users to run multiple standby NameNodes. For instance, by configuring three NameNodes and five JournalNodes, the cluster is able to tolerate the failure of two nodes rather than just one.

The HDFS high-availability documentation has been updated with instructions on how to configure more than two NameNodes.

Default ports of multiple services have been changed.

Previously, the default ports of multiple Hadoop services were in the Linux ephemeral port range (32768-61000). This meant that at startup, services would sometimes fail to bind to the port due to a conflict with another application.

These conflicting ports have been moved out of the ephemeral range, affecting the NameNode, Secondary NameNode, DataNode, and KMS. Our documentation has been updated appropriately, but see the release notes for HDFS-9427 and HADOOP-12811 for a list of port changes.

Support for Microsoft Azure Data Lake and Aliyun Object Storage System filesystem connectors

Hadoop now supports integration with Microsoft Azure Data Lake and Aliyun Object Storage System as alternative Hadoop-compatible filesystems.

Intra-datanode balancer

A single DataNode manages multiple disks. During normal write operation, disks will be filled up evenly. However, adding or replacing disks can lead to significant skew within a DataNode. This situation is not handled by the existing HDFS balancer, which concerns itself with inter-, not intra-, DN skew.

This situation is handled by the new intra-DataNode balancing functionality, which is invoked via the hdfs diskbalancer CLI. See the disk balancer section in the HDFS Commands Guidefor more information.

Reworked daemon and task heap management

A series of changes have been made to heap management for Hadoop daemons as well as MapReduce tasks.

HADOOP-10950 introduces new methods for configuring daemon heap sizes. Notably, auto-tuning is now possible based on the memory size of the host, and the HADOOP_HEAPSIZEvariable has been deprecated. See the full release notes of HADOOP-10950 for more detail.

MAPREDUCE-5785 simplifies the configuration of map and reduce task heap sizes, so the desired heap size no longer needs to be specified in both the task configuration and as a Java option. Existing configs that already specify both are not affected by this change. See the full release notes of MAPREDUCE-5785 for more details.

S3Guard: Consistency and Metadata Caching for the S3A filesystem client

HADOOP-13345 adds an optional feature to the S3A client of Amazon S3 storage: the ability to use a DynamoDB table as a fast and consistent store of file and directory metadata.

See S3Guard for more details.

HDFS Router-Based Federation

HDFS Router-Based Federation adds a RPC routing layer that provides a federated view of multiple HDFS namespaces. This is similar to the existing ViewFs) and HDFS Federationfunctionality, except the mount table is managed on the server-side by the routing layer rather than on the client. This simplifies access to a federated cluster for existing HDFS clients.

See HDFS-10467 and the HDFS Router-based Federation documentation for more details.

API-based configuration of Capacity Scheduler queue configuration

The OrgQueue extension to the capacity scheduler provides a programmatic way to change configurations by providing a REST API that users can call to modify queue configurations. This enables automation of queue configuration management by administrators in the queue’s administer_queue ACL.

See YARN-5734 and the Capacity Scheduler documentation for more information.

YARN Resource Types

The YARN resource model has been generalized to support user-defined countable resource types beyond CPU and memory. For instance, the cluster administrator could define resources like GPUs, software licenses, or locally-attached storage. YARN tasks can then be scheduled based on the availability of these resources.

See YARN-3926 and the YARN resource model documentation for more information.

Hadoop 3.x主要变化(相对于Hadoop 2.x)相关推荐

  1. Hadoop权威指南 _03_第I部分Hadoop基础知识_第1章初识Hadoop.

    第I部分Hadoop基础知识 第1章初识Hadoop. 比较喜欢这句极其形象的比喻. "在古时候,人们用牛来拉重物.当一头牛拉不动根圆木时,人们从来没有考虑过要想方设法培育出一种更强壮的牛. ...

  2. 大数据与Hadoop有什么关系?大数据Hadoop入门简介

    学习着数据科学与大数据技术专业(简称大数据)的我们,对于"大数据"这个词是再熟悉不过了,而每当我们越去了解大数据就越发现有个词也会一直被提及那就是--Hadoop 那Hadoop与 ...

  3. 【大数据入门】Hadoop技术原理与应用之基于Hadoop的数据仓库Hive

    基于Hadoop的数据仓库Hive 文章目录 基于Hadoop的数据仓库Hive @[toc] 6.1 概述 6.1.1 数据仓库概念 6.1.2 传统数据仓库面临的挑战 6.1.3 Hive简介 6 ...

  4. Hadoop 3.0的新增功能– Apache Hadoop 3的增强功能

    这个" Hadoop 3.0的新功能 "博客着重介绍了Hadoop 3预期中的更改,因为它仍处于Alpha阶段.Apache社区已合并了许多更改,并且仍在进行某些更改.因此,我们将 ...

  5. hadoop mpp oracle,请教一下MPP 与 Hadoop是什么关系?

    HADOOP与MPP是什么关系?有什么区别和联系? 适用范围.应用领域分别是什么? 其实MPP架构的关系型数据库与Hadoop的理论基础是极其相似的,都是将运算分布到节点中独立运算后进行结果合并.个人 ...

  6. hadoop启动_Mac OS X 上搭建 Hadoop 开发环境指南

    Hadoop 的配置有些麻烦,目前没有一键配置的功能,虽然当时我在安装过程中也参考了有关教程,但还是遇到了很多坑,一些老版本的安装过程已不适用于 hadoop2.x,下面就介绍一下具体步骤. 安装 J ...

  7. Hadoop集群搭建(五:Hadoop HA集群模式的安装)

    实验 目的 要求 目的: 1.Hadoop的高可用完全分布模式的安装和验证 要求: 完成Hadoop的高可用完全分布模式的安装: Hadoop的相关服务进程能够正常的启动: HDFS能够正常的使用: ...

  8. Hadoop详解(九):Hadoop Streaming和Pipes原理和实现

    为了保证编程接口的通用性,Hadoop提供了Streaming和Pipes编程框架和接口,Streaming编程框架通过标准的输入/输出作为媒介来和Hadoop框架交换数据,因此任何可以操作的标准输入 ...

  9. [hadoop源码阅读][6]-org.apache.hadoop.ipc-ipc总体结构和RPC

    1.前言 Hadoop的RPC主要是通过Java的动态代理(Dynamic Proxy)与反射(Reflect)实现,源代码在org.apache.hadoop.ipc下,有以下几个主要类: Clie ...

最新文章

  1. 零起点学算法10——求圆柱体的表面积
  2. Phabricator是什么,代码审查工具
  3. WebForm 【上传图片--添加水印】
  4. 三、oracle 用户管理一
  5. 上传文件大小超过服务器限制是什么意思,求助:文件上传 当文件大小大于限制时弹出提示框...
  6. 文件权限及chmod使用方法
  7. 吐槽贴:用ELECTRA、ALBERT之前,你真的了解它们吗?
  8. cupload怎么保存图片_图片标注软件labelImg使用指南
  9. 什么是处理机的态?为什么要区分处理机的态?
  10. 关于Dijkstra最短路径算法
  11. HDU1712:ACboy needs your help(分组背包)
  12. java的四种取整方法
  13. js调用摄像头麦克风,截取摄像头图像 js调用摄像头录像保存本地
  14. SQL Server 2005安装时提示“服务无法启动”
  15. 阵列信号处理笔记-阵列信号处理基础
  16. 我的世界java放大化是什么_我的世界:你玩过神奇的放大化种子吗?官方:这些东西非常吃资源...
  17. 无人驾驶导航定位技术初探(开山篇)
  18. 《算法设计与分析》期末复习精简版
  19. 如何在Windows中创建新用户?
  20. MSRA提出学习实例和分布式视觉表示的极端掩蔽模型ExtreMA

热门文章

  1. Learning to Detect A Salient Object (学习探测显著性物体)
  2. 三代测序的简介和原理
  3. js json数据去重。json数据如何将相邻的一条数据的重复数据删掉,通过key判断值相等的
  4. 安装Nvidia显卡驱动和CUDA
  5. Win10禁用Ctrl+空格切换输入法
  6. PS 2019 Mac版 自学入门系列(七)—— 调亮深色区域
  7. 阿里妈妈技术团队5篇论文入选 KDD 2022
  8. 字节跳动 2023 校园招聘火热开启!
  9. 【渝粤教育】广东开放大学 证券投资学 形成性考核 (1)
  10. 挂载ISO镜像文件作为本地yum源