HDFS详细介绍以及HDFS集群环境部署【hadoop组件HDFS笔记】(图片均为学习时截取的)

 HDFS详细介绍

HDFS是什么

 HDFS是Hadoop三大组件(HDFS、MapReduce、YARN)之一 全称是:Hadoop Distributed File System(Hadoop分布式文件系统);是Hadoop技术栈内提供的分布式数据存储解决方案 可以在多台服务器上构建存储集群,存储海量的数据。

了解为什么海量数据需要使用分布式存储技术

答:1、太大,单台服务器无法承担。

        2、靠数量取胜 多台服务器组合,才能Hold住。

        3、分布式不仅仅是解决了能存的问题, 多台服务器协同工作 带来的也是性能的横向扩展。(网络传输、磁盘读写、CPU、内存等各方面的综合提升)——分布式的性能提升。

        

 HDFS的基础架构

 

 

 一个典型的HDFS集群,就是由1个DataNode加若干(至少一个)DataNode组成。 

 

 HDFS各个组件介绍
 NameNode:

HDFS系统的主角色,是一个独立的进程 负责管理HDFS整个文件系统 负责管理DataNode。

 SecondaryNameNode:

NameNode的辅助,是一个独立进程 主要帮助NameNode完成元数据整理工作(打杂)。

 DataNode:

HDFS系统的从角色,是一个独立进程 主要负责数据的存储,即存入数据和取出数据。

HDFS集群环境部署

注意:请完成集群前置准备工作:

配置多台虚拟机:http://t.csdnimg.cn/hGqMzicon-default.png?t=N7T8http://t.csdnimg.cn/hGqMz
ip固定http://t.csdnimg.cn/4IqRcicon-default.png?t=N7T8http://t.csdnimg.cn/4IqRc
主机映射:http://t.csdnimg.cn/1C15xicon-default.png?t=N7T8http://t.csdnimg.cn/1C15x
ssh免密登录:http://t.csdnimg.cn/dEITyicon-default.png?t=N7T8http://t.csdnimg.cn/dEITy
Jdk:http://t.csdnimg.cn/zKRC7icon-default.png?t=N7T8http://t.csdnimg.cn/zKRC7
关闭防火墙以及SELinux关闭:http://t.csdnimg.cn/K19d7icon-default.png?t=N7T8http://t.csdnimg.cn/K19d7

为了系统的安全和稳定,建议使用自建的用户来管理大数据相关的软件,这里使用hadoop用户为HDFS最高权限用户。

下载

官方网址:https://hadoop.apache.org,课程使用当前最新的发行版:3.3.4版。

 上传 & 解压(我的Hadoop版本为3.3.4)

注意标红位置,改写为自己想放的路径,我的软件通常都放在/export/server!!!!!!!!!

 1. 上传Hadoop安装包到node1节点中。

自己选择弄

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

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

3. 构建软链接

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

4. 进入hadoop安装包内

cd hadoop

5. 各个文件夹含义如下 

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

etc,存放Hadoop的配置文件 include,C语言的一些头文件

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

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

licenses-binary,存放许可证文件 sbin,管理员程序(super bin)

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

 修改配置文件,应用自定义设置

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

workers:        配置从节点(DataNode)有哪些

hadoop-env.sh:        配置Hadoop的相关环境变量

core-site.xml:        Hadoop核心配置文件

hdfs-site.xml:        HDFS核心配置文件

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

2.  配置workers文件

进入配置文件目录

cd etc/hadoop

编辑workers文件

vim workers

填入如下内容

node1

node2

node3

 表明集群记录了三个从节点(DataNode)

3. 配置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配置文件目录位置

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

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

 4.配置core-site.xml文件

 在文件内部填入如下内容

<configuration>  

        <property>    

                <name>fs.defaultFS</name>    

                <value>hdfs://node1:8020</value>  

        </property>  

        <property>    

                <name>io.file.buffer.size</name>    

                <value>131072</value>  

        </property>

</configuration>

 name:fs.defaultFS

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

value:hdfs://node1:8020

协议为hdfs://

namenode为node1

namenode通讯端口为8020

name:io.file.buffer.size

含义:io操作文件缓冲区大小

value:131072 bit

hdfs://node1:8020为整个HDFS内部的通讯地址,应用协议为hdfs://(Hadoop内置协议) 表明DataNode将和node1的8020端口通讯,node1是NameNode所在机器 此配置固定了node1必须启动NameNode进程

 5. 配置hdfs-site.xml文件

在文件内部填入如下内容

<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>node1,node2,node3</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>

</configuration>

 解释

根据

namenode数据存放node1的/data/nn

datanode数据存放node1、node2、node3的/data/dn

所以应该 在node1节点:

mkdir -p /data/nn

mkdir /data/dn

在node2和node3节点:

mkdir -p /data/dn

 从node1将hadoop安装文件夹远程复制到node2、node3

 分发
 node1执行如下命令

