Hadoop启动过程

1、hadoop四大模块:

(1)hadoop common:通用模块,是hadoop其他模块的基础,对应core-site.xml文件

fs.defaultFS------hdfs://s101 ====== 指定hadoop的文件系统,hdfs文件系统

hadoop.tmp.dir------/home/centos/hadoop ====== hadoop工作目录位置

(2)hdfs:对应用数据提供高吞吐量的访问,对应hdfs-site.xml文件

dfs.replication------3 ====== 副本数,相当于备份数

(3)yarn:分布式调度模块,,对应yarn-site.xml文件

resourcemanager------s101 ====== resourcemanager进程的地址,只在master节点上存在

(4)mapreduce:分布式计算模块,,对应mapred-site.xml文件

framework------yarn ====== mapreduce的资源调度框架,yarn是mapreduce的第二代资源调度框架

2、启动hadoop:在s101上输入"start-all.sh",通过"jps"查看主节点进程,也可以分为两步启动

(1)start-dfs.sh ====== 启动hdfs,分布式存储

namenode:名称节点,存储元数据,比如块大小,文件名,副本,权限等等

      hdfs getconf -namenode ====== 获取namenode节点

      hadoop-daemons.sh  --hostnames s101  start namenode ====== 单独启动namenode节点

      hadoop-daemon.sh start namenode ====== (简写)单独启动namenode节点

datanode:数据节点,存储真实数据,以"blk"形式存储

      hadoop-daemons.sh start datanode ====== 单独启动namenode节点

secondary namenode:辅助名称节点(在哪个节点启动都可以),检查点:用作日志滚动和镜像文件融合,备份数据

      hdfs getconf -secondarynamenodes 2>/dev/null ====== 获取2nn节点地址,并将错误信息重定向到"/dev/null"

      hadoop-daemons.sh --hostnames 0.0.0.0 start secondarynamenode ====== 单独启动2nn节点

      hadoop-daemon.sh start secondarynamenode ====== (简写)单独启动2nn节点

(2)start-yarn.sh ====== 启动yarn,分布式计算和调度

resourcemanager:资源管理器

yarn-daemon.sh start resourcemanager ====== 单独启动资源管理器

nodemanager:节点管理器

yarn-daemons.sh start nodemanager ====== 单独启动节点管理器

(3)总结:

在s101上启动所有进程:start-all.sh

在s101上启动所有hdfs进程:start-dfs.sh

在s101上启动namenode进程:hadoop-daemon.sh start namenode

在s101启动所有datanode进程:hadoop-daemons.sh start datanode

在s101上启动2nn进程:hadoop-daemon.sh start secondarynamenode

在s101上启动resourcemanager:yarn-daemon.sh start resourcemanager        

在s101上启动nodemanager:yarn-daemons.sh start nodemanager

hadoop-daemon.sh ====== 启动当前节点的进程

hadoop-daemons.sh ====== 启动其所有节点的进程

停止进程:将所有"start"改为"stop":

hadoop-daemon.sh启动过程:通过PID文件验证进程是否存在,若存在,提示在启动之前先关闭

hadoop-daemon.sh关闭过程:通过PID文件验证进程是否存在,若存在,则通过"kill"命令杀死进程,如果在超时时间未正常关闭,则通过"kill -9"命令强制杀死进程

3、启动过程常见错误及解决方案:

(1)多次格式化出现错误,datanode无法正常启动,解决思路:

查看对应主机的相关日志信息:cd /soft/hadoop/logs,cat hadoop-centos-datanode-s102.log

得到信息:多次格式化,导致namenode和datanode的集群id不匹配,由于格式化只对namenode有效,对其它节点无效

删除对应文件夹:ssh s102 "rm -rf /home/centos/hadoop"(s103,s104)

在s101重新启动datanode:hadoop-daemons.sh start datanode

(2)没有格式化文件系统,导致namenode无法正常启动,解决思路:

查看对应主机的相关日志信息:cd /soft/hadoop/logs,cat hadoop-centos-namenode-s101.log

得到信息:namenode的工作目录不存在或者无法访问

格式化文件系统:hdfs namenode -format

在s101重新启动namenode:hadoop-daemon.sh start namenode

又出现错误(1),查看错误(1)的解决思路

(3)进程正常启动,datanode无法使用,解决思路:

查看日志:cd /soft/hadoop/logs,cat hadoop-centos-datanode-s103.log

得到信息:本机连通s101出现问题,将主机名s101解析为其他IP地址

修改hosts文件:sudo nano /etc/hosts

重新启动hadoop

(4)进程正常启动,datanode无法使用,上传文件失败

防火墙没有关闭,查看本机防火墙,并关闭

猜你喜欢

转载自blog.csdn.net/foyemazl/article/details/81291303