部署HDFS集群(完全分布式模式、hadoop用户控制集群、hadoop-3.3.4+安装包)

目录

前置

一、上传&解压

(一 )上传

(二)解压

二、修改配置文件

(一)配置workers文件

(二)配置hadoop-env.sh文件

(三)配置core-site.xml文件

(四)配置hdfs-site.xml文件

三、分发到hp2、hp3, 并设置环境变量

(一)准备数据目录   

(二)配置环境变量

四、创建数据目录,并修改文件权限归属hadoop账户

(一)授权为Hadoop用户

(二)格式化整个文件系统

五、查看HDFS WEBUI

六、常见问题


hadoop-3.3.4.tar.gz提取:

链接:https://pan.baidu.com/s/18ILFiIBei8BqUg31MWEGAQ 
提取码:ay17

前置

三台虚拟机硬件配置如下:

节点

CPU

内存

hp1

1核心

4GB

hp2

1核心

2GB

hp3

1核心

2GB

Hadoop HDFS的角色包含:

NameNode:主节点管理者

DataNode:从节点工作者

SecondaryNameNode:主节点辅助

节点

服务

hp1

NameNode、DataNode、SecondaryNameNode

hp2

DataNode

hp3

DataNode

这样的话我们这个集群就是有一个主节点,带领了三个从节点,也就是一个NameNode带领了三个DataNode去工作的一个hdfs集群。此外还有一个SecondaryNameNode的角色也存在。

配置集群之前请确认已经完成前置准备中的服务器创建、固定IP、防火墙关闭、Hadoop用户创建、SSH免密、JDK部署等部署。(没配好的可以参考前面的博客)

一、上传&解压

(一 )上传

1.上传hadoop安装包到hp1节点中

(二)解压

1.解压缩安装包到/export/server/中

tar -zxvf hadoop-3.3.4.tar.gz -C /export/server/

2.构建软链接

先进入/export/server/目录下

构建软链接

ln -s /export/server/hadoop-3.3.4 hadoop

可以去看一下hadoop里面的文件

各个文件夹含义如下

bin , 存放Hadoop的各类程序(命令)

etc , 存放Hadoop的配置文件

include , C语言的一些头文件

lib , 存放Linux系统的动态链接库(.so文件)

libexec , 存放配置Hadoop系统的脚本文件(.sh和.cmd)

licenses-binary , 存放许可证文件

sbin , 管理员程序(super bin)

share , 存放二进制源码(java jar包)

二、修改配置文件

配置HDFS集群,我们主要涉及到如下文件的修改:

workers

配置从节点(DataNode)有哪些

hadoop-env.sh

配置Hadoop的相关环境变量

core-site.xml

Hadoop核心配置文件

hdfs-site.xml

HDFS核心配置文件

这些文件均存在于 $HADOOP_HOME/etc/hadoop文件夹中

Ps: $HADOOP_HOME是后续我们要设置的环境变量,其指代Hadoop安装文件夹即 /export/server/hadoop

(一)配置workers文件

1.进入配置文件目录

cd etc/hadoop   完整路径:cd /export/server/hadoop/etc/hadoop/

编辑workers文件

vim workers

把原本的内容删掉,

然后填入以下内容

填入的hp1、hp2、hp3表明集群记录了三个从节点

(二)配置hadoop-env.sh文件

vim hadoop-env.sh

可以在开头或者结尾加入以下内容

export JAVA_HOME=/export/server/jdk

export HADOOP_HOME=/export/server/hadoop

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export HADOOP_LOG_DIR=$HADOOP_HOME/logs

JAVA_HOME , 指明JDK环境的位置在哪

HADOOP_HOME , 指明Hadoop安装位置

HADOOP_CONF_DIR , 指明Hadoop配置文件目录位置

conf 是configure,配置  dir是文件夹的缩写

HADOOP_LOG_DIR , 指明Hadoop运行日志目录位置

通过记录这些环境变量,来指明上述运行时的重要信息

(三)配置core-site.xml文件

vim core-site.xml

在<configuration></configuration>之间添加如下内容

    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hp1:8020</value>
    </property>

    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>

key: fs.defaultFS

含义:HDFS文件系统的网络通讯路径

