Hadoop是什么:
随着数据量的急剧增加,遇到的两个最直接的问题就是数据存储和计算(分析/利用)。
Hadoop是由Apache基金会所开发的一个用Java实现的分布式基础框架,也可以看做是一个支持开发、运行由通用计算设备组成的大型集群上的分布式应用的平台。Hadoop中的两个最重要的组件—HDFS和MapReduce就是用来解决海量数据(分布式)存储、海量数据(分布式)计算的。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
HDFS有两种节点,NameNode和DataNode。DataNode主要用来存储数据,NameNode管理着整个文件系统的交互。相对于普通的文件系统,HDFS显著的特点是分布式海量存储、备份机制。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。MapReduce:并行计算框架,MapReduce其实是一种分布式计算模型,多个计算机并行计算,共同做一件事情。
Hadoop的应用场景:
简单认识了什么是Hadoop,再来了解一下Hadoop一般都适用于哪些场景。
Hadoop主要应用于大数据量的离线场景,特点是大数据量、离线。
- 数据量大:一般真正线上用Hadoop的,集群规模都在上百台到几千台的机器。这种情况下,T级别的数据也是很小的。
- 离线:Mapreduce框架下,很难处理实时计算,作业都以日志分析这样的线下作业为主。另外,集群中一般都会有大量作业等待被调度,保证资源充分利用。
另外,由于HDFS设计的特点,Hadoop适合处理文件块大的文件。大量的小文件使用Hadoop来处理效率会很低。
Hadoop常用的场景有:
- 大数据量存储:分布式存储(各种云盘,百度,360~还有云平台均有hadoop应用)
- 日志处理
- 海量计算,并行计算
- 数据挖掘(比如广告推荐等)
- 行为分析,用户建模等
- ……
转载于:https://blog.51cto.com/14377691/2410008