hadoop分布式集群搭建

article/2025/9/10 8:46:03

Hadoop入门

1. 了解Hadoop

1.1 Hadoop 的优势(4高)

高可靠性:存在多个数据副本,即使某个元素或存储出现故障,也不会导致数据的丢失

高拓展性:在集群见分配任务数据,可方便的拓展数以千计的节点

高效性:Hadoop是并行工作的,以加快任务的处理速度

高容错性:能够自动将失败的任务重新分配

1.2 Hadoop的组成

image-20221003200038424

在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑和资源的调度,耦合度比较大

在Hadoop2.x时代,Hadoop增加了Yarn,Yarn只负责资源的调度,MapReduce只负责运算。

Hadoop3.x时代在组成上没有发生变化。

1.3HDFS架构

什么是HDFS?

HDFS是Hadoop DIstributed File System 的简称,是一个分布式文件系统

HDFS简述

NameNode(nn):

存储文件中的元数据,如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等

DateNode (dn)

在本地文件系统存储文件块数据,以及块数据的校验和

Secondary NameNode(2nn)

每隔一段时间对Name Node原数据进行备份

YARN概述

Yet Another Resource Negotiator简称YARN,是资源协调者,是Hadoop的资源管理器

ResourceManager(RM)

整个集群资源(CPU、内存等)的老大

NodeManager(NM)

单个节点服务器资源的老大

ApplicationMaster(AM)

单个任务运行的老大

Container

容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等

客户端可以存在多个

集群上可以运行多个ApplicationMaster

每个NodeMangager 可以有多个Container

MapReduce

MapReduce将运算过程分为两个阶段

  1. Map阶段并行处理输入数据
  2. Reduce阶段对Map结果进行汇总

HDFS YARN MapReduce三者之间的关系

image-20221003214917587

大数据技术生态体系

image-20221003214939285

框架图:

image-20221003215038861

Hadoop集群环境的安装

集群角色的规划

规划准则

根据软件工作特性和服务器硬件资源情况合理分配

角色规划注意事项

资源上有争抢夺冲突的,尽量不要部署在一起。

工作上需要相互配合的,尽量部署在一起。

安装JDK

由于是最小安装,所以不在带openJDK,只能自己安装。

将jdk拖入到服务器进行解压,随后配置环境变量如下:

image-20221004152304007

随后输入使得文件重新加载。

source /etc/profile

输入Javac 查看是否安装成功

image-20221004152419653

显然安装成功。

安装Hadoop

下载Hadoop 然后进行解压,这里是解压到了opt/module下,解压后进入到其路径下,获取路径

image-20221004153122511

随后配置环境变量:

image-20221004153156747

重新加载,随后进行检查:

hadoop version

运行结果如下:

image-20221004153255518

显然已经安装成功。若搭配集群,操作方法相同。

配置免密登录

配置免密登录需要安装ssh,这里由于是提前安装好的,就不再进行安装。由于我实在root用户下进行操作的,所以某些操作可能不同

进入到/root/.sshimage-20221004153615739

生成公钥、私钥:

image-20221004154215114

在这个过程中需要连点三个回车。随后需要将公钥交给免密登录的目标机器上,由于是集群,这里一共有四个hadoop132 ~ hadoop-135,其中将hadoop132作为父节点,加上了-father 即hadoop132-father

开始进行拷贝。

ssh-copy-id hadoop132-father
ssh-copy-id hadoop133
ssh-copy-id hadoop134
ssh-copy-id hadoop135

集群的角色划分

服务器运行角色
hadoop132-fathernamenode datanode resourcemanager nodemanager
hadoop133secondarynamenode datanode nodemanager
hadoop134datanode nodemanager

配置文件

配置文件主要在hadoop目录下的etc/hadoop/文件下

配置hadoop-env.sh

文件路径在 HADOOP_HOME下的etc/hadoop

配置文件如下:


export JAVA_HOME=/opt/module/jdk1.8.0_301
export HADOOP_HOME=/opt/module/hadoop-3.3.1export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

配置core-site.xml

core-site.xml是hadoop的核心配置文件,但是这是可以进行自定义的,默认配置文件为core-default.xml.