值:hdfs://hp1:8020

协议为hdfs://

namenode为hp1

namenode通讯端口为8020

hdfs:hp1:8020为整个HDFS内部的通讯地址,应用协议为hdfs://(Hadoop内置协议)

表明DataNode将和hp1的8020端口通讯,hp1是NameNode所在机器

此配置固定了hp1必须启动NameNode进程

(四)配置hdfs-site.xml文件

在<configuration></configuration>之间添加如下内容

    <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>hp1,hp2,hp3</value>
    </property>

    <property>
        <name>dfs.blocksieze</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>

 

key: dfs.datanode.data.dir.perm

含义:hdfs文件系统,默认创建的文件权限设置

值:700,即rwx------

新建文件默认权限是700

key: dfs.namenode.name.dir

含义:NameNode元数据的存储位置

值:/data/nn,在hp1节点的/data/nn目录下

nn是namenode的缩写

key: dfs.namenode.hosts

含义:NameNode允许哪几个节点的DataNode连接(即允许加入集群)

值:hp1、hp2、hp3,这三台服务器被授权

key: dfs.blocksieze

含义:hdfs默认块大小

值:26843546(256MB)

key: dfs.namenode.handler.count

含义:namenode处理的并发线程数

值:100,以100个并行度处理文件系统的管理任务

key: dfs.datanode.data.dir

含义:从节点DataNode的数据存储目录

值:/data/dn,即数据存放在hp1、hp2、hp3,三台机器的/data/dn内

dn即datanode

三、分发到hp2、hp3, 并设置环境变量

(一)准备数据目录   

<property>
        <name>dfs.namenode.name.dir</name>
        <value>/data/nn</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/data/dn</value>
    </property>

namenode数据存放hp1的/data/nn

datanode数据存放hp1、hp2、hp3的/data/dn

所以应该:

1.在hp1节点:

mkdir -p /data/nn

mkdir /data/dn

hp2hp3节点:

mkdir -p /data/dn

2.分发Hadoop文件夹

目前,已经基本完成Hadoop的配置操作,可以从hp1将hadoop安装文件夹远程复制到hp2、hp3

分发

scp -r hadoop-3.3.4 root@hp2:/export/server/

scp -r hadoop-3.3.4 root@hp3:/export/server/

在hp2为hadoop配置软连接

ln -s /export/server/hadoop-3.3.4 hadoop

在hp3为hadoop配置软连接

ln -s /export/server/hadoop-3.3.4 hadoop

(二)配置环境变量

为了方便我们操作Hadoop,可以将Hadoop的一些脚本、程序配置到PATH中,方便后续使用

在Hadoop文件夹中的bin、sbin两个文件夹内有许多的脚本和程序,现在来配置以下环境变量

vim /etc/profile

export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

内容添加完成之后,source /etc/profile让环境变量生效

在hp2和hp3配置同样的环境变量

四、创建数据目录,并修改文件权限归属hadoop账户

(一)授权为Hadoop用户

Hadoop部署的准备工作基本完成

为了确保安全,hadoop系统不以root用户启动,我们以普通用户hadoop来启动整个Hadoop服务

所以,现在需要对文件权限进行授权

1.以root身份,在hp1、hp2、hp3三台服务器上均执行以下命令

chown -R hadoop:hadoop /data

chown -R hadoop:hadoop /export

(二)格式化整个文件系统

前期准备全部完成,现在对整个文件系统执行初始化

1.确保以hadoop用户执行

先切换用户

su - hadoop

格式化namenode

hadoop namenode -format

可以cd进去看到里面多了一些文件

current里面都是namenode的源数据

2.一键启动hdfs集群

start-dfs.sh

第一次启动的时候会有个警告说logs这个文件不存在,不用管它。这是运行的日志文件夹。

(第一次忘记截图了,所以从别的地方找的图,由于连接工具不一样,所以图形界面有差异)

Jps可以查看当前运行的进程

一键关闭hdfs集群

stop-dfs.sh

如果遇到命令未找到的错误,表面环境变量未配置好,可以以绝对路径执行

/export/server/hadoop/sbin/start-dfs.sh

