Hadoop集群搭建(hdfs、yarn)

news2025/3/29 13:50:43

        Hadoop 是 Apache 软件基金会旗下的一个开源项目,是用于处理大数据的分布式系统基础架构,被广泛应用于大数据存储、处理和分析等场景。

一、核心组件

1、Hadoop 分布式文件系统(HDFS)

        具有高容错性,能在低成本硬件上运行,可将大规模数据分布存储在多个节点上,支持数据的可靠读写,适合处理大文件和流式数据访问。

2、YARN(Yet Another Resource Negotiator)

        负责集群资源的管理和调度,将资源分配给不同的应用程序,使多个应用程序能在同一集群中共享资源并高效运行。

3、MapReduce

        一种编程模型和计算框架,用于大规模数据集的并行处理。它将数据处理过程分为 Map(映射)和 Reduce(归约)两个阶段,方便用户将复杂的计算任务分解为可在多个节点上并行执行的子任务。

二、特点

1、高可靠性

        通过数据冗余和自动故障转移机制,确保数据的安全性和系统的稳定性,即使部分节点出现故障,也能保证数据不丢失和任务继续执行。

2、高可扩展性

        能够轻松扩展到大量的节点,以处理不断增长的数据量和计算需求,可根据业务发展灵活添加硬件资源。

3、高效性

        利用数据本地性原理,将计算任务分配到存储数据的节点上执行,减少数据传输开销,提高计算效率,同时支持大规模数据的并行处理,大大缩短了数据处理时间。

4、低成本

        基于普通的商用硬件构建集群,降低了硬件成本,且开源的特性使其无需支付软件授权费用,降低了整体的大数据处理成本。

三、Hadoop集群搭建(HDFS、YARN) 

1、服务器免密操作

三台服务器均需要操作:

ssh-keygen 生成秘钥,
然后ssh-copy root@ip

ssh-copy root@192.168.50.xx
ssh-copy root@192.168.50.xx
ssh-copy root@192.168.50.xx

2、下载hadoop的安装包

可以自行前往官网进行下载:hadoop下载链接

我下载到/opt/module目录下,并通过tar -xvf命令进行解压,解压完毕后如下所示:

drwxr-xr-x  4 root root      4096 Mar 24 03:27 ./
drwxr-xr-x  5 root root      4096 Mar 20 13:10 ../
drwxr-xr-x 10 root root      4096 Mar 21 03:21 flink-1.17.0/
drwxr-xr-x 10 root root      4096 Mar  4  2024 hadoop-3.4.0/
-rw-r--r--  1 root root 965537117 Mar 24 03:25 hadoop-3.4.0.tar.gz
root@node-1:/opt/module# 

 3、配置环境变量

执行命令:vim /etc/profile,打开环境变量进行配置:

#hadoop3.4.0
export HADOOP_HOME=/opt/module/hadoop-3.4.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin


#flink需要
export HADOOP_CLASSPATH=`hadoop classpath`
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

通过:wq进行保存并退出,执行命令source /etc/profile加载环境变量。

通过 dadoop version 查看dadoop信息:

root@node-1:/opt/module/hadoop-3.4.0/etc/hadoop# source /etc/profile
root@node-1:/opt/module/hadoop-3.4.0/etc/hadoop# hadoop version
Hadoop 3.4.0
Source code repository git@github.com:apache/hadoop.git -r bd8b77f398f626bb7791783192ee7a5dfaeec760
Compiled by root on 2024-03-04T06:35Z
Compiled on platform linux-x86_64
Compiled with protoc 3.21.12
From source with checksum f7fe694a3613358b38812ae9c31114e
This command was run using /opt/module/hadoop-3.4.0/share/hadoop/common/hadoop-common-3.4.0.jar
root@node-1:/opt/module/hadoop-3.4.0/etc/hadoop# 

4、修改配置文件(三台服务器均需配置)

(1)修改Hadoop配置文件

cd /data/hadoop-3.4.0/etc/hadoop,进去hadoop目录下

vi workers 加入下面配置文件

node-1
node-2
node-3

vim hadoop-env.sh 加入下面配置

export JAVA_HOME=/opt/jdk1.8.0_211
export HADOOP_HOME=/opt/module/hadoop-3.4.0
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_LOG_DIR=${HADOOP_HOME}/logs


export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

vim core-site.xml 加入下面配置

	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://192.168.50.55:8020</value>
	</property>
	<property>
		<name>io.file.buffer.size</name>
		<value>131072</value>
	</property>
	<property>
		<name>hadoop.http.staticuser.user</name>
		<value>root</value>
	</property>

(2)hdfs配置文件

vim hdfs-site.xml 加入下面配置信息

    <property>
	    <name>dfs.datanode.data.dir.perm</name>
	    <value>700</value>
    </property>
    <property>
	    <name>dfs.namenode.name.dir</name>
	    <value>/data/nn</value>
    </property>
    <property>
	    <name>dfs.namenode.hosts</name>
	    <value>node-1,node-2,node-3</value>
    </property>
    <property>
	    <name>dfs.blocksize</name>
	    <value>268435456</value>
    </property>
    <property>
	    <name>dfs.namenode.handler.count</name>
	    <value>100</value>
    </property>
    <property>
	    <name>dfs.datanode.data.dir</name>
	    <value>/data/dn</value>
    </property>