core-default.xml喝core-site.xml的功能是一样的,如果在core-site.xml中没有配置属性,那么就会自动获取core-default.xml文件中的相同属性的值

我们编写配置文件

<!-- 默认文件系统的名称。通过URI中schema区分不同文件系统。-->
<!-- file:///本地文件系统 hdfs:// hadoop分布式文件系统 gfs://。-->
<!-- hdfs文件系统访问地址:http://nn_host:8020。-->
<property><name>fs.defaultFS</name><value>hdfs://hadoop132-father:8020</value>
</property>
<!-- hadoop本地数据存储目录 format时自动生成 -->
<property><name>hadoop.tmp.dir</name><value>/opt/data/hadoop</value>
</property>
<!-- 在Web UI访问HDFS使用的用户名。-->
<property><name>hadoop.http.staticuser.user</name><value>root</value>
</property>

配置hdfs-site.xml文件

HDFS的核心配置文件,主要配置HDFS的相关参数,默认配置选项为hdfs-default.xml

配置如下:

<!-- 设定SNN运行主机和端口。-->
<property><name>dfs.namenode.secondary.http-address</name><value>hadoop133:9868</value>
</property>

修改mapred-site.xml

MapReduce的核心配置文件

配置如下:

<!-- mr程序默认运行方式。yarn集群模式 local本地模式-->
<property><name>mapreduce.framework.name</name><value>yarn</value>
</property>
<!-- MR App Master环境变量。-->
<property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR MapTask环境变量。-->
<property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR ReduceTask环境变量。-->
<property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

修改YARN核心配置文件

核心文件为:yarn-site.xml

<!-- yarn集群主角色RM运行机器。-->
<property><name>yarn.resourcemanager.hostname</name><value>hadoop132-father</value>
</property>
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MR程序。-->
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property>
<!-- 每个容器请求的最小内存资源(以MB为单位)。-->
<property><name>yarn.scheduler.minimum-allocation-mb</name><value>512</value>
</property>
<!-- 每个容器请求的最大内存资源(以MB为单位)。-->
<property><name>yarn.scheduler.maximum-allocation-mb</name><value>2048</value>
</property>
<!-- 容器虚拟内存与物理内存之间的比率。-->
<property><name>yarn.nodemanager.vmem-pmem-ratio</name><value>4</value>
</property>

修改workers

workers主要记录的集群的主机名,一半有以下两个作用:

  1. 配合一键启动脚本如start-dfs.sh进行集群的启动。这时候slaver文件里面的主机标记的就是从节点角色所在的机器
  2. 可以配合hdfs-site.xml里面的dfs.hosts属性形成一种白名单机制。dfs.hosts指定一个文件,其中包括允许连接到NameNode的主机列表。必须指定文件的完整路径名,那么所有在workers中的主机才可以加入集群。如果为空,表示允许所有集群

配置如下:

hadoop132-father
hadoop133
hadoop134

同步配置

采用的是rsync命令,因为hadoop都是安装好的,所以只需要对修改文件进行一个配置即可。

rsync -av hadoop/ root@hadoop134:/opt/module/hadoop-3.3.1/etc/hadoop/
rsync -av hadoop/ root@hadoop133:/opt/module/hadoop-3.3.1/etc/hadoop/

NameNode format(格式化)操作

本质上时进行一个初始化。首次启动HDFS是必须进行此操作

format本质上是初始化工作,进行HDFS清理和准备工作

命令:hdfs namenode -format

注意:

  1. 首次启动之前需要进行format操作
  2. format操作只能执行一次,后续不再进行操作
  3. 如果多次format出了造成数据丢失外,也会造成hdfs集群主从角色互不识别,通过删除所有机器的hadoop.tmp.dir目录 并重新format进行解决

image-20221005091338413

如果出现了这个就表示格式化成功,或者说初始化成功

启动集群

Hadoop 集群存在两种启动方式:

  1. 手动单个启动
  2. 集群启动

手动单个启动

  • 缺点:废人
  • 优点: 精确,可以用于排除故障

HDFS集群