/export/server/hadoop/sbin/stop-dfs.sh

五、查看HDFS WEBUI

http://hp1:9870 ,即可查看到hdfs文件系统的管理网页。

hdfs在运行的时候,会给我们提供一个管理平台网站页面,它是namenode所在服务器。

9870是namenode所在服务器的端口

往下翻,有汇总信息

在线node就是我们naemnode下面的小弟,

点进去可以看到整个hdfs文件系统的一些基本信息

注意!!一定要hadoop用户去操作集群,以root执行的话所有权就会回归root,后续以hadoop用户启动会出错(没有权限)!

关闭集群后再关闭虚拟机,就可以进行快照的拍摄

每一台都需要进行快照的拍摄

六、常见问题

Permission denied(权限被拒绝)

hadoop安装文件夹或/data文件夹,未授权给hadoop用户,则无权限操作,所有的Permission denied提示,都是权限导致的。

出现command not found

没有配置好环境变量导致的

启动后仅hp1有进程出现

hp2、hp3没反应

检查workers文件有没有正确配置

start-dfs.sh脚本会:

在当前机器启动SecondaryNameNode , 并根据core-site.xml的记录启动NameNode

根据workers文件的记录,启动各个机器的datanode

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

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

相关文章

Fuel tank position

Fuel tank position 汽车油箱位置在哪里&#xff0c;加油的时候就不会听错方向

uni-app的页面中使用uni-map-common的地址解析(地址转坐标)功能,一直报请求云函数出错

想在uni-app的页面中使用uni-map-common的地址解析&#xff08;地址转坐标&#xff09;功能&#xff0c;怎么一直报请求云函数出错。 不看控制台啊,弄错了控制台&#xff0c;就说怎么一直没有打印出消息。 所以开始换高德地图的&#xff0c;昨天申请了两个 一开始用的第二个web…

OpenAI CEO山姆·奥特曼推广新AI企业服务,直面微软竞争|TodayAI

近期&#xff0c;OpenAI的首席执行官山姆奥特曼在全球多地接待了来自《财富》500强公司的数百名高管&#xff0c;展示了公司最新的人工智能服务。在旧金山、纽约和伦敦的会议上&#xff0c;奥特曼及其团队向企业界领袖展示了OpenAI的企业级产品&#xff0c;并进行了与微软产品的…

前端入门:极简登录网页的制作(未使用JavaScript制作互动逻辑)

必备工具&#xff1a;vscode Visual Studio Code - Code Editing. Redefined 目录 前言 准备 HTML源文件的编写&#xff08;构建&#xff09; head部分 body部分 网页背景设置 网页主体构建 CSS源文件的编写&#xff08;设计&#xff09; 结果展示 前言 博主稍稍自…

如何保证消息不丢失?——使用rabbitmq的死信队列!

如何保证消息不丢失?——使用rabbitmq的死信队列&#xff01; 1、什么是死信 在 RabbitMQ 中充当主角的就是消息&#xff0c;在不同场景下&#xff0c;消息会有不同地表现。 死信就是消息在特定场景下的一种表现形式&#xff0c;这些场景包括&#xff1a; 消息被拒绝访问&am…

IDEA中sql语句智能提示设置

选中一句sql语句&#xff0c;点击鼠标右键 指定数据库

【MATLAB源码-第47期】基于matlab的GMSK调制解调仿真,输出误码率曲线,采用相干解调。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 GMSK&#xff08;高斯最小移相键控&#xff09;是数字调制技术的一种。下面是关于GMSK调制解调、应用场景以及其优缺点的详细描述&#xff1a; 1. 调制解调&#xff1a; - 调制&#xff1a;GMSK是一种连续相位调制技术&a…

世界需要和平--中介者模式

1.1 世界需要和平 "你想呀&#xff0c;国与国之间的关系&#xff0c;就类似于不同的对象与对象之间的关系&#xff0c;这就要求对象之间需要知道其他所有对象&#xff0c;尽管将一个系统分割成许多对象通常可以增加其可复用性&#xff0c;但是对象间相互连接的激增又会降低…

迈威通信MaxGate800系列工业边缘计算网关,算力硬核中枢的巅峰之作

