Hadoop如何搭建计算和存储节点分离

news2024/11/17 0:35:51

在业内存在着一种看起来比较离谱的搭建方式,叫计算节点与存储节点分离,说它比较离谱,是因为hadoop架构本身不直接支持将这两者分开,因为hadoop本身的一大优势就是计算本地化,这种分开搭建的方式抛弃了这种优势,但是也有好处,就是可以省钱,通过这种方式,把高性能机器放在计算上,其他大量的廉价机器在保证磁盘读写IO性能上不出大问题就可以放在集群中存储数据。

通常这种样式的搭建方式,一般都会放最少20台高性能机器,其他都是廉价的存储节点,下面就来看一下怎么搭建这个玩意,具体搭建之前我要再说明一点hadoop本身不直接支持把计算和存储节点分离,注意我用的字眼是直接,意思就是说你没有办法通过配置来直接指定哪台节点被明确的区分为存储节点或计算节点,但是你能够通过一些hadoop提供的配置从运行方面达到这一点需求。

我在本地准备了三个节点的Hadoop测试集群,他们负责的角色如下

域名    负责角色
hdp4	NameNode、DataNode、NodeManager、JournalNode、DFSZKFailoverController、Zookeeper
hdp5	NameNode(备用)、DataNode、ResourceManager、NodeManager、JournalNode、DFSZKFailoverController、Zookeeper
hdp6	DataNode、ResourceManager、NodeManager、JournalNode、Zookeeper

总的来说,hdp4和hdp5负责namenode主副节点,hdp5和hdp6配合负责主副yarn节点、hdp4和hdp5以及hdp6本身都再负责一个datanode和nodemanager的角色。现在我要做的是只让hdp4和hdp5上的datanode起效,也就是做存储节点,而hdp6只起效nodemanager作为计算节点。

首先第一步,进入hadoop的配置文件目录,我用的3.x的版本,既/opt/hadoop-3.1.3/etc/hadoop下,打开yarn-site.xml,追加一个配置

<property>
	<name>yarn.resourcemanager.nodes.exclude-path</name>
	<value>/opt/hadoop-3.1.3/etc/hadoop/exNodeManagers</value>
</property>

然后再配置目录下创建exNodeManagers文件,在这个文件里,每一行为单位,写你希望那台节点在启动集群的时候被排除在yarn资源池里面。注意,这里补充一点,在搭建Hadoop集群的时候,2.x会指定slaves文件3.x会指定workers文件,这里说的,你希望哪台节点在启动时被排除,就是指的这个文件里你写的机器,和namenode和及resourcemanager节点没关系,因为现在是为了分离计算和存储节点,只对datanode和nodemanager做操作。

言归正传,因为计划只让hdp6做计算,因此其他两台机器我要写在这个文件中,不让他们启动nodemanager

hdp4
hdp5

第二步,打开hdfs-site.xml文件,添加如下配置并建立对应的文件,作用和上面同样,只不过这次限制的是那台节点不作为datanode

<property>
  <name>dfs.hosts.exclude</name>
  <value>/opt/hadoop-3.1.3/etc/hadoop/exDataNodes</value>   
</property>

exDataNodes文件:

hdp6

虽然我们就可以启动集群了,注意这个配置方法,本身是Hadoop提供给OP的技术储备,使得Hadoop可以灵活的预留节点或对节点做上下线的。而且一般情况下也不能直接重启集群,一来耗时,二来商用的时候你每关闭一小时集群,那可是少赚一小时的核时啊,不明白什么叫核时的去查一查这里不做科普。

言归正传,正式操作的时候,都是通过yarn rmadmin -refreshNodeshdfs dfsadmin -refreshNodes来刷新配置就行。

