Hadoop是一个分布式系统基础架构,主要解决海量数据的存储和海量数据的分析计算问题。
Hadoop组成:
NameNode 指明数据存在哪个节点上 DataNode 实实在在的数据
1、NameNode是一个中心服务器,单一节点(简化系统的设计和实现,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问
2、文件操作,Namenode是负责文件元数据的操作,Datanode负责处理文件内容的读写请求,跟文件内容相关的数据流不经过Namenode,只询问它跟哪个DataNode联系,否则Namenode会成为系统的瓶颈
3、 副本存放在哪些Datanode上由Namenode来控制,根据全局情况作出块放置决定,读取文件时NameNode尽量让用户先读取最近的副本,降低读取网络开销和读取延时。HDFS分布式文件系统的内部有一个副本存放策略:以默认的副本数=3为例:①第一个副本块存本机②第二个副本块存跟本机同机架内的其他服务器节点③第三个副本块存不同机架的一个服务器节点上
4、Namenode全权管理数据库的复制,它周期性的从集群中的每Datanode接收心跳信合和状态报告,接收到心跳信号意味着DataNode节点工作正常,块状态报告包含了一个该DataNode上所有的数据列表
MapReduce将计算过程分为两个阶段:Map和Reduce
工作过程概述:
1.用户向YARN中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等
2.ResourceManager为该应用程序分配第一个Container,并与对应的Node-Manager通信,要求它在这个Container中启动应用程序ApplicationMaster
3.ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7
4.ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源
5.一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务
6.NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务MapTask
7.各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在应用程序运行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态
8.最后经过ReduceTask将结果返回写到磁盘,HDFS做相应的存储
9.应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己
关于SecondaryNameNode:
链接: https://blog.csdn.net/xh16319/article/details/31375197
相关压缩包在文章末尾
1、卸载现有JDK
注意:安装JDK前,一定确保提前删除了虚拟机自带的JDK
2、用XShell传输工具将JDK导入到opt目录下面的software文件夹下面
3、在Linux系统下的opt目录中查看软件包是否导入成功
[gzhu@hadoop102 ~]$ ls /opt/software/
4、解压JDK到/opt/module目录下
[gzhu@hadoop102 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
5、配置JDK环境变量
①新建/etc/profile.d/my_env.sh文件
[gzhu@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh
添加如下内容:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
②保存后退出 :wq
③source一下/etc/profile文件,让新的环境变量PATH生效
[gzhu@hadoop102 ~]$ source /etc/profile
6、测试JDK是否安装成功
[gzhu@hadoop102 ~]$ java -version
如果能看到以下结果,则代表Java安装成功。
java version “1.8.0_212”
注意:重启(如果java -version可以用就不用重启)
[gzhu@hadoop102 ~]$ sudo reboot
Hadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
1、用XShell文件传输工具将hadoop-3.1.3.tar.gz导入到opt目录下面的software文件夹下面
2、进入到Hadoop安装包路径下
[gzhu@hadoop102 ~]$ cd /opt/software/
3、解压安装文件到/opt/module下面
[gzhu@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
4、查看是否解压成功
[gzhu@hadoop102 software]$ ls /opt/module/
显示hadoop-3.1.3即成功
5、将Hadoop添加到环境变量
①获取Hadoop安装路径
[gzhu@hadoop102 hadoop-3.1.3]$ pwd /opt/module/hadoop-3.1.3
②打开/etc/profile.d/my_env.sh文件
[gzhu@hadoop102 hadoop-3.1.3]$ sudo vim /etc/profile.d/my_env.sh
在my_env.sh文件末尾添加如下内容:(shift+g)
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
保存并退出: :wq
③让修改后的文件生效
[gzhu@hadoop102 hadoop-3.1.3]$ source /etc/profile
6、测试是否安装成功
[gzhu@hadoop102 hadoop-3.1.3]$ hadoop version
7、重启(如果Hadoop命令不能用再重启虚拟机)
[gzhu@hadoop102 hadoop-3.1.3]$ sudo reboot