Hadoop是一个由Apache基金会所开发的分布式系统基础架构,一个能够对大量数据进行分布式处理的软件框架; Hadoop以一种可靠、高效、可伸缩的方式进行数据处理;用户可以在不了解分布式底层细节的情况下,开发分布式应用。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System,简称HDFS)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用的数据,适合那些有着超大数据集(large data set)的应用系统。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
Hadoop主要有以下几个优点:
高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
低成本。与商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用也可以使用其他语言编写,比如 C++等。hadoop使用场景:
大数据量存储:分布式存储
日志处理: Hadoop擅长这个
海量计算: 并行计算
ETL:数据抽取到oracle、mysql、DB2、mongdb及主流数据库
使用Hbase做数据分析: 用扩展性应对大量读写操作—Facebook构建了基于Hbase的实时数据分析系统
机器学习: 比如Apache Mahout项目(Apache Mahout简介 常见领域:协作筛选、集群、归类)
搜索引擎:hadoop + lucene实现
数据挖掘:目前比较流行的推荐
大量地从文件中顺序读。HDFS对顺序读进行了优化,代价是对于随机的访问负载较高。
用户行为特征建模
个性化推荐