Hadoop学习笔记——HDFS

news2024/11/28 21:44:03

文章目录

  • 一、HDFS概述
    • 1.1、HDFS产出背景及定义
      • 1.1.1 HDFS产生背景
      • 1.1.2 HDFS定义
    • 1.2、HDFS优缺点
      • 1.2.1、HDFS优点
      • 1.2.2、HDFS缺点
    • 1.3、HDFS组成架构
    • 1.4、HDFS文件块大小
    • 1.5、限制
  • 二、HDFS的Shell操作
    • 2.1、基本语法
    • 2.2、命令大全
    • 2.3、常用命令实操
      • 2.3.1 准备工作
      • 2.3.2 上传

一、HDFS概述

1.1、HDFS产出背景及定义

1.1.1 HDFS产生背景

  随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。

1.1.2 HDFS定义

  HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
  HDFS的使用场景:适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变。

1.2、HDFS优缺点

1.2.1、HDFS优点

  • 高容错性

    • 数据自动保存多个副本。它通过增加副本的形式,提高容错性。
      提高容错

    • 某一个副本丢失以后,它可以自动回复。
      自恢复

  • 适合处理大数据

    • 数据规模:能够处理数据规模达到GB、TB、甚至PB级别的数据
    • 文件规模:能够处理百万规模以上的文件数量,数量相当之大。
  • 构建在廉价机器上,通过副本机制,提高可靠性。

1.2.2、HDFS缺点

  • 不适合低延时数据访问,比如毫秒级的存储数据,是做不到的。
  • 无法高效的对大量小文件进行存储。
    • 存储大量小文件的话,它会占用NameNode大量的内存来存储文件目录和块级信息。这样是不可取的,因为NameNode的内存总是有限的;
    • 小文件存储的寻址时间会超过读取时间,他违反了HDFS的设计目标。
  • 不支持并发写入、文件随机修改。
    • 一个文件智能有一个写,不允许多个线程同时写;
    • 仅支持数据appen(追加),不支持文件的随机修改。
      缺点

1.3、HDFS组成架构

  • NameNode(nn):就是Master,它是一个主管、管理者。
    • 管理HDFS的名称空间;
    • 配置副本策略;
    • 管理数据块(Block)映射信息;
    • 处理客户端读写请求;
  • DataNode:就是Slave。NameNode下达命令,DataNode执行实际的操作。
    • 存储实际的数据块;
    • 执行数据块的读/写操作。
  • Client:就是客户端。
    • 文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行上传;
    • 与NameNode交互,获取文件的位置信息;
    • 与DataNode交互,读取或者写入数据;
    • Client提供一些命令来管理HDFS,比如NameNode格式化;
    • Client可以通过一些命令来访问HDFS,比如对HDFS增删查改操作;
  • SecondaryNameNode:并非NameNode的热备。当NameNode挂掉的时候,它并不能马上替换NameNode并提供服务。
    • 辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode;
    • 在紧急情况下,可辅助回复NameNode。

1.4、HDFS文件块大小

  HDFS中的文件在物理上是分块存储(Block),块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小在Hadoop2.x/3.x版本中是128M,1.x中是64M。
文件快大小

1.5、限制

  1. DHFS的块设置太小,会增加寻址时间,程序已知在找块的开始位置;
  2. 如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数据时,会非常慢。

总结:HDFS块的大小设置主要取决于磁盘传输速率。

二、HDFS的Shell操作

2.1、基本语法

hadoop fs 具体命令 OR hdfs dfs 具体命令
两个是完全相同的。

2.2、命令大全

输入 hadoop fs 就能看见hdfs的命令