随着人们对工业物联网领域的深入了解与实践&#xff0c;越来越多的企业开始寻求将计算业务从云端迁移至网络边缘处理与执行。然而&#xff0c;在实际应用中&#xff0c;开发者面临着诸多挑战。为了解决这些问题&#xff0c;迈威通信MaxGate800系列工业智能网关应运而生。 MaxG…

2024年公共管理、健康与大数据国际学术会议(ICPAHBD 2024)

2024 International Conference on Public Administration, Health and Big Data (ICPAHBD 2024) ●会议简介 2024年公共管理、健康与大数据国际学术会议&#xff08;ICPAHBD 2024&#xff09;即将在宁波盛大召开。本次会议旨在汇聚全球公共管理、健康与大数据领域的专家学者…

【LAMMPS学习】八、基础知识(2.2)类型标签

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

基于ssm的校园短期闲置资源置换平台(java项目+文档+源码)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的校园短期闲置资源置换平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 校园短期闲置资源置换…

大话设计模式——9.单例模式(Singleton Pattern)

简介 确保一个类只有一个实例&#xff0c;并提供全局访问点来获取该实例&#xff0c;是最简单的设计模式。 UML图&#xff1a; 单例模式共有两种创建方式&#xff1a; 饿汉式&#xff08;线程安全&#xff09; 提前创建实例&#xff0c;好处在于该实例全局唯一&#xff0c;不…

C程序的编译

经过预处理后的源文件,退去一切包装,注释被删除,各种预处理命令也基本上被处理掉,剩下的就是原汁原味的C代码了。接下来的第二步,就开始进入编译阶段。编译阶段主要分两步:第一步,编译器调用一系列解析工具,去分析这些C代码,将C源文件编译为汇编文件;第二步,通过汇编…

anaconda创建了虚拟python环境,且安装了pytorch,但是pycharm中import torch运行时报错

报错如下&#xff1a; C:\Users\tashi\.conda\envs\test1\python.exe D:\project\python\transformer\main.py C:\Users\tashi\.conda\envs\test1\lib\site-packages\numpy\__init__.py:127: UserWarning: mkl-service package failed to import, therefore Intel(R) MKL init…

AI预测体彩排3第2弹【2024年4月13日预测--第1套算法开始计算第2次测试】

各位小伙伴&#xff0c;今天实在抱歉&#xff0c;周末回了趟老家&#xff0c;回来比较晚了&#xff0c;数据今天上午跑完后就回老家了&#xff0c;晚上8点多才回来&#xff0c;赶紧把预测结果发出来吧&#xff0c;虽然有点晚了&#xff0c;但是咱们前面说过了&#xff0c;目前的…

将Visio绘图导出PDF文件,使其自适应大小,并去掉导入Latex的边框显示

问题描述 将Visio绘图导成pdf文件&#xff0c;首先在Visio绘图如下&#xff1a; 如果直接导出或者另存为pdf文件&#xff0c;则会发现pdf文件是整个页面大小&#xff0c;而不是图片大小。而且在导入latex等排版工具现实时&#xff0c;会显示边框。 问题解决 1.调整Visio中的页…

vox2vec论文速读

vox2vec: A Framework for Self-supervised Contrastive Learning of Voxel-Level Representations in Medical Images 摘要 本文介绍了 vox2vec——一种体素级表示的自监督学习 &#xff08;SSL&#xff09; 对比方法 vox2vec 表示由特征金字塔网络 &#xff08;FPN&#xf…

Cascader 级联选择器 - 选择器最后一级数据为空

原因&#xff1a;将扁平数据转化为树形数据时&#xff0c;给每个项都添加了 children export const transList2Tree (list, rootPid) > {const result []list.forEach(item > {if (item.pid rootPid) {const children transList2Tree(list, item.id)item.children …

Unity绘制地图

首先在项目/Assets文件夹下创建一个Tiles文件夹 在层级下点击鼠标右键选择2D对象选择瓦片地图创建Tilemap。 选择地图素材 如果素材需要裁剪&#xff0c;在检查器Sprite模式选择多个&#xff0c;点击Sprite Editor,选择切 &#xff0c;选择类型Grid By Cell Count&#xff0c;…