当你一切准备就绪后,重启或刷新配置,登录yarn ui上,你就可以看到只剩下hdp6节点在资源队列里面
在这里插入图片描述
datanode去namenode的ui上看,但是看的时候注意,datanode不想resourcemanager节点那样不展示,你在datanodes界面任然还能看到节点,只是会标记为退出存储队列,不过你在服务器上jsp进程,对应的节点还是会启动datanode进程。
在这里插入图片描述
最后说一句,nodemanager配置文件排除之后,对应节点上就不启动了,不过如果你是通过刷新配置来操作的话,可能有的时候网络之类的问题没有成功退出,直接kill就行,但是datanode还会启动,一般会写一个脚本,放在hadoop启动脚本的最后,用来远程调用对应节点处理出datanode的进程号kill掉就行,然后再datanodes页面上前面的标识就会从退出,变成橙色标识的完全退出状态,既对应节点已完全消失。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2049687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 软件编程学习第十五天

1.TCP粘包问题&#xff1a; TCP发送数据是连续的&#xff0c;两次发送的数据可能粘连成一包被接收到 1.解决粘包问题方法&#xff1a; 1.接收指定长度&#xff1a;&#xff08;不稳定&#xff09; 发送5个字节 接收5个字节 2.睡眠&#x…

用户画像实时标签数据处理流程图

背景 在用户画像中&#xff0c;有一类实时标签&#xff0c;我们既要它能够实时的对外提供数据统计&#xff0c;也要保存到大数据组件中用于后续的对数&#xff0c;圈选的逻辑&#xff0c;本文就看一下用户画像的实时标签的数据流转图 实时标签数据流转图 首先我们肯定是要使…

GoMail发送邮件的性能优化策略有哪些方法?

GoMail发送邮件如何配置服务器&#xff1f;GoMail发信功能如何&#xff1f; GoMail是一款广受欢迎的Go语言邮件发送库&#xff0c;具备高效、易用等优点&#xff0c;但在高并发场景下&#xff0c;GoMail发送邮件的性能优化显得尤为重要。AokSend将探讨几种有效的GoMail发送邮件…

图像数据处理14

三、空域滤波 3.3 统计排序滤波器 统计排序滤波器属于非线性空域滤波器&#xff0c;常见的统计排序滤波器有中值滤波器、最大值滤波器、最小值滤波器。 中值滤波器、最大值滤波器和最小值滤波器是三种常见的统计排序滤波器&#xff0c;它们在图像处理和信号处理中发挥着重要…

WUP-MY-LABEL-PRINTER 旻佑热敏打印机标签打印uniapp插件使用说明

插件地址&#xff1a;WUP-MY-LABEL-PRINTER 旻佑热敏打印机标签打印安卓库 简介 本插件主要用于旻佑热敏打印机打印标签&#xff0c;不支持票据打印。适用于旻佑的各型支持标签打印的热敏打印机。本插件开发时使用的打印机型号为MY-805嵌入式面板打印机&#xff0c;其他型号请…

Cisco交换机SSH使用RSA公钥免密登录(IOS与Nexus,服务器以RHEL8为例)

目录 需求实验步骤0. 实验环境1. Linux2. CiscoIOS基础设置保存密钥登陆测试 3. CiscoNexus基础配置保存密钥登陆测试 需求 在实际工作中&#xff0c;常会遇到自动化的需求&#xff0c;那么在自动采集、配置等对网络设备的自动化需求中&#xff0c;不可避免的会遇到需要登录-&…

tensorboard显示一片空白解决方案

OK艾瑞巴蒂 不知道看这个视频几个小土堆过来的&#xff0c;今天已经发了一篇博文探讨快速下载tensorboard了 下面用的时候叒出现问题了 from torch.utils.tensorboard import SummaryWriter writer SummaryWriter("logs")# writer.add_image() # Yx for i in range…

实时手势识别(1)- 基于手部检测+手部分类

目录 前言 1.实现效果 2.非端到端实现的原因 3.分类网络与数据准备 4.训练结果 5.测试结果 6.训练代码 7.训练日志 7.1ResNet18训练日志 7.2ShuffleNet_v2训练日志 前言 利用YOLOv8获取手部区域&#xff0c;然后对手部区域进行分类&#xff0c;实现手势识别。 本文使…

powershell 终端 执行 pnpm -v报错

1.问题描述&#xff1a; 明明全局已安装 pnpm &#xff0c;但在vscode默认终端 powershell 执行 pnpm -v 却报错&#xff1a; 2.问题根因&#xff1a; 原因是 PowerShell 执行策略问题。 3.解决方案&#xff1a; 以管理员身份运行 PowerShell 查看 PowerShell 的执行策略…

