大数据Hadoop学习之了解Hadoop(1)
关于大数据,一看就懂,一懂就懵。
大数据的发展也有些年头了,如今正走在风口浪尖上,作为小白,我也来凑一份热闹。
大数据经过多年的发展,有着不同的实现方案和分支,不过,要说大数据实现方案中的翘楚,那就是Hadoop了,因其开源、稳定等因素,受到了业界的承认和欢迎,那我们就来窥视一下Hadoop。
一、什么是Hadoop?
1、 Hadoop是Apache软件基金组织的一个顶级项目,是开发可靠、可扩展、分布式计算的开源软件。
Apache Hadoop软件库是一个框架,允许在使用简单编程模型的计算机集群上对大型数据集进行分布式处理。它旨在从单个服务器扩展到数千台机器,每台机器都提供本地计算和存储。库本身不是依靠硬件来提供高可用性的,而是设计用于检测和处理应用程序层的故障,因此在一组计算机上提供高可用性服务。
2、Hadoop项目包括以下模块
- Hadoop Common:支持其他Hadoop模块的常用工具。
- Hadoop分布式文件系统(HDFS):提供对应用程序数据的高吞吐量访问的分布式文件系统。
- Hadoop YARN:作业调度和集群资源管理的框架。
- Hadoop MapReduce:用于并行处理大型数据集的基于YARN的系统
关于这些模块的具体内容,在后期的文章中会一一详细介绍。
3、与Hadoop相关的其他Apache项目如下:
Ambari:用于配置,管理和监控Apache Hadoop集群的基于Web的工具,其中包括支持Hadoop HDFS,Hadoop MapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig和Sqoop。Ambari还提供了一个用于查看集群健康状况的仪表板,如热图和可视化查看MapReduce,Pig和Hive应用程序以及以用户友好的方式诊断其性能特征的功能。
Avro:数据序列化系统。
Cassandra:可扩展的多主数据库,无单点故障。
Chukwa:用于管理大型分布式系统的数据收集系统。
HBase:可扩展的分布式数据库,支持大型表格的结构化数据存储。
Hive:提供数据摘要和即席查询的数据仓库基础设施。
Mahout:可扩展的机器学习和数据挖掘库。
Pig:用于并行计算的高级数据流语言和执行框架。
Spark:一种用于Hadoop数据的计算引擎,具有快速性和通用性。Spark提供了一个简单而富有表现力的编程模型,支持各种应用,包括ETL,机器学习,流处理和图形计算。
Tez:一种基于Hadoop YARN的通用数据流编程框架,它提供了强大且灵活的引擎来执行任意DAG的任务来处理批量和交互式用例的数据。Tez被Hadoop,Pig和Hadoop生态系统中的其他框架以及其他商业软件(例如ETL工具)所采用,以替代Hadoop MapReduce作为底层执行引擎。
ZooKeeper:分布式应用程序的高性能协调服务。
这就是Hadoop,一个动物园,提供了一些基础设施,比如Hadoop分布式文件系统HDFS、yarn、MapReduce、Hadoop common;里面有这许多动物,比如蜜蜂(hive)、猪(pig)、黑斑羚(impala);当然还要有动物园管理员(zookeeper),管理着动物园的生态平衡。
二、如何查看Hadoop各版本
hadoop使用<major>.<minor>.<maintenance>格式来表示版本格式,即"<主要>.<次要>.<维护>",例如Hadoop2.7.3,则表示主要版本为2、次要版本为7、维护版本为3。当然,在版本格式后面还有其他后缀,比如“-alpha2”或“-beta1”,表示API兼容性保证和发布质量。例如hadoop-3.0.0-alpha1和hadoop-3.0.0-beta1。
1、主要版本用于引入实质性,可能不兼容的更改。其示例包括在Hadoop 2中使用YARN和MapReduce 2替换MapReduce 1,以及在Hadoop 3中将所需的Java运行时版本从JDK7更改为JDK8,主要版本标志着有重大更新。
2、次要版本用于在主要发行版中引入新的兼容功能。
3、维护版本包括错误修复或低风险更改。
了解上述这些之后,可以通过Hadoop各版本名称来判断Hadoop的版本重要性,在学习或者项目中选择相应的版本来使用,不过,选择稳定版能够减少许多不可预知的错误,Hadoop各版本文档首页都会介绍该版本是否是稳定版。