[sherry@hadoop102 bin]$ hadoop fs
Usage: hadoop fs [generic options]
        [-appendToFile <localsrc> ... <dst>]
        [-cat [-ignoreCrc] <src> ...]
        [-checksum <src> ...]
        [-chgrp [-R] GROUP PATH...]
        [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
        [-chown [-R] [OWNER][:[GROUP]] PATH...]
        [-copyFromLocal [-f] [-p] [-l] [-d] [-t <thread count>] <localsrc> ... <dst>]
        [-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
        [-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] [-e] <path> ...]
        [-cp [-f] [-p | -p[topax]] [-d] <src> ... <dst>]
        [-createSnapshot <snapshotDir> [<snapshotName>]]
        [-deleteSnapshot <snapshotDir> <snapshotName>]
        [-df [-h] [<path> ...]]
        [-du [-s] [-h] [-v] [-x] <path> ...]
        [-expunge]
        [-find <path> ... <expression> ...]
        [-get [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
        [-getfacl [-R] <path>]
        [-getfattr [-R] {-n name | -d} [-e en] <path>]
        [-getmerge [-nl] [-skip-empty-file] <src> <localdst>]
        [-head <file>]
        [-help [cmd ...]]
        [-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [-e] [<path> ...]]
        [-mkdir [-p] <path> ...]
        [-moveFromLocal <localsrc> ... <dst>]
        [-moveToLocal <src> <localdst>]
        [-mv <src> ... <dst>]
        [-put [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
        [-renameSnapshot <snapshotDir> <oldName> <newName>]
        [-rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ...]
        [-rmdir [--ignore-fail-on-non-empty] <dir> ...]
        [-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
        [-setfattr {-n name [-v value] | -x name} <path>]
        [-setrep [-R] [-w] <rep> <path> ...]
        [-stat [format] <path> ...]
        [-tail [-f] [-s <sleep interval>] <file>]
        [-test -[defsz] <path>]
        [-text [-ignoreCrc] <src> ...]
        [-touch [-a] [-m] [-t TIMESTAMP ] [-c] <path> ...]
        [-touchz <path> ...]
        [-truncate [-w] <length> <path> ...]
        [-usage [cmd ...]]

Generic options supported are:
-conf <configuration file>        specify an application configuration file
-D <property=value>               define a value for a given property
-fs <file:///|hdfs://namenode:port> specify default filesystem URL to use, overrides 'fs.defaultFS' property from configurations.
-jt <local|resourcemanager:port>  specify a ResourceManager
-files <file1,...>                specify a comma-separated list of files to be copied to the map reduce cluster
-libjars <jar1,...>               specify a comma-separated list of jar files to be included in the classpath
-archives <archive1,...>          specify a comma-separated list of archives to be unarchived on the compute machines

The general command line syntax is:
command [genericOptions] [commandOptions]

2.3、常用命令实操

2.3.1 准备工作

  1. 启动Hadoop集群(方便后续的测试)
sbin/start-dfs.sh
  1. -help:输出这个命令参数
hadoop fs -help rm
  1. 创建/wly文件加
hadoop fs -mkdir /wly

2.3.2 上传

  1. -moveFromLocal:从本地剪切粘贴到HDFS
vim shuguo.txt
# 输入:
wly
hadoop fs  -moveFromLocal  ./wly.txt  /wly

浏览器进入hadoop102:9870,进入Browse Directory
能看见已经上传到了/wly文件目录
然后进入Linux查看是否是剪切
剪切
确认剪切

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

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

相关文章

快速复现 实现 facenet-retinaface-pytorch 人脸识别 windows上 使用cpu实现

目录0 前言1 搭建环境与项目2 人脸预测与结果展示0 前言 这一次要复现的是人脸识别中的 facenet-retinaface-pytorch 是在上一次博客的内容上更进一步 快速复现 实现 facenet-pytorch 人脸识别 windows上 使用cpu实现 人脸对比 参考了&#xff1a; Pytorch 利用Facenet和Reti…

10 Deployment:让应用永不宕机

文章目录1. 前言2. 为什么要有deployment 对象&#xff1f;3. 如何使用 YAML 描述 Deployment?3.1 查看 Deployment 的基本信息3.2 命令式创建Deployment 的YAML模板3.2.1 Deployment 的关键字段3.2.1.1 replicas 副本字段3.2.1.2 selector 标签筛选字段3.2.1.3 为什么在 YAML…

JAVA学习-java基础讲义02

java基础讲义02一 进制1.1 进制介绍1.2 二进制1.3 任意进制到十进制转换1.4 十进制到任意进制之间的转换1.5 快速转换法1.6 有符号数据表示法二 Java变量和数据类型1.1 变量概述1.2 数据类型1.3 变量定义三 Java数据类型转换3.1 数据类型转换概述3.2 数据类型转换之自动类型转换…

使用自己的数据集测试Unbiased Mean Teacher for Cross-domain Object Detection

要复现Unbiased Mean Teacher for Cross-domain Object Detection&#xff08;UMT&#xff09;&#xff0c;首先要正确运行CycleGAN。 1. CycleGAN CycleGAN的github链接&#xff1a;https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix 1.1 CycleGAN环境配置 git cl…

低代码助力生产管理:车间管理系统

在当前制造业全球化、网络化、敏捷化的背景下&#xff0c;制造业信息化是目前生产的主要趋势。其中车间是制造企业的核心单元&#xff0c;是企业生产计划的具体实施环节&#xff0c;同时负责反馈实时生产信息。因此车间层的信息资源集成和生产管理控制是整个企业生产供应链控制…

[Power Query] 快速计算列

对两列或者多列的计算&#xff0c;在Power Query中除了通过自定义列来实现以外&#xff0c;我们也可以通过利用功能区的【添加列】|【标准】运算功能进行列的计算 数据源 将数据源导入到Power BI Desktop&#xff0c;单击【转换数据】选项&#xff0c;进入Power Query查询编辑…

python对异常的处理

了解异常当检测到一个错误时&#xff0c;解释器就无法继续执行了&#xff0c;反而出现一些错误的提示&#xff0c;这就是异常。测试&#xff1a;f open(test.txt,r) #以读模式打开文件&#xff0c;文件不存在则报错 运行了解释器报错避免出现异常提示的写法 #需求&#xff1a;…

串口通信及串口转蓝牙相关知识

之前没有接触过硬件相关的工作&#xff0c; 因此对硬件的知识一知半解。 最近由于项目需要&#xff0c; 用到了串口通信以及串口跟蓝牙之间通信相关的东西。记录下来&#xff0c; 希望对新手有所帮助。 如有疏漏之处&#xff0c; 欢迎指正。 1 串口通信 https://www.jishulin…

docker-compose安装部署gitlab中文版

文章目录前言一、环境信息二、准备部署1.准备路径2.安装docker-compse&#xff0c;下载镜像3.引入库2.执行部署三、登陆页面前言 记录一下使用docker-compose部署gitlab平台的过程 一、环境信息 操作系统版本&#xff1a;CentOS Linux release 7.9.2009 (Core) gitlab镜像版本…

世界杯winner只属于你——MESSI

其实现在大脑中还在回忆着那一脚精彩的进球。 看官方怎么说的&#xff1a; 北京时间11月27日凌晨3点&#xff0c;世界杯C组第2轮&#xff0c;阿根廷2-0战胜墨西哥。 梅西在11月27日用1进球1助攻&#xff0c;上帝降临&#xff0c;拯救阿根廷。特别是那个进球&#xff0c;直接让…

矩阵快速幂 笔记加理解

文章目录1.何为快速幂1.1学习快速幂的好文章1.2快速幂取模代码&#xff08;对1000取模&#xff09;2.矩阵快速幂1.何为快速幂 补充一个公式证明&#xff1a; 1.1学习快速幂的好文章 http://t.csdn.cn/agKop 1.2快速幂取模代码&#xff08;对1000取模&#xff09; ll fast…

VMware虚拟网络编辑器配置

一&#xff0c;NAT模式网络设置。 把下面的ip&#xff0c;子网掩码&#xff0c;网关记住。 切换到network-scripts 目录下。 cd /etc/sysconfig/network-scripts/修改ifcfg-ens33 这个文件。 然后重启网络服务&#xff1a; 对于openEuler&#xff1a; systemctl restart Ne…

关于Eslint语法检查

在vue创建项目中&#xff0c;选择eslintStandard config -标准规范- 在保存时就开启检查 eslintrc.js配置&#xff0c;没反应重启项目 语法报错&#xff0c;根据错误提示&#xff0c;去eslint官网搜索规则 在eslintrc.js文件中rules中添加或者修改规则&#xff0c;自定义的…

猿如意|IntelliJ IDEA Community下载安装以及基础开发设置和快捷键设置的详细教程

文章目录 一、如何在猿如意官网中下载IntelliJ IDEA Community&#xff1f; 二、关于IntelliJ IDEA Community的安装以及使用前的设置教程 1.下载安装 2.基础开发设置 三、总结 一、如何在猿如意官网中下载IntelliJ IDEA Community&#xff1f; 我们要想能够更简单的获取到Int…

【愚公系列】华为云系列之DevCloud+ECS+MySQL搭建超级冷笑话网站【开发者专属集市】

文章目录前言1.项目背景2.项目介绍3.所需华为云环境一、华为云系列之DevCloudECSMySQL搭建超级冷笑话网站1.创建项目2.创建代码仓库3.创建数据库4.修改代码5.编译构建6.部署7.环境准备8.导入主机9.部署应用10.应用访问11.资源释放11.1 释放 ECS 资源11.2 释放 RDS 资源总结前言…

[附源码]Python计算机毕业设计Django的校园报修平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

大于10M图片如何查看?

大于10M的图片&#xff0c;如果Windows无法查看&#xff0c;只需要压缩到10M以内就行。 我们先下载一个工具&#xff0c;帮助我们批量压缩图片。 Faststone image viewer 查看器&#xff0c;下载地址&#xff1a; https://www.faststone.org/ 假如我们有一张大于10M的图片&a…

计算机病毒

文章目录计算机病毒计算机病毒的类型计算机感染病毒的表现计算机病毒 计算机病毒指的是干扰计算机正常运行的软件或者代码片段。 计算机病毒的传播途径有很多&#xff0c;例如隐藏在传输的文件或者数据中&#xff0c;或者借助一些不安全的网络等等。病毒一旦进入您的计算机系…

【NDVI:注意力机制:遥感图像】

NDVI-Net: A fusion network for generating high-resolution normalized difference vegetation index in remote sensing &#xff08;NDVI-Net&#xff1a;一种生成高分辨率归一化植被指数的遥感融合网络&#xff09; 归一化植被指数&#xff08;Normalized Difference Ve…

Matlab最小二乘平面拟合(SVD方法)—点云处理及可视化第3期

在之前的文章中&#xff0c;分享了Matlab基于PCA的平面拟合方法&#xff1a; 这一次&#xff0c;再来分享一下基于奇异值分解&#xff08;Singular Value Decomposition, SVD&#xff09;的平面拟合。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;《Matlab点云处理及…