目录
一、Hadoop简介
hadoop = MapReduce+HDFS(hadoop 文件系统)
进一步解释:
MapReduce是一个项目,HDFS是另一个项目,他们组成了hadoop。
实际上这两个项目与hadoop关系 ,好比 hadoop是计算机,而MapReduce是CPU,而HDFS是硬盘。
显而易见了,MapReduce处理数据,HDFS存储数据。
Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。
Hadoop的核心组件是HDFS、MapReduce。随着处理任务不同,各种组件相继出现,丰富Hadoop生态圈,目前生态圈结构大致如图所示:
数据采集工具:
日志收集框架: Flume 、 Logstash 、 Filebeat
数据迁移工具: Sqoop
数据存储工具:
分布式文件存储系统: Hadoop HDFS
数据库系统: Mongodb 、 HBase
数据处理工具:
分布式计算框架:
批处理框架:Hadoop MapReduce
流处理框架:Storm
混合处理框架:Spark 、 Flink
查询分析框架 : Hive 、 Spark SQL 、 Flink SQL 、 Pig 、 Phoenix
资源和任务管理:集群资源管理器 : Hadoop YARN
分布式协调服务: Zookeeper
任务调度框架: Azkaban 、 Oozie
集群部署和监控: Ambari 、 Cloudera Manager
上面列出的都是比较主流的大数据框架,社区都很活跃,学习资源也比较丰富。从 Hadoop 开始入门学习,因为它是整个大数据生态圈的基石,其它框架都直接或者间接依赖于 Hadoop 。
二、Hadoop的运行模式
Hadoop可以按三种模式进行安装和运行。
1. 单机模式
(1)Hadoop的默认模式,安装时不需要修改配置文件。
(2)Hadoop运行在一台计算机上,不需要启动HDFS和YARN。
(3)MapReduce运行处理数据时只有一个JAVA进程,使用本地文件系统进行数据的输入输出。
(4)用于对MapReduce程序的逻辑进行调试,确保程序的正确。
2. 伪分布式模式
(1)Hadoop安装在一台计算机上,需要修改相应的配置文件,用一台计算机模拟多台主机的集群。
(2)需要启动HDFS和YARN ,是相互独立的Java进程。
(3)MapReduce运行处理数据时是每个作业一个独立进程,输入输出使用分布式文件系统。
(4)用来进行学习和开发测试Hadoop程序的执行是否正确。
3. 完全分布式模式
(1)在多台计算机上安装JDK和Hadoop ,组成相互连通的集群,需要修改相应的配置文件。
(2)Hadoop的守护进程运行在由多台主机搭建的集群上。真正的生产环境。
三、Hadoop生态圈组件
1. HDFS
HDFS是一个基于 java 的 Hadoop 分布式文件系统(H