centos7安装 hadoop集群

news2025/1/21 14:12:10

目录

  • 准备
  • 集群搭建步骤
  • 1. 环境准备
      • 三台服务器IP
      • 关闭三台服务器的防火墙
      • 修改三台服务器的hostname文件
      • 修改三台服务器的hosts映射
      • 配置三台服务器之间的免密登录
      • 三台时间同步设置
  • 2. hadoop安装资源划分
  • 3. 开始搭建hadoop集群
    • 192.168.83.144 即 hadoop1上的修改
      • 解压安装包
      • 添加环境变量
      • 验证hadoop环境配置
      • 修改hadoop配置
      • core-site.xml
      • hdfs-site.xml
      • hadoop-env.sh
      • works
    • 192.168.83.145 和192.168.83.146 即hadoop2和hadoop3的配置
      • 拷贝安装
    • 环境变量配置
    • 格式化集群
    • 启动集群
      • 其他启动停止的操作命令
  • 4. 物理机浏览器访问hadoop系统界面

准备

  1. 虚拟机准备三台centos7的服务器。保证三台服务器之间网络互通。
  2. jdk1.8 安装完成,并在三台centos7的服务器配置好环境变量。
  3. hadoop-3.4.0安装包

集群搭建步骤

1. 环境准备

三台服务器IP

三台服务器IP如下

IP地址
192.168.83.144
192.168.83.145
192.168.83.146

关闭三台服务器的防火墙

使用一下命令关闭三台服务器的防火墙。

# 关闭防火墙。暂时关闭。重启服务器后系统自动开启防火墙
systemctl stop firewalld
# 禁用防火墙,服务器重启后防火墙是关闭状态
systemctl disable firewalld

修改三台服务器的hostname文件

使用以下命令编辑hostName文件

vi /etc/hostname

三台服务器修改的名称如下表

服务器修改后的hostname
192.168.83.144hadoop1
192.168.83.145hadoop2
192.168.83.146hadoop3

修改三台服务器的hosts映射

使用以下命令编辑hosts文件

vi /etc/hosts

在三台服务器的hosts文件新增以下配置:

192.168.83.144  hadoop1
192.168.83.145  hadoop2
192.168.83.146  hadoop3

配置三台服务器之间的免密登录

在每个服务器中使用以下命令生成RSA公钥和私钥

ssh-keygen

回车三次之后得到密钥。密钥存放地址在:/root/.ssh
使用以下命令将密钥分发给其他服务器达到免密登录的效果.
注意,第一次分发密钥需要输入密码

# 将密钥分给hadoop1
ssh-copy-id hadoop1

# 将密钥分给hadoop2
ssh-copy-id hadoop2

# 将密钥分给hadoop3
ssh-copy-id hadoop3

当三台服务器都分发完密钥之后,服务器之间即可进行免密登录

三台时间同步设置

为了保证三台服务器的时间一致,三台服务器需要同步网络时间。使用以下命令同步时间

ntpdate pool.ntp.org 

也可以使用同步时间脚本。详情参考:centerOs7安装相关的应用脚本

2. hadoop安装资源划分

hadoop集群中主要有NameNode、DataNode、SecondaryNode 进程。
NameNode和SecondaryNode不要放在同一个服务器上。
DataNode在每个服务器上
具体如下表:

服务器安装资源
192.168.83.144NameNode、DataNode
192.168.83.145SecondaryNode 、DataNode
192.168.83.146DataNode

3. 开始搭建hadoop集群

192.168.83.144 即 hadoop1上的修改

解压安装包

将hadoop-3.4.0安装压缩包上传到服务器的 /usr/local/
使用以下命令解压hadoop-3.4.0安装压缩包

# 格式:tar -zxvf  压缩包路径 -C  解压到的目标路径
tar -zxvf /usr/local/hadoop-3.4.0.tar.gz -C /usr/local/

解压完成后在 /usr/local/ 下会有一个名为 hadoop-3.4.0 的文件夹,此文件夹为hadoop的安装路径。
hadoop-3.4.0 文件夹目录结构说明如下:

bin: 存放命令执行文件
etc:存放配置文件
include:存放工具脚本
lib:存放资源库
sbin:存放管理集群的命令
share:存放共享资源、开发工具、官方案例
...

添加环境变量

使用以下命令打开编辑环境变量文件

vim /etc/profile

在文件中加入以下内容:

export HADOOP_HOME=/usr/local/hadoop-3.4.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

注意:如果PATH的值中以 冒号: 分隔每个配置。hadoop的配置需要添加 binsbin 路径

修改完成后使用以下命令重新加载环境变量