(3)yarn配置文件
vim yarn-site.xml 加入下面配置信息

    <property>
	    <name>yarn.resourcemanager.hostname</name>
	    <value>node-1</value>
    </property>
    <property>
	    <name>yarn.nodemanager.aux-services</name>
	    <value>mapreduce_shuffle</value>
    </property>
    <property>
	    <name>yarn.nodemanager.pmem-check-enabled</name>
            <value>false</value>
    </property>
    <property>
	    <name>yarn.nodemanager.vpmem-check-enabled</name>
	    <value>false</value>
    </property>
    <property>
	    <name>yarn.log-aggregation-enable</name>
	    <value>true</value>
    </property>
    <property>  
	    <name>yarn.log.server.url</name>
	    <value>http://node-1:19888/jobhistory/logs</value>
    </property>
    <property>
	    <name>yarn.log-aggregation.retain-seconds</name>
	    <value>604800</value>
    </property>

(4)MapReduce配置文件

vim mapred-site.xml 加入下面配置信息

    <property>
	    <name>mapreduce.framework.name</name>
	    <value>yarn</value>
    </property>
    <property>
	    <name>mapreduce.jobhistory.address</name>
	    <value>node-1:10020</value>
    </property>
    <property>
	    <name>mapreduce.jobhistory.webapp.address</name>
	    <value>node-1:19888</value>
    </property>

5、文件分发

将配置好的文件分发到其余两台服务器上面

scp -r /opt/module/hadoop-3.4.0/ root@node-1:/opt/module
scp -r /opt/module/hadoop-3.4.0/ root@node-2:/opt/module

分发系统环境变量文件

scp /etc/profile root@node-1:/etc
scp /etc/profile root@node-2:/etc

在node-2、node-3中使用source /etc/profile命令初始化系统环境变量

创建hdfs存储文件路径

mkdir /data/nn
mkdir /data/dn

6、启动集群

(1)初始化

#格式化NameNode
hadoop namenode -format

#启动hdfs集群
start-dfs.sh
#启动yarn集群
start-yarn.sh

 

7、访问web页面 

访问hdfs可视化:http://192.168.50.55:9870/ 

访问yarn:http://192.168.50.55:8088/

 

8、关闭hdfs集群和yarn集群 

#一键关闭hdfs集群
stop-dfs.sh
#一键关闭yarn集群
stop-yarn.sh

 至此,hadoop的搭建全部完成,后续继续Flink的学习。

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

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

相关文章

Keepalived 实现高可用方案

Keepalived简介 ‌Keepalived‌ 是一个基于 ‌VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;协议‌的高可用性解决方案&#xff0c;主要用于实现‌服务故障自动切换&#xff08;Failover&#xff09;和负载均衡‌。通过管理虚拟 IP&#xff08;VIP&#xf…

医学图像分割数据集肺分割数据labelme格式6299张2类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图像分辨率&#xff1a;1024x1024 图片数量(jpg文件个数)&#xff1a;6299 标注数量(json文件个数)&#xff1a;6299 标注类别数&#xff1a;2 标注类别名称:["leftl…

C语言复习笔记--函数递归

在学习了函数之后,函数递归是我们必然会接触到的课题,下面就让我们看下函数递归相关的知识. 递归是什么&#xff1f; 递归这个词看着就不那么好理解,那么什么是递归呢?递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数自己调用自己. 写⼀个史上最简单的C语⾔递归代码: …

husky的简介以及如果想要放飞自我的解决方案

husky 是一个 Git Hooks 管理工具&#xff0c;它的主要作用是 在 Git 提交&#xff08;commit&#xff09;、推送&#xff08;push&#xff09;等操作时执行自定义脚本&#xff0c;比如代码检查&#xff08;Lint&#xff09;、单元测试&#xff08;Test&#xff09;、格式化代码…

侯捷 C++ 课程学习笔记:现代 C++ 中的移动语义与完美转发深度解析

1. 前言&#xff1a;为什么我们需要移动语义&#xff1f; 在侯捷老师的《C11/14/17 新特性详解》课程中&#xff0c;移动语义&#xff08;Move Semantics&#xff09;被称作"C近十年来最重要的革新"。传统C中饱受诟病的深拷贝性能问题&#xff0c;在现代C中通过移动语…

23种设计模式-结构型模式-适配器

文章目录 简介场景问题解决方案建立中间转换层关键收益 总结 简介 使接口不兼容的类实现协同工作&#xff0c;通过引入中间层实现客户端接口和服务端接口的兼容。典型场景比如整合第三方类库或遗留系统时保持代码兼容。 场景 假设你正在开发一个股票监控程序。这个程序会下…

美亚科技业绩波动明显:现金流为负,四起未决诉讼涉金额1700万