cd /export/server

scp -r hadoop-3.3.4 node2:`pwd`/

scp -r hadoop-3.3.4 node3:`pwd`/

 在node2执行,为hadoop配置软链接

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

 在node3执行,为hadoop配置软链接

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

 配置系统的环境变量

所有机器

vim /etc/profile

export HADOOP_HOME=/export/server/hadoop

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

 授权为hadoop用户

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

为了确保安全,hadoop系统不以root用户启动,我们以普通用户hadoop来启动整个Hadoop服务 所以,现在需要对文件权限进行授权。

 注意:请确保已经提前创建好了hadoop用户,并配置好了hadoop用户之间的免密登录!!!!

以root身份,在node1、node2、node3(所有机器)三台服务器上均执行如下命令 

chown -R hadoop:hadoop /data

chown -R hadoop:hadoop /export

 格式化整个文件系统

格式化namenode

 确保以hadoop用户执行(否则会出问题,能解决,但请自行寻找解决办法)

su - hadoop

格式化namenode

hadoop namenode -format

 启动

 # 一键启动hdfs集群

start-dfs.sh

# 一键关闭hdfs集群

stop-dfs.sh

# 如果遇到命令未找到的错误,表明环境变量未配置好,可以以绝对路径执行 /export/server/hadoop/sbin/start-dfs.sh

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

 查看HDFS WEBUI

 启动完成后,可以在浏览器打开: http://node1:9870,即可查看到hdfs文件系统的管理网页。

注意:没有配置windows系统的主机映射,将node1改为主机node1的ip!!!!!!!!

 ip固定http://t.csdnimg.cn/4IqRcicon-default.png?t=N7T8http://t.csdnimg.cn/4IqRc

 

在Windows挂载HDFS文件系统

NFSicon-default.png?t=N7T8http://t.csdnimg.cn/hq3CU

 配置hadoop组件yarn:待续

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

42.HOOK引擎核心代码

上一个内容&#xff1a;41.HOOK引擎设计原理 以 40.设计HOOK引擎的好处 它的代码为基础进行修改 主要做的是读写寄存器 效果图 添加一个类 htdHook.h文件中的实现 #pragma once class htdHook { public:htdHook(); };htdHook.cpp文件中的实现&#xff1a; #include "…

论文阅读:Simple and Efficient Heterogeneous Graph Neural Network

Yang, Xiaocheng, Mingyu Yan, Shirui Pan, Xiaochun Ye and Dongrui Fan. “Simple and Efficient Heterogeneous Graph Neural Network.” AAAI Conference on Artificial Intelligence (2022). 论文地址&#xff1a;[PDF] Simple and Efficient Heterogeneous Graph Neural…

centos7 xtrabackup mysql 基本测试(5)mysql 建立 测试 数据库及内容

centos7 xtrabackup mysql 基本测试&#xff08;5&#xff09;mysql 建立 测试 数据库及内容 登录 mysql -u etc -p 1234aA~1创建数据库 名字是company show databases ; create database company;在 company里面 创建表employee use company; DROP TABLE IF EXISTS employ…

Webpack: 构建 NPM Library

概述 虽然 Webpack 多数情况下被用于构建 Web 应用&#xff0c;但与 Rollup、Snowpack 等工具类似&#xff0c;Webpack 同样具有完备的构建 NPM 库的能力。与一般场景相比&#xff0c;构建 NPM 库时需要注意&#xff1a; 正确导出模块内容&#xff1b;不要将第三方包打包进产…

C : 线性规划例题求解

Submit Page TestData Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 93 Solved: 49 Description 求解下述线性规划模型的最优值min &#xfffd;1&#xfffd;1&#xfffd;2&#xfffd;2&#xfffd;3&#xfffd;3&#xfffd;.&#xfffd;. &…

Pbootcms留言“提交成功”的提示语怎么修改

我们在用到pbootcms建站时候&#xff0c;其中有个留言功能&#xff0c;提交成功后会提示&#xff1a;提交成功&#xff08;如下图所示&#xff09;&#xff0c;那么我们要修改这个提示语要怎么操作呢&#xff1f; 如果需要修改的话&#xff0c;直接找到文件/apps/home/control…

完美世界|单机版合集(共22个版本)

前言 我是研究单机的老罗&#xff0c;今天给大家带来的是完美世界的单机版合集&#xff0c;一共22个版本。本人亲自测试了一个版本&#xff0c;运行视频如下&#xff1a; 完美世界|单机版合集 先看所有的版本的文件&#xff0c;文件比较大&#xff0c;准备好空间&#xff0c;差…

运行CDN

背景 CDN代码&#xff0c;调试运行 日常 git clone代码配置虚拟环境 puthon3.8,pip install r requirements.txt改项目数据集路径&#xff0c;在hico.py文件里面 # PATHS {# train: (root / images / train2015, root / annotations / trainval_hico.json),# val: …

