Hadoop基本介绍

起源

Hadoop起源于Apache Nutch项目,始于2002年,是Apache Lucene的子项目之一 。2004年,Google在“操作系统设计与实现”(Operating System Design and Implementation,OSDI)会议上公开发表了题为MapReduce:Simplified Data Processing on Large Clusters(Mapreduce:简化大规模集群上的数据处理)的论文之后,受到启发的Doug Cutting等人开始尝试实现MapReduce计算框架,并将它与NDFS(Nutch Distributed File System)结合,用以支持Nutch引擎的主要算法 。由于NDFS和MapReduce在Nutch引擎中有着良好的应用,所以它们于2006年2月被分离出来,成为一套完整而独立的软件,并被命名为Hadoop。到了2008年年初,hadoop已成为Apache的顶级项目,包含众多子项目,被应用到包括Yahoo在内的很多互联网公司 。

Hadoop优势

  1. 高可靠性: Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。
  2. 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
  3. 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
  4. 高容错性:能够自动将失败的任务重新分配。
  5. 低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低 。

Hadoop三大发行版本

  1. 免费开源版本apache:Apache版本最原始(最基础)的版本,对于入门学习最好
    优点:拥有全世界的开源贡献者,代码更新迭代版本比较快。
    缺点:版本的升级,版本的维护,版本的兼容性,版本的补丁都可能考虑不太周到,学习可以用,实际生产工作环境尽量不要使用。
  2. 免费开源版本hortonWorks:文档较好
    主要是雅虎主导Hadoop开发的副总裁,带领二十几个核心成员成立Hortonworks,核心产品软件HDP(ambari),HDF免费开源,并且提供一整套的web管理界面,供我们可以通过web界面管理我们的集群状态。
  3. 软件收费版本ClouderaManager:在大型互联网企业中用的较多
    主要是美国一家大数据公司在apache开源hadoop的版本上,通过自己公司内部的各种补丁,实现版本之间的稳定运行,大数据生态圈的各个版本的软件都提供了对应的版本,解决了版本的升级困难,版本兼容性等各种问题,生产环境强烈推荐使用

Hadoop组成

Hadoop基本介绍
1.HDFS(Hadoop Distributed File System)的架构
<1.> 概述
(1). NameNode (nn) :存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限) , 以及每个文件的块列表和块所在的DataNode等。
(2). DataNode(dn): 在本地文件系统存储文件块数据,以及块数据的校验和。
(3). Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
<2.>特性
(1).它是一个文件系统,用于存储文件,通过统一的命名空间目录树来定位文件;
(2). 它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

2. YARN架构概述
ResourceManager (RM)要作用:
(1). 处理客户端请求
(2). 监控NodeManager
(3). 启动或监控ApplicationMaster
(4). 资源的分配与调度

NodeManager (NM) 主要作用:
(1). 管理单个节点上的资原
(2). 处理来自ResourceManager的命令
(3). 处理来自ApplicationMaster的命令

ApplicationMaster (AM)作用:
(1). 负责数据的切分
(2).为应用程序申请资源并分配台内部的任务
(3). 任务的监控与容错

Container:是YARN中的资源
抽象,它封装了某个节点上的多
维度资源,如内存、CPU、 磁盘、
网络等。
3.MapReduce架构概述

MapReduce将计算过程分为两个阶段:Map和Reduce

(1). Map阶段并行处理输入数据

(2). Reduce阶段对Map结果进行汇总

Hadoop运行模式

1. 本地运行模式
(1). 官方Grep案例
(2). 官方WordCount案例
2. 伪分布式运行模式
(1). 启动HDFS并运行MapReduce程序
(2). 启动YARN并运行MapReduce程序
(3). 配置历史服务器
(4). 配置日志的聚集
(5). 配置文件说明
3. 完全分布式运行模式
(1). 虚拟机准备
(2). 分发集群环境
(3). 集群配置
(4). 集群单点启动
(5). SSH无密登录配置
(6). 群起集群
(7). 集群启动/停止方式总结
(8).集群时间同步