黑马程序员技术交流社区

标题: 【上海校区】集群搭建常见问题&集群安装的五种模式 [打印本页]

作者: wuqiong    时间: 2018-7-16 09:18
标题: 【上海校区】集群搭建常见问题&集群安装的五种模式
一:搭建hadoop常见问题

查看集群启动日志

存放集群的日志信息位置在hadoop-2.7.6安装目录下的logs
,比如我的在:/home/hadoop/apps/hadoop-2.7.6/logs

日志文件名字含义:
hadoop(进程归属)-hadoop(用户名)-datanode(进程名)-hadoop01(节点).log

start-dfs.sh获取start-yarn.sh启动的时候某一个进程启动不了?

解决办法一:

先检查日志文件有没有报错 日志文件报错,排除错误 重新启动 。

解决办法二:

如果日志文件没有报错,查看是否配置好了免密登录。

解决办法三:

先把集群全部停了,再重启。分别执行:stop-dfs.sh,start-dfs.sh

解决办法四:

检查hdfs的相关进程看看哪个没有启动,再单独启动。

单独启动的命令:
                hadoop-daemon.sh start  hdfs的进程
                hadoop-daemon.sh start namenode
                hadoop-daemon.sh start datanode
                hadoop-daemon.sh start secondarynamenode
                哪个节点上缺  在哪一个节点上执行
            yarn的相关命令,单独启动的命令:
                yarn-daemon.sh start yarn的相关命令
                yarn-daemon.sh start resourcemanager
                yarn-daemon.sh start nodemanager

格式化的问题

hdfs的格式化在做什么事情:创建namenode的数据存储目录,生成最初的元数据。在这个元数据中有一个重要的信息:VERSION—-记录的是集群当前的版本号, 每次格式化一次都会生成一个全新的。

成功的格式化只能进行一次 。如果不成功,则需要找到原因,直到成功。如果成功格式化之后启动了集群后又进行格式化,namenode的集群id信息会发生改变,datanode记录的集群id还是原来的,这时候就会造成datanode、namenode启动不了。

时间同步问题

机器不能联网:

手动进行同步:date -s “”

能联网的时候:可以用外部的时间服务器或者自己搭建时间服务器来同步时间

ntpdate “时间同步器的网址”

目的:是为了和北京时间保持一致吗?不是

是为了集群中各个节点之间的时间保持一致 。

环境变量的配置有问题:

    /etc/profile------系统环境变量
            ~/.bashrc-------用户环境变量----针对当前用户的
             ~/.bash_profile-----用户环境变量----针对当前用户的
            加载顺序:
                系统的环境变量》》》》~/.bash_profile》》》~/.bashrc
            生效顺序:
                最后加载的最终生效


二:集群安装中的5种模式

单机模式

解压就可以。不存在分布式文件系统,所有文件存取都是本地模式,数据来源于本地存储。
生产上基本不用,只在本地测试时使用。

伪分布式

安装在一个节点上,是存在分布式文件系统的,只是所有的进程运行在一台机器上。同样存在主从结构,也是分布式。
生产中不会用,个人学习的时候会用。

完全分布式

存在主从结构,运行在多个节点上。存在一个主节点,多个从节点。是一种多从的结构。
在生产中用得少,在集群的节点数比较少的时候才用。
缺陷:一个主节点,一个冷备份节点

主节点的压力比较大,如果有一天namenode宕机了,集群就不能正常访问,集群处于瘫痪状态。会存在主节点的单点故障。

高可用:

多个主节点,多个从节点。目前使用最广泛的集群模式。

多个主节点中同一时间只有一个主节点对外提供服务,我们称之为active namenode,其他主节点处于热备份状态 standby namenode,时刻监控active主节点的状态,当active namenode宕机的时候 standny namenode立即进行切换,切换为active namenode,standby namenode必须实时和active namenode的元数据保持一致。

这种集群模式依赖于zookeeper,虽然有多个主节点,但是同一时间只有一个是active的,集群中真正服务的主节点仍然是一台机器的能力。举个例子,如果我的集群非常大,10000台从节点机器,每台datanode的存储数据的元数据信息都需要存储在namenode中,namenode的压力会很大,namenode存储的东西过多,进行数据访问的时候效率过低。

我们需要帮namenode分担压力,同一时间是否可以有多个主节点对外提供服务?

联邦模式

适用于超大集群。

同一时间会有多个namenode共同服务,多个namenode之间相互协作的时候依赖于块池id,来区分哪个数据归属哪一个namenode管理。多个namenode共同管理集群中的所有datanod,分工明确的 。 每个namenode只负责管理datanode上自己块池的数据

块池:联邦模式中标志数据块的管理权限的。格式例如:blockpoolID=BP-54673466-192.168.40.201-1531445892504。这个指的是当前的namenode所管理的块池的名字

hadoop四个模块

common

hdfs

mapreduce

yarn


作者: 不二晨    时间: 2018-7-16 11:50
奈斯
作者: 小影姐姐    时间: 2018-7-18 10:34
牛牛牛!
作者: 吴琼老师    时间: 2018-7-18 14:42

作者: 不二晨    时间: 2018-7-19 14:05

优秀




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2