《港湾商业观察》施子夫 近期&#xff0c;广东美亚旅游科技集团股份有限公司&#xff08;以下简称&#xff0c;美亚科技&#xff09;披露第二轮审核问询函的回复。从两轮问询函监管层提出的问题来看&#xff0c;有关美亚科技业绩增长的合理性、募投项目的必要性及合理性、经营…

PyTorch 深度学习实战(21):元强化学习与 MAML 算法

一、元强化学习原理 1. 元学习核心思想 元强化学习&#xff08;Meta-RL&#xff09;旨在让智能体快速适应新任务&#xff0c;其核心是通过任务分布学习共享知识。与传统强化学习的区别在于&#xff1a; 对比维度传统强化学习元强化学习目标解决单一任务快速适应任务分布中的…

23中设计模式-迭代器(Iterator)设计模式

迭代器设计模式 &#x1f6a9;什么是迭代器设计模式&#xff1f;&#x1f6a9;迭代器设计模式的特点&#x1f6a9;迭代器设计模式的结构&#x1f6a9;迭代器设计模式的优缺点&#x1f6a9;迭代器设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是…

Word中公式自动标号带章节编号

&#xff08;1&#xff09;插入一行三列的表格&#xff0c;设置宽度分别为0.5&#xff0c;13.39和1.5&#xff0c;设置纵向居中&#xff0c;中间列居中对齐&#xff0c;最右侧列靠右对齐&#xff0c;设置段落如下 &#xff08;2&#xff09;插入域代码 【Word】利用域代码快速实…

【Spring AI】基于专属知识库的RAG智能问答小程序开发——功能优化:用户鉴权主体功能开发

系列文章目录 【Spring AI】基于专属知识库的RAG智能问答小程序开发——完整项目&#xff08;含完整前端后端代码&#xff09;【Spring AI】基于专属知识库的RAG智能问答小程序开发——代码逐行精讲&#xff1a;核心ChatClient对象相关构造函数【Spring AI】基于专属知识库的R…

[7-01-03].SpringBoot3集成MinIo

MinIO学习大纲 一、Spingboot整合MinIo 第1步&#xff1a;搭建SpringBoot项目&#xff1a; 第2步&#xff1a;引入minio依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi&q…

ISIS-3 LSDB链路状态数据库同步

上一章我们介绍了ISIS的邻居建立关系以及ISIS的路由器角色有哪些,在不同的网络类型当中建立邻居关系有什么不同,并且以实验案例抓包的形式给大家进一步介绍了建立的过程。 这一章我们来介绍ISIS中是如何实现链路状态数据库同步的,与OSPF的链路状态同步有什么不同,在不同网络类…

快速入手-基于Django的Form和ModelForm操作(七)

1、Form组件 2、ModelForm操作 3、给前端表单里在django里添加class相关属性值 4、前端 5、后端form 新增数据处理 6、更新数据处理

Springboot集成Debezium监听postgresql变更

1.创建springboot项目引入pom <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>io.debezium</groupI…

Ubuntu22.04搭建freeradius操作说明

Ubuntu22.04搭建freeradius操作说明 更新依赖库 sudo apt update sudo apt install build-essential sudo apt install libtalloc-dev sudo apt install libssl-dev 按照freeradius sudo apt install freeradius 修改freeradius配置 文件路径如下 /etc/freeradius/3.…

【重装系统】全流程记录,在 MacOS 的电脑上烧录 Ubuntu 启动盘

背景 Ubuntu 无法联网&#xff0c;排查下来应该是网卡驱动的问题&#xff0c;安装驱动的过程中又缺失各种包需要网络&#xff0c;陷入死循环。 全流程以及相关资料 整体流程参考&#xff1a;【史上最全】重装ubuntu20.04系统基本环境配置 烧录启动盘启动盘插入需要重装的服务…

去中心化金融

什么是去中心化金融 去中心化金融&#xff08;Decentralized Finance&#xff0c;简称 DeFi&#xff09;是一种基于区块链技术构建的金融系统&#xff0c;旨在通过去除传统金融机构&#xff08;如银行、证券公司等&#xff09;作为中介&#xff0c;提供各种金融服务。这些服务…

centos 7 部署FTP 服务用shell 脚本搭建

#!/bin/bash# 检查是否以root身份运行脚本 if [ "$EUID" -ne 0 ]; thenecho "请以root身份运行此脚本。"exit 1 fi# 安装vsftpd yum install -y vsftpd# 启动vsftpd服务并设置开机自启 systemctl start vsftpd systemctl enable vsftpd# 配置防火墙以允许F…

VMware启动虚拟机报“另一个程序已锁定文件的一部分,进程无法访问”

解决方案&#xff1a; 1&#xff09;定位到虚拟机磁盘目录&#xff0c;我这里是“E\VM_Disk\CactiEZ\”这个目录&#xff0c;每个人目录不一样&#xff0c;详见上图报错位置 2&#xff09;在这个目录中找到后缀名以“.lck”结尾的目录&#xff0c;将所有以 .lck 结尾的目录删…