Hadoop是什么?

发布时间:2017-07-18 11:51:01
经常会有人问Hadoop是什么?它与阿里云或腾讯云相关的服务器有什么不同,在这里小编先整理一个小文大家科普下。
1、 Hadoop是什么?Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。Hadoop框架中最核心设计就是:HDFS和MapReduce.HDFS提供了海量数据的存储,MapReduce提供了对数据的计算。
2、 Hadoop的意义不仅仅在于数据量,更在于数据的多样化。
有人把Hadoop归类为海量数据处理技术,但是Hadoop真正的价值却是对多样化数据处理的能力。Hadoop的处理范围为大多数数据仓库所不及,比如针对半结构化与完全非结构化的数据。
3、 Hadoop是数据仓库的补充,不是数据仓库的替代品。
数据仓库在其领域中的性能仍然出色,Hadoop可起到对数据仓库技术进行补充的作用。数据仓库和其他系统的架构越来越多地开始向分布式靠拢,Hadoop在这里将发挥其作用。
4、 Hadoop不仅仅是Web分析。
Hadoop在互联网中的运用非常普遍,Hadoop普及趋势的部分原因是因为它可以处理更多类型的分析。

Hadoop的几个明显优缺点如下: 
优点
1. 简化运维:在大规模集群中,机器宕机,网络异常,磁盘错都属于正常现象,因此错误检查,自动恢复是核心架构目标。Google的解决方案就已经做到了机器随时加入/离开集群。 
2. 高吞吐量:高吞吐量和低延迟是两个矛盾的目标,Hadoop优先追求高吞吐量,设计和实现中采用了小操作合并,基于操作日志的更新等提高吞吐量的技术。 
3. 节省机器成本:Hadoop鼓励部署时利用大容量的廉价机器(性价比高但是机器故障概率大),数据的存储和服务也分为HDFS和HBase两个层次,从而最大限制地利用机器资源。 
4. 采用单Master的设计:单Master的设计极大地简化了系统的设计和实现,由此带来了机器规模限制和单点失效问题。对于机器规模问题,由于 Hadoop是数据/计算密集型系统,而不是元数据密集型系统,单Master设计的单个集群可以支持成千上万台机器,对于现在的几乎所有应用都不成问题;而单点失效问题可以通过分布式锁服务或其它机制有效地解决。 

缺点 
1. 采用Java实现。Java的IO处理虽然没有性能瓶颈,但是对于CPU密集型的任务是一个噩耗。这点可以通过对比HBase和Hypertable两个开源的Bigtable实现来做初步的验证。 
2. 开源项目。开源本身是一柄双刃剑,它方便了大多数人,但是对于一个有一定规模的公司,项目发展方向的把握,技术保密,技术支持等都是采用Hadoop这种开源项目必须考虑的问题。另外,Hadoop作为一个比较新的项目,性能和稳定性的提升还需要一定时间。