初探systemⅡ·慢思考

本篇笔记记录于 May 30th, 2023 oai联合创始人Andrej曾在微软大会上的报告中有提到LLMs对于人类快、慢思考两种认知推理模式的当下探索与未来展望&#xff0c;这里曾经得到的启示是&#xff1a;未来在模型的训练与推理侧是否会出现一种新的长链认知范式&#xff1f;如在RLHF过程…

秋招突击——8/13——并查集——复习{有塔一面}——新作{亲戚关系}

文章目录 引言复习并查集模板复习——有塔一面 新作亲戚关系 总结 引言 这两天准备腾讯的第二面&#xff0c;看了很多人的面经&#xff0c;发现考并查集的题目蛮多的&#xff0c;这里整理学习一下&#xff01; 复习 并查集模板 这里学习了B站的麦克老师的课程&#xff0c;对…

MySQL与SQLserver

与MySQL的差别 SQL Server和MySQL都是广泛使用的关系数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它们的SQL语法有很多相似之处&#xff0c;但也存在一些差异。以下是一些主要的语法区别&#xff1a; 1. 数据库和表的创建 SQL Server CREATE DATABASE databas…

Ma Spaghet!

目录 一、题目 二、思路 三、payload 3.1 方案一 3.2 方案二(官方) 四、思考与总结 一、题目 <!-- Challenge --> <h2 id"spaghet"></h2> <script>spaghet.innerHTML (new URL(location).searchParams.get(somebody) || "Somebody…

产品经理-​你做产品经理有什么优势?(39)

你做产品经理有什么优势&#xff1f; 这是一个关于自我认知、个人优势的问题 人贵有自知之明&#xff0c;求职者应该对自己的优缺点有一个客观、深入的认识 大公司往往更加看重你的基本素质&#xff08;逻辑分析、学习能力、潜力等&#xff09; 因为大公司有相对成熟的培养体系…

OpenDDS的Rtps_Udp传输协议可靠性QoS收发基本流程

OpenDDS中,实现了Rtps_Udp传输协议(非纯udp)的可靠性传输。传输的线程包括: 1)发送方线程主要线程和定时器 《1》应用线程 《2》网络异步发送线程 《3》Heartbeat定时器 《4》Nak_response定时器 2)接收方主要线程和定时器 《1》网络异步接收线程 《2》heartbeat_respons…

Java | Leetcode Java题解之第344题反转字符串

题目&#xff1a; 题解&#xff1a; class Solution {public void reverseString(char[] s) {int n s.length;for (int left 0, right n - 1; left < right; left, --right) {char tmp s[left];s[left] s[right];s[right] tmp;}} }

【C++】智能指针详解

一、从new和delete谈起 在C中&#xff0c;可以使用new和delete关键字进行对象的创建和销毁&#xff0c;new一个对象实际上是在堆上分配内存&#xff0c;而new出来的对象也要自己用delete释放&#xff0c;从而回收内存&#xff0c;否则会造成内存的泄露。由程序员自己new来分配…

[手机Linux PostmarketOS]五, docker安装和使用

docker容器 一&#xff0c;docker安装和配置 安装 docker 和 docker-compose&#xff1a; sudo apk add docker docker-cli-compose #安装docker sudo service docker start #启动docker服务 sudo rc-update add docker default #设置docker为自启动可选关…

【PostgreSQL003】PostgreSQL数据表空间膨胀,磁盘爆满,应用宕机(经验总结,已更新)

1.一直以来想写下基于PostgreSQL的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下PostgreSQL数据库相关知识体系。空间膨胀&#xff08;主键、外键、…

汇编语言:call、call far ptr、call word ptr、call dword ptr、call 寄存器

引言 call指令是转移指令&#xff0c;CPU执行call指令&#xff0c;进行两步操作&#xff1a; &#xff08;1&#xff09;将当前IP或当前CS和IP压入栈中 &#xff08;2&#xff09;转移。call指令不能短转移&#xff0c;除此之外&#xff0c;call指令转移的方法跟jmp指令的原理…