Hadoop——分布式存储HDFS

news/2024/5/20 1:56:15 标签: hadoop, 分布式, hdfs

HDFS集群环境部署

VMware虚拟机中部署

一、https://hadoop.apache.org中下载安装包
在这里插入图片描述
二、环境分配
在这里插入图片描述
三、上传、解压

确认服务器创建、固定IP、防火墙关闭、Hadoop用户创建、SSH免密、JDK部署等
在这里插入图片描述
在这里插入图片描述

四、修改配置文件
在这里插入图片描述
在这里插入图片描述

hdfs-site.xml
①、dfs.datanode.data.dir.perm 700
hdfs文件系统,默认权限700,rwx------

②、dfs.namenode.name.dir /data/nn
NameNode元数据的存储位置 在node1节点的/data/nn目录下
需要在node1节点:mkdir -p /data/nn mkdir data/dn 创建两个文件夹目录

③、dfs.namenode.hosts
NameNode允许哪几个节点的DataNode连接(即允许加入集群)
node1/node2/node3这三台服务器被授权

④、dfs.blocksize
默认块大小

⑤、dfs.namenode.handler.count
namenode处理的并发线程数 100 表示以100个并行度处理文件系统的管理任务

⑥、dfs.datanode.data.dir
从节点dataNode的数据存储目录
/data/dn,即数据存放在node1,node2,node3三台机器的/data/dn内
mkdir -p /data/dn 需要在node2,node3各创建一个文件夹目录
在这里插入图片描述

五、从node1将hadoop安装目录文件夹远程复制到node2\node3,并且配置环境变量
在这里插入图片描述
在这里插入图片描述

六、授权hadoop用户

为了确保安全,hadoop系统不以root用户启动,将以普通的hadoop来启动整个hadoop服务
所以需要对文件权限进行授权(前提需要创建好hadoop用户,并配置好了hadoop用户之间免密登录)
在这里插入图片描述

七、对整个文件系统执行初始化
在这里插入图片描述
通过jsp命令查看,三台节点的运行程序
在这里插入图片描述
八、浏览器查看

在这里插入图片描述

关闭hadoop系统之后,然后init 0,关闭虚拟机,进行快照操作
在这里插入图片描述

云服务器中部署

在这里插入图片描述

以上步骤和虚拟机一样。

三、云服务是通过内网互通
在这里插入图片描述

通过浏览器访问需要公网IP
在这里插入图片描述

四、云服务中操作镜像
在这里插入图片描述

在这里插入图片描述

集群部署常见问题
在这里插入图片描述

一、权限被拒绝
在这里插入图片描述
需要对hadoop用户授权
在这里插入图片描述

二、command not found
在这里插入图片描述

三、worker文件
在这里插入图片描述

四、未格式化
在这里插入图片描述
排查日志
在这里插入图片描述
在这里插入图片描述

======================================================================================

HDFS的Shell操作

进程启停管理

①、一键启停脚本
在这里插入图片描述

②、独立进程启停(只对所在机器有效)
在这里插入图片描述

文件系统操作命令

协议头file:/// 或hdfs://node1:8020/ 可以省略

  • 需要提供Linux路径的参数会自动识别为file://
  • 需要提供HDFS路径的参数会自动识别为hdfs://

在这里插入图片描述
在这里插入图片描述

①、创建文件夹

# path 为待创建的目录
# -p选项的行为与Linux mkdir -p一致,沿着路径创建父目录
hadoop fs -mkdir -p /michael/bigdata 
hadoop fs -mkdir -p hdfs://node1:8020/michael/bigdata  #带上协议头
hdfs fs -mkdir -p /michael/hadoop

# 如果添加协议头(在Linux创建)
hadoop fs -mkdir -p file:///home/hodoop/test

②、查看指定目录下的内容

# path 指定目录路径
# -h 人性化显示文件size  kb
# -R 递归查看指定目录以及子目录
hadoop fs -ls /  # hadoop根目录下
hdfs dfs -ls -R /

③、上传文件到HDFS指定目录下

# -f 覆盖目标文件
# -p 保留访问和修改时间,所有权和权限
# localsrc 本地文件系统(客户端所在机器)
# dst 目标文件系统(HDFS)
hadoop fs -put word.txt /michael
hdfs dfs -put file:///etc/prifile hdfs://node1:8020/michael

④、查看HDFS文件内容

hadoop fs -cat /test.txt

# 对于大文件,可以使用管道符配合more   按下空格进行翻页查看
hdfs dfs -cat /test.txt | more

⑤、下载HDFS文件

# -f 覆盖目标文件
# -p 保留访问和修改时间,所有权和权限
# HDFS->Linux下载
hadoop fs -get /test.txt .    # .表示当前目录

⑥、拷贝HDFS文件

# HDFS->HDFS
hadoop fs -cp /test.txt /home/

# 也可以添加-p强制覆盖,并改名
hadoop fs -cp /test.txt /home/abc.txt

⑦、追加数据到HDFS文件中

echo 1 >> 1.txt
echo 2 >> 2.txt
echo 3 >> 3.txt

hadoop fs -put 1.txt /
hadoop fs -cat /1.txt

# 本地内容追加到hdfs
hadoop fs -appendToFile 2.txt 3.txt /1.txt
hadoop fs -cat /1.txt

⑧、移动

hadoop fs -mv /test.txt /michael

hadoop fs -mv /test.txt /michael/abx.txt #移动之后还可以改名

⑨、删除

hadoop fs -rm -f /home  # 删除home文件夹目录

