首页 > 其他分享 >Hadoop集群搭建总结

Hadoop集群搭建总结

时间:2023-04-27 11:46:51浏览次数:54  
标签:Hadoop dfs cluster datanode namenode 节点 集群 搭建

对这两天搭建Hadoop集群做个经验总结

master节点:Ubuntu 22.04,也就是我的台式机主机
slave节点:Debian 11,通过VMware虚拟出来
(1)集群节点设置和角色分配
master   namenode,datanode,resourcemanager,nodemanager
slave0   secondarynamenode,datanode,nodemanager
slave1   datanode,nodemanager
slave2   datanode,nodemanager
Hadoop体系的构成有三部分,分别是HDFS、YARN、MapReduce。分清楚它们的逻辑关系很重要。
其中HDFS充当的是文件系统的角色,笼统来讲就像你电脑里的文件管理器,由于它的存在,你只需扔给它文件就行了,至于存到哪块硬盘(对应HDFS就是datanode节点),你不需要操心。
YARN的角色就是资源协调方,在Hadoop2.0的时候引入的一个机制。hadoop1.0的时候YARN这部分的工作基本上是由namenode来完成的。YARN要做的工作,大概就是弄清楚集群中的存储资源分布情况,当你要向集群存储文件时,能够较好地把文件存到合适的位置。

MapReduce则相当于你电脑的应用程序,具体如何处理数据,就由MapReduce来弄。

其中,namenode、datanode、secondarynamenode是属于HDFS系统的,也就是这些节点共同构成分布式文件系统。resourcemanager和nodemanager是属于YARN的。在启动分布式系统时,可以分别启动HDFS系统(运行start-dfs.sh)和YARN系统(运行start-yarn.sh)

(2)配置过程
具体配置过程,网上已经有很多博客了,我不再赘述。
先说说走过的弯路

1. 关于Linux的User设置

master和slave节点运行Hadoop的用户,最好要取相同的名字,虽然不取相同的名字理论上也行得通,但是很麻烦。
这里主要是因为配置$HADOOP_HOME/etc/hadoop里的workers文件的问题,这里只定位到节点的ip地址,而不定位到具体节点运行Hadoop程序的用户。当master和slave节点运行Hadoop程序的用户名不一样时,在master节点上(比如master节点上用户名是mmm)通过ssh远程登陆slave节点(比如slave节点用户名是sss)时,它会默认登陆slave节点的mmm用户。我一直想在etc/hadoop下的masters文件里定位到具体节点的用户上,然而一直会有节点启动失败问题。
总结:为了免去不必要的麻烦,最好让各个节点上运行Hadoop程序的用户名一致

2.格式化和cluster-ID不一致问题

其实格式化就是重置文件系统,格式化之后之前存储的东西都没了。格式化的时候经常会碰到datanode和namenode的cluster-ID不一致问题
hdfs namenode -format
运行这个命令时,其实主要就是把namenode上面里存储HDFS的元数据删除了。那元数据存储在哪里呢?$HADOOP_HOME/etc/hadoop下的hdfs-site.xml文件里,通过配置dfs.namenode.name.dir,可以指定元数据的存储位置,其中cluster-ID数据就存在这里面。。在hdfs-site.xml里通过配置dfs.datanode.data.dir,还可以指定datanode存储具体数据的位置
那cluster-ID不一致是怎么回事呢?其实就是dfs.namenode.name.dir和dfs.datanode.data.dir下面的cluster-ID不一致,导致datanode启动不了。格式化之后,namenode的相关数据会删掉,在start-dfs.sh的时候重新生成,但是,datanode下面的相关数据不会删除!在启动文件系统的时候,由于检测到dfs.datanode.data.dir里面不是空的,它就不会给它同步生成cluster-ID,从而导致datanode的cluster-ID和namenode的cluster-ID不一致。
所以,格式化之后,一定要把datanode下dfs.datanode.data.dir里的文件删掉,再启动HSDFS

3.关于排错
其实主要就是查看日志文件。每次启动都会生成日志文件(就是.log文件,不是.out文件)。查看相关的日志文件就好了。

