HADOOP学习笔记
一,对Hadoop的基本理解
Hadoop是apache旗下的一套开源的软件平台,主要是利用服务器集群,根据用户的自定义的业务逻辑,对海量数据的分布式处理。
这里讲一下分布式软件系统:软件系统会划分成多个子系统或模块,各自运行在不同的机器上,子系统或模块之间通过网络通信(RPC:远程过程调用)进行协作,实现最终的整体功能。大白话就是说:分而治之。
Hadoop,Spark和Storm是目前最重要的三大分布式计算系统,Hadoop常用于离线的复杂的大数据处理,Spark常用于离线的快速的大数据处理,而Storm常用于在线的实时的大数据处理。
二,Hadoop的结构
Hadoop的核心组件有:HDFS(分布式文件管理系统),YARN(运算资源调度系统),MAPERDUCE(分布式运算编程框架)。HADOOP通常是指一个更广泛的概念——HADOOP生态圈。
除此之外还有一些重点组件:HIVE(基于大数据技术sql数据库管理工具),HBASE(基与Hadoop的分布式海量数据库),ZOOKEEPER(分布式协调服务基础组件),Mahout(基于mapreduce/spark/flink等分布式运算框架的机器学习算法库),Oozie(工作流调度框架),Sqoop(数据导入导出工具),Flume(日志数据采集框架)等。
三,对Hadoop的集群理解
Hadoop的集群总来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但是物理上常在一起。
HDFS集群:负责海量数据的储存,集群中的主要角色有NameNode和DataNode。
YARN集群:负责海量数据运算是的资源调度,集群中的角色有ResourceManager和NodeManager。
MAPREDUCE:其实就是一个应用程序开发包,处理大量的半结构化数据集合的编程模型。与Hadoop相互独立,而又能相互配合工作。