hadoop fs -rm /michael/test.txt # 删除文件,不需要添加-r

在这里插入图片描述
如果开启了回收站之后,删除文件是需要通过指定参数跳过回收站

hadoop fs -rm -r -skipTrash /michael

除了以上通过命令的方式查看文件,可以通过浏览器进行查看
在这里插入图片描述
但没有权限去操作,只能查看。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

HDFS客户端-Jetbrians产品插件
在这里插入图片描述

①、以DataGrip工具为例,安装Big Data Tools插件
在这里插入图片描述

②、配置Window,然后重启DataGrip工具
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

③、配置Big Data Tools插件
在这里插入图片描述

或者

(需要重新打包配置文件等进行替换)
在这里插入图片描述

④、配置成功之后,可以操作上传文件
在这里插入图片描述

HDFS客户端-NFS
在这里插入图片描述

①、在node1节点上进行如下操作:

进入cd /export/server/hadoop/etc/hadoop目录下配置如下文件

core-site.xml内新增如下两项
在这里插入图片描述

hdfs-site.xml新增如下:
在这里插入图片描述

②、将以上node1配置好的节点复制到node2和node3中

在这里插入图片描述
在这里插入图片描述
停止系统NFS相关进程需要回退到root用户的权限
在这里插入图片描述
在这里插入图片描述

启动集群:start -dfs.sh

③、检查NFS是否正常
在这里插入图片描述

④、在Window挂载HDFS文件系统
在这里插入图片描述
在这里插入图片描述

HDFS的存储原理

block块
在这里插入图片描述
在这里插入图片描述
副本要放在不同的服务器,可以设置配置文件决定副本存储,还可以通过命令临时设置

①、配置文件设置
在这里插入图片描述

②、临时命令设置
在这里插入图片描述

fsck命令
在这里插入图片描述

NameNode元数据

NameNode基于一批edits和一个fsimage文件的配合完成对整个文件系统的管理和维护。

  • edits文件,是一个流水账文件,记录hdfs中的每一次操作,以及本次操作的文件其对应的block,为了保证检索功能会存在多个edits文件,确保不会出现过大的edits文件
    在这里插入图片描述

  • FSImage文件,全部的edits文件合并为最终结果,即得到一个FSImage文件
    在这里插入图片描述

①、整个文件系统的管理流程:
在这里插入图片描述
在这里插入图片描述

②、元数据合并控制参数
在这里插入图片描述
在这里插入图片描述

HDFS数据的读写流程

一、数据写入流程
在这里插入图片描述
在这里插入图片描述

二、数据读取流程

在这里插入图片描述


http://www.niftyadmin.cn/n/5236034.html

相关文章

vxlan分布式网关部署案例

配置逻辑思维步骤: 1、配置同子网互访 2、配置不同子网互访(集中式或分布式) 3、所有的vtep配置相同的vbif接口,相同mac,相同IP,开户分布式网关功能,开启主机信息收集能力 4、在所有的EVPN邻居间开户IRB路由传递能力 5、创建三层VPN实例,配置RD,eirt,。 不同的的租户…

ssm医院门诊互联电子病历管理信息系统源码和论文

摘 要 网络的广泛应用给生活带来了十分的便利。所以把医院门诊互联电子病历管理与现在网络相结合,利用java技术建设医院门诊互联电子病历管理信息系统,实现医院门诊互联电子病历的信息化。则对于进一步提高医院门诊互联电子病历管理发展,对…

Python---函数递归---练习:使用递归求N的阶乘(如n=100)(本文以递归算法 解法为主)

相关链接:Python---函数递归---练习:斐波那契数列(本文以递归算法为主)-CSDN博客 Python---if选择判断结构、嵌套结构(if elif else)_python多重if嵌套-CSDN博客 案例:使用递归求N的阶乘&…

重启路由器可以解决N多问题?

为什么重启始终是路由器问题的首要解决方案? 在日常的工作学习工作中,不起眼的路由器是一种相对简单的设备,但这仍然是我们谈论的计算机。 这种廉价的塑料外壳装有 CPU、随机存取存储器 (RAM)、只读存储器 (ROM) 和许多其他组件。 该硬件运行预装的软件(或固件)来管理连接…

(三)python单例模式

文章目录 一、单例模式介绍1.1 应用场景: 二、单例模式的几种创建方式:2.1.经典模式创建:2.2 懒汉式创建2.3 模块级别的单例模式2.4 Monostate单例模式(单态)2.5 单例和元类2.5.1 什么是元类2.5.2 自定义元类2.5.3 基于…

应用安全四十三:无密码认证安全

什么是无密码认证? 无密码认证是一种新兴的安全技术和身份认证手段,是用密码以外的东西验证软件用户身份的过程,旨在替代传统的用户账号和密码认证方法,提高账号的安全性和用户体验。无密码技术通过生物识别、多因素认证、基于硬…

4_企业架构双点服务器HA

企业架构双点服务器HA 学习目标和内容 1、能够描述高可用HA的作用 2、能够理解VIP的切换 3、能够描述keepalived作用 4、能够理解主master和备backup服务器关系 5、能够实现主备服务器高可用配置 6、能够实现模拟业务宕机服务切换 一、背景描述及其方案设计 1、业务背景描述 时…

基础组件总结(以Element UI组件库为例)

一般对一个组件的使用方式: 每一个组件都有被绑定的数据, (1)首先会对组件的数据初始化(a.data中赋初值 b. 在生命周期函数created或mounted中为变量赋予初值) (2)由于不同组件的…