先来讲讲安装hadoop的大致流程,备忘:
    
   
- 删除系统自带的openjdk
 - 安装在官网下载的jdk
 - 配置JAVA环境变量
 - source /etc/profile
 - 输入 java -version,验证JAVA环境安装成功;
 - 
     解压hadoop,并配置环境变量(这一步具体参考
https://www.bilibili.com/video/BV1tT4y1E7xf?p=14); - source /etc/profile
 - 输入 hadoop version,验证hadoop安装成功。
 
    
     HDFS的部署有3种模式:本地模式、伪分布式模式、完全分布式模式。
    
   
    
    
    1. 本地模式(Standalone)
   
    1) 运行在单个机器上;
    
    2) 使用的是本地文件系统;
    
    
     用途:
    
    
    1) 用于调试MapReduce程序的逻辑,确保逻辑的正确;
    
    3) 本地模式适用于开发阶段,因为在本地调试MapReduce程序比较方便。
    
    
     本地模式不需要安装,只需要在已经安装hadoop的机器上运行MapReduce程序即可。
    
   
    
    
    2. 伪分布式模式(Pseudo-Distributed)
   
    1) 运行在单个机器上;
    
    2) 使用的是分布式文件系统;
    
    3) HDFS涉及到的守护进程(NameNode、SecondaryNameNode、DataNode等)都运行在一台机器上(都是独立的JAVA进程);
    
    
     用途:
    
    
    1) 比本地模式多了代码调试功能;
    
    2) 允许检查内存使用情况;
    
    3) 可以检查HDFS输入输出、守护进程的交互。
    
    
     与配置有关的文件解析:
    
    
    
     core-site.xml
     
     这里的一开始的“hdfs”不是http,因为进程间不通过http进行通信。
    
    
    
   
    
     hdfs-site.xml
     
     伪分布式模式的副本设置为1,因为就算配置多个副本,机器坏了,所有副本都在机器里,再多副本也没用。
    
   
    
   
    
     Hadoop-env.sh
     
     指定jdk的环境
    
    
    
   
    
    
    3. 完全分布式模式
   
    1) 运行在不同的机器上;
    
    2) HDFS的各个守护进程会运行在不同的机器上。
    
    
     用途:
    
    
    1) 生产环境中使用;
    
    2) NameNode尽量部署在硬件性能较好的机器上;
    
    3) 其它每台机器,都要部署一个DataNode,机器性能可以稍弱(一般DataNode都很多,这样做是为了控制成本);
    
    4) SecondaryNameNode不建议和NameNode部署在同一台机器上。
   
    
     配置过程:
    
    
    1) 配置对应环境
    
    2) 格式化集群
    
    3) 启动集群
    
    4) 测试集群
    
    注:这里顺便部署yarn。
    
    教材中是用了3台虚拟机,所以master上面既有NameNode,也有DataNode,这里是因为他虚拟机太少。其实在真实情况下,一台机器配置一个HDFS Node就行。
    
    这里的NodeManager、ResourceManager都是yarn中的结点。其中存在和HDFS中的结点对应关系(yarn和HDFS中的结点并没有特殊的联系):
    
    
     ResourceManager
    
    **(yarn中的“boss”)
    
     对应
    
    NameNode(HDFS中的“boss”)**;
    
    
     NodeManager
    
    对应
    
     DataNode
    
    。
   
    
   
    在部署完全分布式集群时,需要满足下面的条件:
    
    
   
    完全分布式集群所需编辑的配置文件:
    
    
   
    
     core-site.xml文件相关解析:
    
   
    
   
    
     hdfs-site.xml解析:
    
    
    
   
    
     mapred-site.xml解析:
    
   
    
   
    
     yarn-site.xml解析:
    
    
    
   
    
     hadoop-env.sh、yarn-env.sh:
    
    
    
   
    多台机器的配置方法:
    
    
   
    
     格式化集群的目的(hdfs namenode -format格式化必须在NameNode上执行):
    
   
- 生成集群id:clusterID;
 - 生成块池id:BlockPoolID;
 - 
     生成NameNode进程管理内容(fsimage)的存储路径:
默认配置文件属性hadoop.tmp.dir指定的路径下生成dfs/name目录; - 生成镜像文件fsimage,记录元数据;
 - 生成并记录其他信息。
 
    
     启动集群(最好在NameNode上执行):start-dfs.sh
    
    
    在启动之后,如果有某些结点没有启动成功,可以查看日志:
    
    
   
    在守护进程的启动和关闭方面,官方推荐单个start和单个stop:
    
    
   
下一篇文章记录如何搭建完全分布式模式。