hdfs -daemon start namenode|datanode|secondarynamenode
hdfs -daemon stop namenode|datanode|secondarynamenode

YARN集群

yarn -daemon start resourcemanager|nodemanager
yarn -daemon stop  resourcemanager|nodemanager

案例:

image-20221005100018512

一键操作

可以通过hadoop提供的shell脚本进行一键启动关闭

前提 配置好了免密登录和workers文件

HDFS集群:

start-dfs.sh
stop-dfs.sh

YARN集群

start-yarn.sh
stop-yarn.sh

直接启动hadoop集群

start-all.sh
stop-all.sh

启动测试

father节点:

image-20221005100156036

hadoop133节点

image-20221005100245138

hadoop134节点:

image-20221005100304688

访问UI页面:

HDFS UI页面

hadoop132-father:9870

页面如下:

image-20221005101856090

YARN UI页面:

hadoop132-father:8088

页面如下:

image-20221005101952922

测试是否成功:

上传文件进行尝试:

将这个hadoop的压缩包进行一个上传

上传指令:

hadoop fs -put hadoop-3.3.1.tar.gz /w


http://chatgpt.dhexx.cn/article/8ij7yeHe.shtml

相关文章

一文快速学会hadoop完全分布式集群搭建,很详细

文章目录 前言一、准备工作二、克隆三台虚拟机并进行网络配置克隆虚拟机克隆引导修改网络配置验证验证方式一验证方式二 三、安装jdk和hadoop四、ssh免密登录配置概述生成公钥和私钥把公钥拷贝到三台虚拟机上面去验证把hadoop103 和 hadoop104的免密登录配置安装上面的操作再做…

搭建Hadoop分布式集群的详细教程

目录 写在前面 一、创建虚拟机&#xff0c;安装Centos 二、VMware VMnet8模式共享主机网络配置 三、克隆集群节点HadoopSlave1与HadoopSlave2 四、Linux系统配置 五、Hadoop的部署配置 六、Hadoop集群的启动 写在前面 搭建Hadoop集群的过程比较复杂&#xff0c;本文旨在…

五大分布式集群架构问题解决方案

前言 什么是分布式集群&#xff1f; 这里有两个概念&#xff1a;分布式和集群。 分布式&#xff1a;分布式是指将不同的业务分布在不同的地方或者同一个业务模块分拆多个子业务&#xff0c;部署在不同的服务器上&#xff0c;解决高并发的问题。分布式中的每一个节点&#xf…

redis分布式集群搭建

一、软件环境信息 1、redis版本要求&#xff1a;3.0及之后版本 2、服务节点个数要求: 至少3个主节点&#xff0c;其中主节点不少于节点总数的一半&#xff1b;至多16384个节点&#xff1b;每个主节点至少有一个从节点&#xff0c;故redis集群模式至少需要6个服务节点。 3、…

大数据Hadoop集群搭建 1(伪分布式集群)

目录 Hadoop集群简介 Hadoop集群具体来说包含两个集群&#xff1a;HDFS集群和YARN集群。 Hadoop集群的部署方式分为三种&#xff0c;分别是单机模式、伪分布式模式和完全分布式模式。 环境搭建 1.修改主机名 2.修改时区 4.配置ssh免密 5.安装Hadoop 目录结构 配置文件说…

HADOOP 伪分布式集群搭建

一 linux 环境的搭建 由于笔者这里使用的是vmware 虚拟机 采用centos7 linux 操作系统进行搭建&#xff0c;所以一下示例均以centos7进行示例 1. 搭建vmware 虚拟机 &#xff08;1&#xff09;创建好虚拟机后采用linux ISO镜像文件启动安装centos7操作系统&#xff08;其它…

Zookeeper分布式集群部署

文章目录 一&#xff1a;zookeeper安装包下载安装1.下载安装包2.上传安装包3.解压安装包4.改名 二&#xff1a;zookeeper集群配置1.修改zoo.cfg配置文件2.创建myid文件3.配置系统环境变量4.分发zookeeper相关文件至从节点slave1&#xff0c;slave2 三&#xff1a;zookeeper服务…

漫话:如何给女朋友解释什么是分布式和集群?