source /etc/profile

验证hadoop环境配置

使用以下命令验证hadoop的环境配置是否可用

hadoop version

如果打印出hadoop的版本号,则说明配置环境成功。

修改hadoop配置

进入 /usr/local/hadoop-3.4.0/etc/ 下。对以下文件进行修改

core-site.xml

将原来core-site.xml中的configuration标签替换为以下内容

<configuration>
    <!-- 
    	设置NameNode节点 ,此处按照《hadoop安装资源划分》部分配置设置hadoop1为NameNode节点
    	注意: 
    	hadoop1.x时代默认端口9000 
    	hadoop2.x时代默认端口8020 
    	hadoop3.x时代默认端口 9820。此处的版本为3.4.0所以使用的是9820的默认端口 
   	-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop1:9820</value>
    </property>
    
    <!-- 
    	hdfs的基础路径,此路径的tmp 文件夹不需要手动创建,Hadoop
    	会自动创建tmp文件夹
   	-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop-3.3.1/tmp</value>
    </property>
</configuration>

hdfs-site.xml

将原来hdfs-site.xml中的configuration标签替换为以下内容

<configuration>
    <!-- hadoop块的副本数量,一般情况下建议等于集群机器节点数量。 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    
    <!-- 
    	设置SecondaryNameNode 节点 .
    	此处按照《hadoop安装资源划分》部分配置设置hadoop2为SecondaryNameNode 节点
    	SecondaryNameNode http访问主机名和端口号。
    -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop2:9868</value>
    </property>
    
    <!-- NameNode守护进程的http地址:主机名和端口号。-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop1:9870</value>
    </property>
</configuration>

hadoop-env.sh

在 hadoop-env.sh 中加入以下配置

# 此处根据自己的jdk安装路径填写
export JAVA_HOME=/usr/local/jdk8

# Hadoop3中,需要添加如下配置,设置启动集群角色的用户
# NameNode 的启动用户
export HDFS_NAMENODE_USER=root

# DataNode 的启动用户
export HDFS_DATANODE_USER=root

# SecondaryNameNode  的启动用户
export HDFS_SECONDARYNAMENODE_USER=root

works

配置服务器节点.在works下加入以下配置。

hadoop1
hadoop2
hadoop3

到此hadoop1 的配置完成

192.168.83.145 和192.168.83.146 即hadoop2和hadoop3的配置

拷贝安装

由于hadoop2和hadoop3的配置也需要和hadoop1的配置一致,所以只需要将hadoop1中的/usr/local/hadoop3.4.0文件夹拷贝一份到hadoop2和hadoop3机器中即可。
在hadoop1服务器中使用以下命令将hadoop1中已经配置好的hadoop发送到hadoop2和hadoop3.

# 拷贝到hadoop2服务器的/usr/local/下
scp -r /usr/local/hadoop3.4.0 hadoop2:/usr/local/

# 拷贝到hadoop3服务器的/usr/local/下
scp -r /usr/local/hadoop3.4.0 hadoop3:/usr/local/

环境变量配置

hadoop2和hadoop3两台服务器的环境变量配置也要和hadoop1中的配置一致。参考上面的《 添加环境变量》步骤。
当然也可以使用拷贝的方式将hadoop1中已经配置好的环境变量文件拷贝到hadoop2和hadoop3。
最后都需要使用命令source /etc/profile重新加载环境变量配置

格式化集群

使用以下命令格式化集群。初始化一个新的hadoop集群环境
在hadoop1中使用以下命令格式化一个新的hadoop集群环境

hdfs namenode -format

执行成功之后,在hadoop1的安装路径 /usr/local/hadoop3.4.0/ 下会出现 tmp 文件夹,说明格式化成功。
注意,此时hadoop2和hadoop3还未生成tmp ,hadoop2和hadoop3需要集群启动之后才会自动生成此文件夹。

启动集群

在hadoop1中使用以下命令启动hadoop集群.

start-dfs.sh

启动完成之后hadoop1、hadoop2、hadoop3 中都会生成对应的tmp文件夹 。且分别在hadoop1、hadoop2、hadoop3 中使用 jps 命令都能查询到hadoop的进程信息。
如下三个图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其他启动停止的操作命令

# 启动HDFS所有进程(NameNode、SecondaryNameNode、DataNode)
start-dfs.sh	

# 停止HDFS所有进程(NameNode、SecondaryNameNode、DataNode)		
stop-dfs.sh				

# hdfs --daemon start 单独启动一个进程
# 只开启NameNode
hdfs --daemon start NameNode	
# 只开启SecondaryNameNode		
hdfs --daemon start SecondaryNameNode	
# 只开启DataNode	
hdfs --daemon start DataNode				

