最近,基于 Hadoop 3.1 的 Hortonworks 数据平台(HDP)3.0正式发布了,它包含容器化、支持GPU、纠删码和Namenode Federation。企业功能包括利用HDP 3.0 默认安装的Apache Ranger 和Apache Atlas 的可信数据湖。该版本还去掉了一些组件,如:Apache Falcon、Apache Mahout、Apache Flume 和Apache Hue,同时Apache Slider 功能已经融入了Apache YARN。
InfoQ 就 Hadoop 的总体情况,特别是 HDP 3.0 采访了 Hortonworks 的产品管理高级总监 Saumitra Buragohain。
InfoQ:鉴于 Spark、Kafka 和其他大数据平台的成功,Hadoop 是否已经过时了?总体上Hadoop和特别是 HDP 3.0与企业仍有怎样的 **** 相关性,为什么开发人员要关注它们?
Buragohain:Hadoop 已经不再是 10 年前主要是跟存储层(Apache HDFS)和工作负载(MapReduce)有关的 Hadoop 了。我们现在处在工业 4.0 革命的前沿,Hadoop 大数据栈已经发展到包含实时数据库(由 Apache Hive 3.0 提供支持)、机器学习和深度学习平台(Apache Spark 和 Apache TensorFlow)、流处理(Apache Kafka 和 Apache Storm)、运营数据存储(Apache Phoenix 和 Apache HBase)。请继续关注我们的 HDP 3.0 博客系列!HDP 3.0 能够自有部署(on-prem),也可以部署于所有主要的云供应商(亚马逊、Azure 和谷歌云)。
InfoQ:HDP 3.0 的实时数据库是否旨在为交互式查询提供类似 Spark 的功能?您能否详细谈谈实现,提供一些技术细节?它如何能够帮助那些不需要大量编程的数据科学家?
Buragohain:实时数据库由 Apache Hive 3.0 和 Apache Druid 提供支持,并允许单个 SQL 层用于批处理和历史数据集。Druid 允许创建 OLAP cubing,以便我们能够实时查询大型数据集。在 HDP 3.0 中特别要强调的 Apache Hive 特性包括:
用于 LLAP 的工作负载管理:您现在能够在多租户环境中运行 LLAP 而无需担心资源竞争。
ACID v2 和 ACID 默认打开:我们正在发布 ACID v2。随着存储类型和执行引擎上性能的改进,与非 ACID 表相比,我们看到了相同或更好的性能。因此,我们默认启用 ACID 并且为数据更新提供完全的支持。
用于 Spark 的 Hive 仓库连接器:Hive 仓库连接器允许您把 Spark 应用和 Hive 数据仓库连接在一起。连接器自动处理 ACID 表。
物化视图导航:Hive 的查询引擎现在支持物化视图。该查询将在物化视图可用时自动使用它们以加速查询。
信息架构:Hive 现在直接通过 Hive SQL 接口公开数据库的元数据(表、列等等)。
JDBC 存储连接器:您现在能够映射任何 JDBC。
HDP 3.0 中特别值得留意的 Druid 功能包括:
Kafka – Druid 摄入:您现在能够将 Kafka 主题映射到 Druid 表中。事件将被自动摄入并可用于近乎实时的查询。
InfoQ:到处都是容器。请谈谈在 HDP 3.0 中如何利用容器?
Buragohain:YARN 一直在内存和 CPU 粒度上支持本机容器。我们正在扩展该模型以支持 Docker 容器,并在内存和 CPU 之上添加了 GPU 支持。这意味着,现在我能够把我的应用程序(如 Spark)和诸如 Python(无论是版本 2.7 还是版本 3.0)及不同的 Python 库这样的依赖项打包在一起,并在与其他租户共享的 HDP 3.0 集群中隔离运行。这意味着,我也能够利用 GPU 池特性,在 YARN 上运行 Docker 化 TensorFlow 1.8 。这也意味着,我能够解除和转移第三方工作负载,并在 HDP 3.0 上运行它们。因此,这就是 HDP 3.0 的强大功能,我们已经从 10 年前的 Hadoop 1.0 发展到现在。
InfoQ:深度学习是另一种趋势科技,并且看起来,在 HDP 3.0 和机器学习之间的协同作用增加了。您能否谈谈 HDP 和深度学习的使用?
Buragohain:当然可以。多年来,我们一直将 Spark 作为 HDP 栈的核心组件,这是 HDP 在客户安装基础上最大的工作负载之一。现在,我们正在扩展到深度学习框架,支持诸如 GPU 池 / 隔离这样的功能,从而让昂贵的 GPU 可以成为多个数据科学家共享的资源。正如上面所提到的,我们也支持容器化工作负载,因此,我能够利用 YARN GPU 池和存储在 HDP 3.0 数据存储层(或云存储中,如果 HDP 3.0 部署在云中)的训练数据,运行容器化 TensorFlow 1.8 来训练深度学习模型。您还能够观看我们的主题演示,那是在 DataWorks 峰会上,我们用 HDP 3.0 技术训练了一辆自动驾驶汽车(1:10 的比例)。
InfoQ:纠删码是 Hadoop 3.0 的一部分。您能否谈谈它是如何实现的?HDP 3.0 是否有其他调整?
Buragohain:纠删码本质上是跨节点的 RAID。就像在企业存储行业中,供应商和客户已经采用了 RAID6 来支持 RAID10(镜像),我们正在对 Hadoop 数据存储(Apache HDFS)进行类似的转变。我们把数据分成 6 个分片,并创建了 3 个奇偶校验分片,而不是为同样的数据创建 2 个相同的备份。这 9 个分片现在存储在 9 个节点中。因此,如果有 3 个节点宕机,我们将有 6 个分片(数据或奇偶校验),并且能够构建该数据。因此,这就是我们如何提供与 3 副本方法相同的故障恢复能力,同时将存储足迹减少一半。
我们默认使用副本方法。客户将需要配置一个目录以让纠删码编码,我们可以选择多个纠删码 Reed Solomon 编码:RS(6,3);RS(10,4);RS(3,2)。然后,任何进入该目录的数据是经过纠删码编码的。我们最初支持对冷数据的纠删码编码,但是,我们正在提供可选的英特尔存储加速库作为 HDP 3.0 实用程序的一部分以实现可选的硬件加速。
InfoQ:除了 Hadoop 3.0 提供的特性 **** 之外,HDP 3.0 增加了什么?HDP 3.0 及更高版本的路线图是什么?
Buragohain:请继续关注我们的博客。HDP 3.0 最近正式发布了,我们的发布说明详细描述了这些特性(跨实时数据库、流处理、机器学习和深度学习平台等等)。最后,我们在工具箱里提供了所有的工具,以便客户选取(可以与单个工作负载供应商比较一下)。我们正在对 HDP 进行长期投资,在 2019 年,我们将有更多令人兴奋的更新!
HDP 3.0 的发布说明可以从 HDP 3.0发布说明页面下载。
查看英文原文: Q&A with Saumitra Buragohain on Hortonworks Data Platform 3.0
感谢冬雨对本文的审校。
评论