作者 | 漫小画 公号 | 漫话编程 漫小画 擅长漫话 程小员 擅长编程 某天&#xff0c;下班较早&#xff0c;我正在玩吃鸡&#xff0c;已经到决赛圈了&#xff0c;这时候&#xff0c;女朋友满脸求知欲的朝我走过来。 上次他们都说你给我讲的面向对象太简单了。 那你想怎样&#xf…

什么是分布式集群?

首先来说一下集群的概念&#xff0c;集群是指将多台服务器集中起来一起进行同一种服务。相比一台服务器&#xff0c;集群的优势在于将负载均衡到每台服务器上&#xff0c;可以承载更高的访问量。 分布式又是什么呢&#xff0c;分布式指的是将工作进行业务拆分&#xff0c;然后…

什么是分布式,分布式和集群的区别又是什么?这一篇让你彻底明白!

1. 什么是分布式 ? 分布式系统一定是由多个节点组成的系统。 其中&#xff0c;节点指的是计算机服务器&#xff0c;而且这些节点一般不是孤立的&#xff0c;而是互通的。 这些连通的节点上部署了我们的节点&#xff0c;并且相互的操作会有协同。 分布式系统对于用户而言&a…

什么是集群?什么是分布式?集群与分布式的区别,集群和分布式的关系。

什么是集群 假如你开发了一个程序供大家使用&#xff0c;当然会把开发好的程序放到应用服务器中&#xff0c;刚开始用户量不大&#xff0c;用户访问的正常&#xff0c;服务器压力小。 但是随着用户量的增大&#xff0c;一台服务器不足以支撑系统的正常运行。 于是你决定把程…

python 除法符号_python的除法运算符是什么

python的除法运算符是什么&#xff1f;python中除法运算符有两类&#xff0c;一种是浮点除法运算符&#xff0c;另一种是整除除法运算符。 1. / 浮点除法&#xff0c;就算分子分母都是int类型&#xff0c;也返回float类型&#xff0c;比如我们用4/2&#xff0c;返回2.0 2. // …

c语言和Python整除符号,互联网常识:python除法运算符有哪些

python除法运算符&#xff1a;1、“/”运算符&#xff0c;按照常规数学除法计算的方式直接得出结果即可&#xff1b;2、“//”运算符&#xff0c;取整除&#xff0c;返回商的整数部分(向下取整)&#xff1b;3、“%”运算符&#xff0c;返回除法的余数。 本教程操作环境&#xf…

python的除法_python中的除法

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 截断表示截断小数分,取整数部分的意思。 实际应用中,精确除法比截断除法更频繁,所以有的书上,精确除法也叫普通除法(也就是常用除法) 也有人把精确除法叫浮…

python 整除及余数_python除法余数

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 常量常量就是不变的变量,在python中,通常用大写的变量名表示常量,这一点和java想相同:ali_address=ali_address=www.alibaba.com4.除法python中和除法...- …

Python 计算之除法

文章目录 1. 除法 /2. 四舍五入round()3. 浮点数取整int()4. 地板除 //5. 向上取整math.ceil()6. 取小数和整数部分math.modf() 1. 除法 / a,b 95,20 c a/b print(a,a,b,b,c,c)运行结果&#xff1a; a 95 b 20 c 4.752. 四舍五入round() round()的第2个位置参数表示取小数…

微信小程序框架(思维导图)

这是小编整理的一份关于微信小程序框架的思维导图&#xff0c;建议大家电脑点击图片查看哦&#xff01;

微信小程序框架分析思维导图

微信小程序框架分析思维导图

微信小程序表单框架01

简易表单wxml界面代码与界面效果 文本框样式&#xff1a; 点击多列选择器&#xff0c;代码与效果如下&#xff1a; 多列选择器js代码&#xff1a;

新建微信小程序项目

文章目录 app.jsonapp.wxsspages/index/index.wxmlpages/index/index.wxss相关链接 使用微信开发者工具新建微信小程序项目&#xff1a;mydemo&#xff0c;不使用云开发&#xff0c;不使用模板&#xff0c;自动生成如下文件&#xff1a; app.jsapp.wxssapp.jsonpages index in…