部署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.rhkb.cn/news/308018.html

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

相关文章

JS sort方法踩坑

JavaScript的sort()方法在默认情况下将数组元素视为字符串进行排序&#xff0c;而不是按照数字的大小。因此&#xff0c;对于包含数字的数组&#xff0c;sort()方法会按照字符串的排序规则进行排序。 例如&#xff0c;对于[2, 11]这个数组&#xff0c;按照字符串的排序规则&…

从 iPhone 上的短信中恢复已删除的图片的可靠方法

您可能在浏览消息聊天时不小心删除了一些文本和照片。事实上&#xff0c;如果这些消息对你来说意义重大&#xff0c;那对你来说可能会很麻烦。当发生意外情况时&#xff0c;您可能不想恢复整个聊天&#xff0c;而是恢复其中的附件。 好了&#xff0c;这篇文章主要是讲如何灵活…

Kubernetes学习笔记12

k8s核心概念&#xff1a;控制器&#xff1a; 我们删除Pod是可以直接删除的&#xff0c;如果生产环境中的误操作&#xff0c;Pod同样也会被轻易地被删除掉。 所以&#xff0c;在K8s中引入另外一个概念&#xff1a;Controller&#xff08;控制器&#xff09;的概念&#xff0c;…

AI PC元年,华为的一张航海图、一艘渡轮和一张船票

今天&#xff0c;从学术研究者到产业投资者&#xff0c;无不认为大模型掀起了一场人工智能的完美风暴。 所谓“完美风暴”&#xff0c;指的是一项新技术的各个要素&#xff0c;以新的方式互相影响、彼此加强&#xff0c;组合在一起形成了摧枯拉朽般的力量。 而我们每个人&#…

【C++成长记】C++入门 | 类和对象(上) |面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;C❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 一、面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步…

你的高佣副业不二之选,开始流量卡推广,一文看懂号卡推广

在这个信息化的时代&#xff0c;网络已成为人们生活中不可或缺的一部分。然而&#xff0c;在享受着便捷与高效的同时&#xff0c;我们也必须面对一个现实问题&#xff0c;也就是高昂的流量费用。为了解决这一困扰广大用户的痛点&#xff0c;我们今天带来了一个极具吸引力的机会…

Sonatype Nexus 服务器迁移

因为服务器的升级和调整&#xff0c;有时候会对安装 Sonatype Nexus 的服务器进行迁移到新服务器上。 从技术架构上来说&#xff0c;Sonatype Nexus 我们使用的是 AWS 的存储&#xff0c;所以我们并不需要拷贝大量的数据。 文件夹结构 在备份和恢复之前&#xff0c;我们需要…

11 Php学习:函数

PHP 内建函数Array 函数 PHP Array 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。 创建 PHP 函数 当您需要在 PHP 中封装一段可重复使用的代码块时&#xff0c;可以使用函数。下面详细解释如何创建 PHP 函数并举例说明。 创建 PHP 函数的语法 PHP 函数的基…

前端CSS讲义1

什么是 CSS? CSS 指层叠样式表 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中&#xff0c;是为了解决内容与表现分离的问题 外部样式表可以极大提高工作效率 外部样式表通常存储在 CSS 文件中 多个样式定义可层叠为一 样式对网页中元素…

【opencv】示例-morphology2.cpp 形态学操作:膨胀、腐蚀、开运算、闭运算

element_shape MORPH_ELLIPSE; element_shape MORPH_RECT element_shape MORPH_CROSS; // 包含必要的OpenCV头文件 #include "opencv2/imgproc.hpp" // 图像处理 #include "opencv2/imgcodecs.hpp" // 图像编码解码 #include "opencv2/highgui.hpp…

2024年认证杯数学建模挑战赛C题全解析

2024年认证杯C题的已经完成啦&#xff0c;包括参考论文&#xff0c;模型代码&#xff0c;分享给大家&#xff5e; 问题分析 对于这些问题&#xff0c;我们首先需要确定影响日光辐射降低效应的关键参数&#xff0c;例如海盐气溶胶的浓度、粒子大小、分布以及喷洒高度和范围。同…

【央国企专场】——国家电网

国家电网目录 一、电网介绍1、核心业务2、电网组成 二、公司待遇三、公司招聘1、招聘平台2、考试安排2.3 考试内容 一、电网介绍 1、核心业务 国家电网公司&#xff08;State Grid Corporation of China&#xff0c;简称SGCC&#xff09;是中国最大的国有企业之一&#xff0c…

Vue3——html-doc-ja(html导出为word的js库)

一、下载 官方地址 html-doc-js - npm npm install html-doc-js 二、使用方法 // 使用页面中引入 import exportWord from html-doc-js// 配置项以及实现下载方法 const wrap document.getElementById(test)const config {document:document, //默认当前文档的document…

H2O-3机器学习平台源码编译的各种坑

H2O-3机器学习平台是一个非常适合非专业人士学习机器学习的平台&#xff0c;自带WebUI&#xff0c;效果还是蛮不错的&#xff0c;官方也提供了jar包&#xff0c;一条命令就能直接运行&#xff0c;非常方便&#xff0c;但最近有源码编译的需求&#xff0c;实际操作过程中&#x…

【计算机毕业设计】日用百货交易网站——后附源码

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…

Chatgpt掘金之旅—有爱AI商业实战篇|播客剧本写作|(十三)

演示站点&#xff1a; https://ai.uaai.cn 对话模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 一、AI技术创业播客剧本写作服务有哪些机会&#xff1f; 人工智能&#xff08;AI&#xff09;技术作为当今科技创新的前沿领域&#xff0c;为创业者提供了广阔的机会和挑战。…

4、jvm-垃圾收集算法与垃圾收集器

垃圾收集算法 分代收集理论 当前虚拟机的垃圾收集都采用分代收集算法&#xff0c;这种算法没有什么新的思想&#xff0c;只是根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代&#xff0c;这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。 比如…

最新Zibll子比主题V7.1版本源码 全新推出开心版

源码下载地址&#xff1a;Zibll子比主题V7.1.zip

JavaEE实验三:3.5学生信息查询系统(动态Sql)

题目要求: 使用动态SQL进行条件查询、更新以及复杂查询操作。本实验要求利用本章所学知识完成一个学生信息系统&#xff0c;该系统要求实现3个以下功能: 1、多条件查询&#xff1a; 当用户输入的学生姓名不为空&#xff0c;则根据学生姓名进行学生信息的查询&#xff1b; 当用户…

搭建基于Hexo的个人博客,以及git相关命令

全文写完之后的总结 测试命令 hexo clean hexo g hexo s 上传到服务器命令 hexo clean hexo g hexo d 上传到服务器&#xff08;如果上一个命令用不了&#xff09;&#xff0c;也要先hexo clean,hexo g git init git add . git commit -m "first commit" git p…