如今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生态系统的组件,并添加自己的工具和管理功能。