//2018.05
Hadoop概述
1、是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构(HDFS+MapReduce)
- HDFS的高容错性、高伸缩性等优点允许用户将Hadoop部署在低廉的硬件上,同时不限于某个操作系统,形成分布式系统;(????)
- MapReduce 允许永不在不了解分布式系统底层细节的情况下开发并行应用程序。
->用户可以利用Hadoop轻松的组织计算机资源,从而大间自己的分布式计算平台,并且可以充分利用集群的计算和存储能力,完成海量数据的处理。
2、功能与作用
(1)采用分布式存储方式来提高读写速度和扩大容量;
(2)采用MapReduce整合分布式文件系统上的数据,保证高速分析和处理数据;
(3)采用存储冗余数据来保证数据的安全性
3、优势
- 高可靠性(按位存储和处理数据)
- 高扩展性(在可用的计算机集簇间分配数据完成计算任务,这些集簇可以方便的扩展到其它结点)
- 高效性(可以在结点间动态移动数据,以保证各个结点的动态平衡)
- 高容错性(自动保存多个副本)
4、应用现状
- Yahoo!:通过运行Hadoop集群,用以支持广告系统和web搜索的研究
- FaceBook:借助集群运行Hadoop来支持其数据分析和机器学习
- 百度:使用Hadoop进行搜索日志分析和网页的数据挖掘工作
- 淘宝:用以存储并处理电子商务交易的相关数据
- 中国移动研究院:基于Hadoop的大云“BigCloud”对数据进行分析并对外提供服务。
5、Haddop项目及其结构
*Hadoop已经成为包含很多项目的集合,核心是MR+HDFS
pig | Chukwa | Hive | Hbase |
MapReduce | HDFS | Zookeeper | |
Common | Avro |
- Common:是为Hadoop其它子项目提供支持的常用工具,包括FileSystem、RPC(远程过程调用)和串行化库,为在廉价硬件上搭建云计算环境提供基本的服务,并未运行在该平台上的软件提供所需要的API
- Avro:用于数据序列化的系统,提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持久性数据的文件集、远程调用RPC的功能和简单的动态语言集成功能。
- MapReduce:是一个编程模型,用于大规模数据集(大于1TB)的并行运算
- HDFS:分布式文件系统
- Chukwa:是开源的数据收集系统,用于监控和分析大型分布式系统的数据,其是在MR+HDFS的框架下搭建的。
- Hive:是由Facebook设计的,建立在Hadoop基础之上的数据仓库,它提供了一些用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储的工具,提供的是一种结构化的数据机制,支持类似于传统RDBMS中的SQL语言的查询语句(Hive QL),来帮助那些熟悉SQL的用户查询Hadoop中的数据。(具体将Hive QL 编译成一组MR任务,然后进行开发)
- Hbase:分布式的、面向列的开源数据库(来源于Google《Bigtable》),Hbase区别于SQL,适用于非结构化数据存储的数据库;是基于列的存储模式。
- Pig:是一个对大型数据集进行分析、评估的平台,优势是可以经受高度并行化的检验,使其可以处理大型的数据集。其底层是一个编译器,运行时产生一些列MR程序序列
- Zookeeper:是一个为分布式应用所设计的开源协调服务,它主要为用户提供同步,配置管理,分组和命名等服务,减轻了分布式应用程序所承担的协调任务。
理解:Hadoop是一个平台,它的底层是Common和Avro,然后它的整体计算架构是在MR,其数据存储在HDFS 中,在此基础上再进一步开发应用了Pig\Chukwa\hive\hbase等不同的应用。而在计算过程中,因为是分布式的,所以加入Zookeeper来进行各个点的和组织。