4.关于网段设置
说一个我遇上的诡异事件。我的台式机主机IP是公网IP,VMware上虚拟机设置的是NAT模式,IP地址是私域IP。一路配置下来,都没问题,免密登录、启动HDFS、启动YARN,看起来都好好的。但是!我发现HDFS的存储空间为0,而且也没法hdfs dfs -put文件。运行hdfs dfsadmin -report显示只有一个存活的节点(事实上四个datanode都启动了),我多次运行hdfs dfsadmin -report,发现存活的datanode还不一样。。????
后来我只好让namenode和datanode全都处于私域,或者全都处于公网,才正常了。
所以,一定要让节点要么都在公网,要么都在私域其实,从后面对hadoop的设计初衷也知道,这个问题是很显然的。

集群配置还有好多问题,要弄懂整个集群,还有很多要学。加油!!!
这里推荐一篇很值得读的文章:Hadoop和网络 有时间我对这篇博客做个总结。

标签:Hadoop,dfs,cluster,datanode,namenode,节点,集群,搭建
From: https://www.cnblogs.com/aligaduo/p/17358503.html

相关文章

  • 从0-1_Hadoop安装
    1、流程说明本文参考尚硅谷大数据教程加以整理1、win10,安装好xshell/xftp/vmware,搭建虚拟机,克隆3台2、配置网络,防火墙,host,hostname,创建新用户,配置ssh免密3、上传jdk/hadoop安装包,解压,配置环境变量,wordcount测试注意:虚拟机搭建好,配置完就要切换到xing用户,使用sudo操......
  • windows驱动开发环境搭建
    下载WDK,我是在http://www.microsoft.com/en-us/download/details.aspx?id=11800下载的,版本7.1.0。下载VisualDDK,下载地址:http://visualddk.sysprogs.org/download/先安装WDK,然后安装VisualDDK,都直接点下一步就可以了,没有特别设置。安装好后,打开VS2010,会出现VisualDDK的项目类型,新......
  • FTP服务器搭建
    使用FileZillaServer搭建FTP服务,方法如下: 一、安装 二、配置 三、使用建议使用FlashFXP工具,较稳定,还能断点传输。 ......
  • MinIO搭建及使用
    MinIO无需多作介绍,非常好用的文件存储服务。我们不仅在项目上当文件服务器使用,还经常拿它当临时文件传输的网盘来用,下面介绍使用方法: 一、命令行启动MinIO只有一个exe程序,启动命令很简单,启动时可以带参数来指定文件存储路径和端口(不带参数的话和exe同级目录) 二、查看配......
  • redis,python操作哨兵,python操作集群,缓存优化,缓存击穿,穿透,雪崩
    python操作哨兵高可用架构后》不能直接连接某一个主库》主库可能会挂掉,后来他就不是主库了之前的连接redis操作就不能用了importredisconn=redis.Redis(host='',port=6379)conn.set()conn.close()新的连接哨兵的操作连接哨兵服务器(主机名也可以用做域名)配置文件#redi......
  • 头歌平台——Hadoop开发环境搭建
    第1关:配置开发环境-JavaJDK的配置(1)创建一个/app文件夹,命令mkdir/app(2)配置环境变量解压好JDK之后还需要在环境变量中配置JDK,才可以使用,接下来就来配置JDK。输入命令:vim/etc/profile编辑配置文件;在文件末尾输入如下代码(不可以有空格)。JAVA_HOME=/app/jdk1.8.0_171CLASSPA......
  • rabbitMQ镜像模式搭建
    一、环境 配置hosts解析192.168.1.135rabbit-master01192.168.1.136rabbit-master02192.168.1.137rabbit-master03关闭防火墙或者配置相关端口二、安装yum源及rabbitmq在所有机器上curl-shttps://packagecloud.io/install/repositories/rabbitmq/erlang/script.r......
  • CentOS搭建squid正向代理
    squid介绍官网地址:http://www.squid-cache.org/Squidcache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维......
  • Ubuntu下的搭建NFS服务配置
    NFS简介NFS是NetworkFileSystem的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文......
  • 服务器上搭建git仓库
    服务器上搭建git仓库Liunx系统专栏收录该内容订阅专栏目录一、git安装和配置1、git安装2、git配置二、git仓库初始化1、创建仓库目录2、初始化git仓库三、git仓库的使用1、本地项目上传至服务器git仓库2、服务器git仓库拉取到本地3、第三方集成开发软件中如何实现......