捕获野生的登录页,暴改Vue3

1.实现效果 2.Vue组件 <script setup> import {onMounted} from "vue";onMounted(()>{// getAllData() }) </script><template><div class"login"><div class"form-cont"><div class"form-top"&…

音视频开发34 FFmpeg 编码- 将h264和acc文件打包成flv文件

FFmpeg合成流程 示例本程序会⽣成⼀个合成的⾳频和视频流&#xff0c;并将它们编码和封装输出到输出⽂件&#xff0c;输出格式是根据⽂件 扩展名⾃动猜测的。 示例的流程图如下所示。 ffmpeg 的 Mux 主要分为 三步操作&#xff1a; avformat_write_header &#xff1a; 写⽂…

ASP.Net.WebAPI和工具PostMan

1.WebAPI概述 1.1 WebAPI WebAPI 是一种传统的方式&#xff0c;用于构建和暴露 RESTUI风格的Web服务。它提供了丰富的功能和灵活性&#xff0c;可以处理各种HTTP请求&#xff0c;并支持各种数据格式&#xff0c;如JSON、XML等。 WebAPI使用控制器(Controllers)和动作方法(Ac…

25 防火墙基础操作

1 防火墙进入WEB页面操作 华三防火墙的默认用户:admin/密码:admin 将IP地址改在同一网段的信息 在防火墙的管理地址 GE/0/0/1&#xff1a;192.168.0.1 主机的地址是:192.168.0.101 思考一下为什么Ping不通 security-zone name Management import interface GigabitEthernet1/…

python、pytorch、cuda安装及常见pip命令

1、查看本地安装的CUDA版本 命令&#xff1a;nvidia-smi 2、安装CUDA 下载地址&#xff1a;https://developer.nvidia.com/cuda-toolkit-archive?spm5176.28103460.0.0.49e33da2H7ktW7 进入后选择指定版本进入详情页&#xff0c;选择linux和windows版本&#xff0c;下载然后…

Qt开发报错:Q_INTERFACES Error: Undefined interface

1、背景 VS2019qt5.12.10 从svn拉下来的项目&#xff0c;结果报错&#xff1a; Q_INTERFACES Error: Undefined interface 之前在VS的扩展中在线安装了qt插件&#xff0c; 安装了一半&#xff0c;比较慢&#xff0c;直接强行退出了。。 后来安装了qt官网的插件。。。。 2、报…

【计算机网络】HTTP——基于HTTP的功能追加协议(个人笔记)

学习日期&#xff1a;2024.6.29 内容摘要&#xff1a;基于HTTP的功能追加协议和HTTP/2.0 HTTP的瓶颈与各功能追加协议 需求的产生 在Facebook、推特、微博等平台&#xff0c;每分每秒都会有人更新内容&#xff0c;我们作为用户当然希望时刻都能收到最新的消息&#xff0c;为…

Keepalive技术

文章目录 一、Keepalive基础vrrp技术Keepalived介绍Keepalived架构 二、 Keepalived 相关文件配置文件组成全局配置虚拟路由器配置 三、配置lvs和keepalive联动服务器架构抢占模式配置配置单播、组播配置通知模块日志功能脑裂现象 四、keepalived和nginx联动keepalive和其他应用…

探索MySQL核心技术:理解索引和主键的关系

在数据密集型应用中&#xff0c;数据库的性能往往是决定一个应用成败的重要因素之一。其中&#xff0c;MySQL作为一种开源关系型数据库管理系统&#xff0c;以其卓越的性能和丰富的功能被广泛应用。而在MySQL数据库优化的众多技巧中&#xff0c;索引和主键扮演着极其重要的角色…

专题一: Spring生态初探

咱们先从整体脉络上看下Spring有哪些模块&#xff0c;重要的概念有个直观印象。 从Spring框架的整体架构和组成对整体框架有个认知。 Spring框架基础概念 Spring基础 - Spring和Spring框架组成 上图是从官网4.2.x获取的原图&#xff0c;目前我们使用最广法的版本应该都是5.x&am…

svn怎么新建分支,切换分支

在当前分支下&#xff0c;点svn右键&#xff0c;选择分支/标记 在选择远端地址时&#xff0c;点右边更多选项&#xff0c;打开远端版本库。找到对应的分支上级位置&#xff0c;点击确定 填写新分支名称&#xff0c;我这儿是将分支建在了branches下&#xff0c;分支名称为V1.1 填…

WEB攻防【4】——JavaWeb项目/JWT身份攻击/组件安全/访问控制

一、知识点 1、Javaweb常见安全及代码逻辑 Javaweb的架构&#xff1a; 如何通过包查找到文件&#xff0c;通过URL对应源码的文件&#xff0c;或者通过源码文件对应URL地址。 2、目录遍历&身份验证&逻辑&JWT Javaweb里面有身份认证的JWT的技术&#xff0c;pyth…