如今Apache Hadoop已成为大数据行业发展背后的驱动力。Hive和Pig等技术也经常被提到,但是他们都有什么功能,为什么会需要奇怪的名字(如Oozie,ZooKeeper、Flume)。
Hadoop带来了廉价的处理大数据(大数据的数据容量通常是10-100GB或更多,同时数据种类多种多样,包括结构化、非结构化等)的能力。但这与之前有什么不同?
现
今企业数据仓库和关系型数据库擅长处理结构化数据,并且可以存储大量的数据。但成本上有些昂贵。这种对数据的要求限制了可处理的数据种类,同时这种惯性所
带的缺点还影响到数据仓库在面对海量异构数据时对于敏捷的探索。这通常意味着有价值的数据源在组织内从未被挖掘。这就是Hadoop与传统数据处理方式最
大的不同。
本文将介绍Hadoop系统的组成部分,并解释各个组成部分的功能。
Hadoop生态环境包含十多种组件或子项目,但在安装、配置和集群规模的部署以及管理等方面都面临不小的挑战。
Hadoop主要组件包含:
Hadoop:Java编写的软件框架,以支持数据密集型分布式应用
ZooKeeper:高可靠性分布式协调系统
MapReduce:针对大数据的灵活的并行数据处理框架
HDFS:Hadoop分布式文件系统
Oozie:负责MapReduce作业调度
HBase:Key-value数据库
Hive:构建在MapRudece之上的数据仓库软件包
Pig:Pig是架构在Hadoop之上的高级数据处理层。Pig Latin语言为编程人员提供了更直观的定制数据流的方法。
Hadoop MapReduce方法的应用范围以及典型的特征
- 庞大的数据量
- 较少或没有数据依赖
- 包含结构化和非结构化数据
- 适合大规模的并行处理
应用用例
- 足够快速的批处理分析仪满足业务需求和业务报告,如网站流量和产品推荐分析。
- 使用数据挖掘和机器学习算法迭代分析。如关联规则分析K-means数据聚集、链接分析(数据分析技术)、数据挖掘分类、著名的Bayes算法分析。
- 统计分析和提炼,如Web日志分析、数据分析
- 行为分析,如点击流分析,用户视频行为等
- 转换和增强功能,如社交媒体、ETL处理、数据标准化等
通常情况下,Hadoop应用于分布式环境。就像之前Linux的状况一样,厂商集成和测试Apache Hadoop生态系统的组件,并添加自己的工具和管理功能。