内容简介:Hadoop于2006年1月28日诞生,至今已有10年,它改变了企业对数据的存储、处理和分析的过程,加速了大数据的发展,形成了自己的极其火爆的技术生态圈,并受到非常广泛的应用。在2016年Hadoop十岁生日之际,InfoQ策划了一个Hadoop热点系列文章,为大家梳理Hadoop这十年的变化,技术圈的生态状况,回顾以前,激励当下。本文是InfoQ处于一线开发的社区编辑对卢亿雷老师进行的采访,对大家关心的问题进行了专业的解答。InfoQ:Hadoop会考虑内存或磁盘动态管理技术吗?
Hadoop于2006年1月28日诞生,至今已有10年,它改变了企业对数据的存储、处理和分析的过程,加速了大数据的发展,形成了自己的极其火爆的技术生态圈,并受到非常广泛的应用。在2016年Hadoop十岁生日之际,InfoQ策划了一个Hadoop热点系列文章,为大家梳理Hadoop这十年的变化,技术圈的生态状况,回顾以前,激励当下。本文是InfoQ处于一线开发的社区编辑对卢亿雷老师进行的采访,对大家关心的问题进行了专业的解答。
InfoQ:Hadoop会考虑内存或磁盘动态管理技术吗?
卢亿雷:随着实时计算的发展,Hadoop会考虑内存管理技术的。动态管理的目的一个是资源自动发现,一个是系统的效率。从资源自动发现来看,比如新的Hadoop版本已经支持根据机器内存大小的不同,自动计算可以使用的内存量;从系统效率角度来讲,比如新的Hadoop已经支持对内存/ssd/硬盘的分级存储管理,可以更高效地使用存储。
InfoQ:基于Hadoop实现的设计本身,它能做到的最好性能是什么?以及哪些瓶颈是设计本身造成的,不可改变的?
卢亿雷:基于Hadoop架构设计本身,它能做到最好的性能是大批量数据离线统计,对于多次迭代计算等是它现在设计本身的瓶颈。但是随着YARN的发展,Hadoop的计算层变得越来越像一个纯粹的计算资源管理系统,Spark/Storm/Flink等多种计算模型都可以在YARN上来执行,极大丰富了Hadoop支持的计算,可以说,Hadoop已经变得更像一个大数据的框架,相信它的性能也会越来越好。
InfoQ:Hadoop能否在底层就实现基于广义shema的存储结构,而不是现在的block,这样会不会性能更好?
卢亿雷:Hadoop原来设计主要是基于文本存储,后续也进行了改进,可以设计特定的Schema存储结构来提高性能,如Hive中使用的RCFile,就是按需取字段,这样大大减少磁盘和网络IO,可以提高性能。另一方面,Hadoop底层存储是高度抽象的,具体的存储结构甚至可以由用户来自定义,比如现在就有用AWS做底层存储的模块,还有用阿里云做底层存储的模块,用户可以根据自己的需求来优化相应的存储结构。
InfoQ:Hadoop越来越跟随着spark的方向在开发,那是不是spark新功能的出现会比较大的影响到Hadoop的发展?
卢亿雷:之前谈到,Hadoop的YARN已经可以支持多种计算模型,Spark就可以在YARN上来执行。从这个层面来讲,Spark新功能的出现,会让Hadoop使用者更多地受益,YARN的优化也会更好地支持Spark的新功能。另一方面,在大数据量的存储方面,Hadoop的HDFS基本上就是大数据事实上的存储标准,Spark的大数据输入/输出也是基于HDFS的。
InfoQ:Hadoop代码越来越大,学起来成本更大,怎样才能更优雅的掌握?
卢亿雷:广义的Hadoop指Hadoop家族,包括HDFS/MapReduce/YARN/HBase/Zookeeper等等组件,狭义的Hadoop单单指HDFS/MapReduce/YARN,建议先从这些组件学起。
首先需要学习和理解分布式存储和分布式计算的原理,可以参考Google的相关论文,然后自己手动搭建一个Hadoop平台,测试各种组件,学习写MapReduce程序,之后可以学习使用HBase的搭建和基本使用。对这些都有一个基本概念之后,可以先编程使用这些组件,看可以解决自己的什么实际问题。最后,学习最好的资源就是Hadoop的社区和源码,是大数据学习的不二选择。如果有条件的话,在一个大数据公司工作,实际使用它们,会学习更快的。
InfoQ:Hadoop解决异构存储介质上的功能现在有生产环境可以用吗?或者对应性能测试怎么样?
卢亿雷:Hadoop解决异构存储介质上的功能主要支持普通硬盘、SSD、内存这三个存储介质,且在Hadoop2.6以后重点实现了,管理员可以在一个限定的Datanode跨磁盘存储层,以及应用程序可利用的API将数据存储到这些不同的存储层。这意味着管理员可以优化他们的应用程序通过使用Hadoop运行:在SSD存储层以提高读/写延迟;内存存储层进行快速读/写;普通硬盘可以进行归档存储层,以提高存储效率。所以可以在生产环境上使用的,前提是需要有同学对这块了解才可以。具体的测试性能需要看对应的应用场景,如果搭配的好,性能提升是比较显现,但是也需要注意的是如果内部数据交换比较多或者带宽有限制,从而导致文件IO不是瓶颈,带宽才是瓶颈,则性能基本不会有提升。总的来说如果业务没有特别的要求,其实也不用Hadoop的异构存储的功能。
InfoQ:Hadoop有从底层来设计支持DAG优化(比如现在有的Tez,Flink)mapreduce吗?
卢亿雷:目前没有,如果要从底层支持DAG优化,那就是重写Hadoop架构了。其实现在的YARN已经把计算的管理独立了出来,完全可以在YARN上玩出计算的各种花样。现有的Tez、Flink等都是基于Hadoop之上来实现DAG优化的。大家都知道ApacheTez是基于HadoopYarn之上的DAG(有向无环图,DirectedAcyclicGraph)计算框架。它把Map/Reduce过程拆分成若干个子过程,同时可以把多个Map/Reduce任务组合成一个较大的DAG任务,减少了Map/Reduce之间的文件存储。同时合理组合其子过程,减少任务的运行时间,由Hortonworks开发并提供主要支持;而Flink是一个开源的针对批量数据和流数据的处理引擎,且支持DAG的运算。像Tez、Flink等都可以直接运行在YARN上,所以对于Hadoop来也不是必须一定要在底层上支持DAG的优化,这样分层后也有利于各自的发展。
InfoQ:集群在上百台机器的规模,增加(移出)十来台机器时怎么迁移其上的数据?
卢亿雷:通过rebalance来实现,前提是带宽需要做控制。一般大规模的集群都会有一个rebalance在持续运行的。如Hadoop的rebalance是一个非自动的管理功能,换句话说,它是由人工启动的。在任意一台能够连接到HDFS的机器上命令行下输入hadoopbalancer[-threshold]即会启动。如果集群处于不平衡状态,这个过程就会在不平衡的节点之间迁移数据,如果rebalance过程没有被打断的话,完成此次rebalance目标后过程会自动停止。
受访嘉宾:卢亿雷,精硕科技(AdMaster)技术副总裁兼总架构师,大数据资深专家,CCF(中国计算学会)大数据专委委员,北航特聘教授。主要负责数据的采集、清洗、存储、挖掘等整个数据流过程,确保提供高可靠、高可用、高扩展、高性能系统服务,提供Hadoop/HBase/Storm/Spark/ElasticSearch等离线、流式及实时分布式计算服务。对分布式存储和分布式计算、超大集群、大数据分析等有深刻理解及实践经验。有超过10年云计算、云存储、大数据经验。曾在联想、百度、Carbonite工作,并拥有多篇大数据相关的专利和论文。
在不久的将来,多智时代一定会彻底走入我们的生活,有兴趣入行未来前沿产业的朋友,可以收藏 多智时代 ,及时获取人工智能、大数据、云计算和物联网的前沿资讯和基础知识,让我们一起携手,引领人工智能的未来!
以上所述就是小编给大家介绍的《Hadoop的生态,最近有什么新的发展》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Security Testing Cookbook
Paco Hope、Ben Walther / O'Reilly Media / 2008-10-24 / USD 39.99
Among the tests you perform on web applications, security testing is perhaps the most important, yet it's often the most neglected. The recipes in the Web Security Testing Cookbook demonstrate how dev......一起来看看 《Web Security Testing Cookbook》 这本书的介绍吧!