# hdfs --daemon stop 单独停止一个进程
# 只停止NameNode
hdfs --daemon stop NameNode
# 只停止SecondaryNameNode
hdfs --daemon stop SecondaryNameNode	
# 只停止DataNode
hdfs --daemon stop DataNode

# hdfs --workers --daemon start 启动所有的指定进程
# 开启所有节点上的DataNode
hdfs --workers --daemon start DataNode		

# hdfs --workers --daemon stop 启动所有的指定进程
# 停止所有节点上的DataNode
hdfs --workers --daemon stop DataNode		

4. 物理机浏览器访问hadoop系统界面

集群启动完成之后,在物理机的浏览器上访问以下地址:

http://192.168.83.144:9870

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

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

相关文章

Mac硬件设备系统环境的升级/更新 macOS

Mac硬件设备上进行系统环境的升级/更新macOS 1.大版本(升级)判断(比如&#xff1a;我买的这台电脑设备最高支持Monterey) 点击进入对应的大版本描述说明页查看相关的兼容性描述&#xff0c;根据描述确定当前的电脑设备最高可采用哪个大版本系统(Sonoma/Ventura/Monterey/Big Su…

线性代数|机器学习-P3乘法和因式分解矩阵

文章目录 1. 矩阵分解2. S Q Λ Q T SQ\Lambda Q^T SQΛQT3. A U Σ V T AU\Sigma V^T AUΣVT4. A LU 分解5. 矩阵的四个子空间 1. 矩阵分解 目前我们有很多重要的矩阵分解&#xff0c;每个分解对应于多个前提条件&#xff0c;分解方法&#xff0c;分解后的形状会中如下&…

Mybatis不明白?就这一篇带你轻松入门

引言&#xff1a;烧脑的我一直在烧脑的寻找资料&#xff0c;寻找网课&#xff0c;历经磨难让一个在大一期间只会算法的我逐渐走入Java前后端开发&#xff0c;也是一直在自学的道路上磕磕碰碰&#xff0c;也希望这篇文章对于也是同处于自学的你有所帮助&#xff0c;也希望你继续…

Science项目文章 | 中国农科院作科所研究团队解析“复粒稻”多粒簇生的机制

2024年3月8日&#xff0c;由中国农业科学院作物科学研究所童红宁研究员领衔的研究团队在Science发表题为“Enhancing rice panicle branching and grain yield through tissue-specific brassinosteroid inhibition”的研究论文。该研究报道了复粒稻多粒簇形成的机制&#xff0…

惠海H6212L 48V转12V 36V转12V 24V转5V DCDC降压恒压模块供电芯片方案

内置60V高压MOS&#xff1a;H6212L内置了60V耐压的MOS&#xff0c;这使得它能够承受48V的输入电压&#xff0c;从而适应更多的电源环境。 宽电压输入范围&#xff1a;支持8V至48V的宽压输入范围&#xff0c;满足了不同应用场景的电源需求。 输出电压可调&#xff1a;支持输出…

jeecg dictText字典值

前端列表的字典值回显&#xff0c;配置了数据字典后&#xff0c;在本地测试可以回显中文的数据&#xff0c; 但在线上服务器不能正常回显出来&#xff1b; 原因是在前端拿到records的列表值时可以拿到dictText的字典&#xff0c;但是线上服务器没有dictText的值&#xff1b; …

智慧校园教学模式的崛起:优化学习体验

在当今数字化时代&#xff0c;智慧校园教学模式正在成为教育界的热门话题。随着科技的不断发展&#xff0c;传统的教学方式已经无法满足现代学生的需求。智慧校园教学模式以其灵活性、互动性和个性化的特点&#xff0c;正逐渐改变着教育的面貌。 首先&#xff0c;智慧校园教学模…

Java中的接口与抽象类:区别与联系

Java中的接口与抽象类&#xff1a;区别与联系 在Java中&#xff0c;interface&#xff08;接口&#xff09;和abstract class&#xff08;抽象类&#xff09;是两种重要的抽象类型&#xff0c;用于定义对象的抽象行为和结构。虽然Java 8之后接口引入了默认方法和静态方法&…

MYSQL数据库客户端常规指令使用

这里新开一章&#xff0c;对MYSQL进行更加底层的系统的一个学习 Mysql常用工具简介 emmmm这里的话就默认大家在linux系统上面都进行了MYSQL的安装了. 在mysql安装完成之后&#xff0c;一般在路径 /usr/bin 下的 我们对该路径进行一个文件的展示 这里是展示出来的辅助工具 …

ucharts自定义添加tooltip悬浮框显示项内容且换行

欢迎点击领取 -《前端开发面试题进阶秘籍》&#xff1a;前端登顶之巅-最全面的前端知识点梳理总结 *分享一个使用比较久的&#x1fa9c; 一、需求描述分析 1、小程序上实现图表的绘制&#xff0c;多条线路&#xff0c;不同颜色&#xff0c;悬浮框对应内容不同数据进行处理 2…

Windows10设置通过.net3.5访问HP DL585G7服务器iLO的控制台

HP DL585G7服务器设备较老了&#xff0c;本文记录如何通过.net3.5访问其iLO管理口的控制台&#xff0c;同类HP服务器可参考进行。 一、调试电脑版本 二、调试电脑安装.net3.5 请参考本人文档&#xff1a;Windows10 22H2用系统安装光盘安装.net3.5 三、Edge启用IE模式 请参考…

Python 全栈体系【四阶】(五十六)

第五章 深度学习 十三、自然语言处理&#xff08;NLP&#xff09; 2. 传统NLP处理技术 2.1 中文分词 中文分词是一项重要的基本任务&#xff0c;分词直接影响对文本语义的理解。分词主要有基于规则的分词、基于统计的分词和混合分词。基于规则的分词主要是通过维护词典&…

FreeRTOS学习笔记-基于stm32(7)任务状态查询与任务时间统计API函数

1、FreeRTOS任务相关API函数 函数描述uxTaskPriorityGet()查询某个任务的优先级vTaskPrioritySet()改变某个任务的任务优先级uxTaskGetSystemState()获取系统中任务状态vTaskGetInfo()获取某个任务信息xTaskGetApplicationTaskTag()获取某个任务的标签(Tag)值xTaskGetCurrentT…

Ktor库的高级用法:代理服务器与JSON处理

在现代网络编程中&#xff0c;Ktor是一个高性能且易于使用的框架&#xff0c;它提供了对异步编程、WebSockets、HTTP客户端和服务器等特性的原生支持。Ktor是使用Kotlin语言编写的&#xff0c;充分利用了Kotlin的协程特性来简化异步编程。本文将深入探讨Ktor库的高级用法&#…

数据误删?别怕!COS防误删和误删恢复攻略请查收

在云存储领域&#xff0c;数据的安全性始终是悬在头顶的达摩克利斯之剑。长期以来&#xff0c;腾讯云对象存储服务&#xff08;COS&#xff09;一直致力于数据安全的探索和实践&#xff0c;以保障数据的安全性和完整性。对象存储COS准备了一份“防误删”和“误删恢复”攻略给大…

Base64前端图片乱码转换

title: Base64码乱转换 date: 2024-06-01 20:30:28 tags: vue3 后端图片前端显示乱码 现象 后端传来一个图片&#xff0c;前端能够接收&#xff0c;但是console.log()后发现图片变成了乱码&#xff0c;但是检查后台又发现能够正常的收到了这张图片。 处理方法 笔者有尝试将…

SQL注入之updatexml报错注入(函数解释)

先解释一下updatexml参数的用法 updatexml():更新xml文档的函数 语法&#xff1a;updatexml(目标xml文档&#xff0c;xml路径&#xff0c;更新的内容) 第二个参数 xml路径 是可操作的地方&#xff0c;xml文档中路径是用 /xxx/xxx/xxx/…这种格式&#xff0c;如果我们写入其他…

OceanBase 内存研究(OceanBase 3.2.4.5)

内存结构 从官网的结构图可以看出&#xff0c;一台observer可使用的总内存(memory_limit)包括 系统内存(system_memory) 和 租户内存(sys租户与普通租户) 系统内存 系统内存system_memory 属于 observer 的内部内存&#xff0c;允许其它租户共享使用该内存资源 (root10.0.0.…

Java集合简略记录

一、集合体系结构 单列集合&#xff1a;Collection 双列集合&#xff1a;Map 二、单列集合 List系列集合&#xff1a;添加的元素是有序、可重复、有索引 有序指的是存和取的顺序是一致的&#xff0c;和之前排序的从小到大是没有任何关系的 Set系列集合&#xff1a;添加的元素是…

RandLA-Net 训练自定义数据集

https://arxiv.org/abs/1911.11236 搭建训练环境 git clone https://github.com/QingyongHu/RandLA-Net.git搭建 python 环境 , 这里我用的 3.9conda create -n randlanet python3.9 source activate randlanet pip install tensorflow2.15.0 -i https://pypi.tuna.tsinghua.e…