目录

一、HDFS概述

二、HDFS特点

三、HDFS集群组成:主从架构---一个主节点,多个从节点

1. NameNode(名称节点 / 主节点)----- HDFS集群的管理者

2. DataNode (数据节点 / 从节点)

3. SecondaryNameNode (第二名称节点)

四、HDFS传输文件方式

五、HDFS常用命令

六、如何实现启动HDFS和yarn的时候不输入密码


一、HDFS概述

Hadoop 分布式文件系统,用于存储文件,与Windows不同的是他是一个分布式的,由很多服务器联合起来实现其功能。

二、HDFS特点

  1. 一次写入,多次读取,写入后只允许删除或查看,不支持文件修改。
  2. HDFS文件读取或写入都比较慢,不适合实时性或者低延时的操作

Notes适合用来做数据分析,不适合做网盘应用。

三、HDFS集群组成:主从架构---一个主节点,多个从节点

1. NameNode(名称节点 / 主节点)----- HDFS集群的管理者

  1. 管理文件存储的元数据

    • 元数据包括了文件的信息、大小。文件的上传时间、作者、文件在那个DataNode上存储
    • 元数据中还包含了 文件义工分成了几个板块,每个板块在那个DataNode上存储着
    • 但是 NameNode 只存储这些信息,文件中真正的内容 NameNode 不存储,主要由 DataNode 存储
  2. NameNode 也管理文件的上传和下载操作,作为客户端的请求响应

2. DataNode (数据节点 / 从节点)

HDFS 存储的文件 最终是有DataNode节点存储的

文件存储的时候,DataNode并不是把文件直接存储的,而是将文件按照文件大小划分为有一个的block块,文件都是以block块去在DataNode上存储的

Hadoop 1.x 默认是64M

Hadoop 2.x 默认是128M

block块大小默认是128M,但是可以更改,在hdfs-site.xml中配置一个配置项 dfs.blocksize 即可(注意单位是B字节)

        Notes:HDFS默认有一个备份机制,存储一个文件的时候,划分成不同的 block 块,每一个 block 块都会备份,默认HDFS备份三份,可以通过修改 hdfs-site.xml 中配置一个配置项 dfs.replication 即可

3. SecondaryNameNode (第二名称节点)

是NameNode的小助手,帮助 NameNode 去合并日志文件和镜像文件。但是注意 SecondaryNameNode 虽然叫第二名称节点,但它永远是第二,永远代替不了 NameNode。而且在一般情况下,NameNode 和 SecondaryNameNode 在分布式环境下不在一台节点下NameNode 和 SecondaryNameNode、DataNode 都是需要内存运行的

四、HDFS传输文件方式

HDFS是一个分布式文件存储系统,那么必须可以上传文件和下载文件

不管是通过命令去操作,还是 Java API操作,都必须把 HDFS集群启动起来

通过 HDFS 命令的方式上传和下载

语法:

hdfs 操作符 文件相关信息

NotesHDFS是一个分布式文件存储系统,文件系统路径也是从 / 这个根路径开始,只不过 / 根路径默认是没有任何文件的

案例:

# 查看这个路径下有哪些文件和文件夹
hdfs dfs -ls / hdfs 上的文件夹路径 # 创建某个文件夹,如果这个文件夹有父目录,父目录不存在,则会报错
hdfs dfs -mkdir 文件名 # 若要在空目录下创建目录,需要加 -p 选项
hdfs dfs -mkdir -p 文件名 # 将Linux本地的文件上传到HDFS指定目录下
hdfs dfs -put linux本地文件路径 /上传文件路径 # 将HDFS上的一个文件下载到Linux本地
hdfs dfs -get /HDFS上的要下载的路径 Linux本地的路径

五、HDFS常用命令

  • -help:输出这个命令参数

bin/hdfs dfs -help rm

  • -ls: 显示目录信息

hadoop fs -ls /

  • -mkdir:在hdfs上创建目录

# -p参数代表递归创建
hadoop fs  -mkdir  -p  /aaa/bbb/cc/dd

  • -moveFromLocal从本地剪切粘贴到hdfs

hadoop  fs  - moveFromLocal  /home/hadoop/a.txt  /aaa/bbb/cc/dd 

  • -moveToLocal:从hdfs剪切粘贴到本地(尚未实现)

[uek@node2 hadoop-2.8.5]$ hadoop fs -help moveToLocal
-moveToLocal <src> <localdst> :
Not implemented yet 

  • --appendToFile :追加一个文件到已经存在的文件末尾

hadoop  fs  -appendToFile  ./hello.txt  /hello.txt 

  • -cat :显示文件内容

hadoop fs -cat /aaa/bbb/cc/dd/test.txt 

  • -tail:显示一个文件的末尾

hadoop  fs  -tail  /weblog/access_log.1 

  • -chgrp 、-chmod、-chown:linux文件系统中的用法一样,修改文件所属权限

hadoop  fs  -chmod  666  /hello.txt
hadoop  fs  -chown  someuser:somegrp   /hello.txt

  • -copyFromLocal:从本地文件系统中拷贝文件到hdfs路径去:

```sh
hadoop  fs  -copyFromLocal  ./jdk.tar.gz  /aaa/

  • -copyToLocal:从hdfs拷贝到本地

hadoop fs -copyToLocal /user/hello.txt ./hello.txt

  • -cp :从hdfs的一个路径拷贝到hdfs的另一个路径

hadoop  fs  -cp  /aaa/jdk.tar.gz  /bbb/jdk.tar.gz.2

  • -mv:在hdfs目录中移动文件

hadoop  fs  -mv  /aaa/jdk.tar.gz  /

  • -get:等同于copyToLocal,就是从hdfs下载文件到本地

hadoop fs -get /user/hello.txt ./

  • -getmerge :合并下载多个文件,比如hdfs的目录 /aaa/下有多个文件:log.1, log.2,log.3,…

hadoop fs -getmerge /aaa/log.* ./log.sum

  • -put:等同于copyFromLocal

hadoop  fs  -put  /aaa/jdk.tar.gz  /bbb/jdk.tar.gz.2​​​​​​​​​​​​​​

  • -rm:删除文件或文件夹

​​​​​​​​​​​​​​hadoop fs -rm -r /aaa/bbb/

  • -rmdir:删除空目录

​​​​​​​​​​​​​​hadoop  fs  -rmdir   /aaa/bbb/ccc

  • -df :统计文件系统的可用空间信息

​​​​​​​​​​​​​​hadoop  fs  -df  -h  /

  • -du:统计文件夹的大小信息

​​​​​​​​​​​​​[uek@node2 hadoop-2.8.5]$ hadoop fs -du -s -h /user/uek/wcinput
188.5 M  /user/uek/wcinput
[uek@node2 hadoop-2.8.5]$ hadoop fs -du  -h /user/uek/wcinput
188.5 M  /user/uek/wcinput/hadoop-2.8.5.tar.gz
97       /user/uek/wcinput/wc.input

  • -count:统计一个指定目录下的文件节点数量

​​​​​​​​​​​​​​hadoop fs -count /aaa/
[uek@node2 hadoop-2.8.5]$ hadoop fs -count /user/uek/wcinput
     1       2          197657784 /user/uek/wcinput
嵌套文件层级;  包含文件的总数

  • -setrep:设置hdfs中文件的副本数量

hadoop fs -setrep 3 /aaa/jdk.tar.gz

# 这里设置的副本数只是记录在namenode的元数据中,是否真的会有这么多副本,还得看datanode的数量。因为目前只有3台设备,最多也就3个副本,只有节点数的增加到10台时,副本数才能达到10。

六、如何实现启动HDFSyarn的时候不输入密码

  解决方式就是让电脑知道自己的登录密码或者是别的电脑的登录密码  这样的花启动的时候就不需要输入密码;

  配置ssh免密钥登录----配置不使用密码可以登录

    核心思想:就是在当前用户的家目录的.ssh目录下生成一个公钥私钥

  然后讲公钥传给别人  那么别人再去登录你的时候就可以不用输入密码了

  1、生成密钥

   必须在~/.ssh这个目录下执行命令  ssh-keygen -t rsa

  2、怎么把密码给别人

          ssh-copy-id 你要给的主机ip

 

HDFS(Hadoop Distributed File System )概述的更多相关文章

  1. Hadoop ->> HDFS(Hadoop Distributed File System)

    HDFS全称是Hadoop Distributed File System.作为分布式文件系统,具有高容错性的特点.它放宽了POSIX对于操作系统接口的要求,可以直接以流(Stream)的形式访问文件 ...

  2. HDFS(Hadoop Distributed File System )

    HDFS(Hadoop Distributed File System ) HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据google发表 ...

  3. HDFS分布式文件系统(The Hadoop Distributed File System)

    The Hadoop Distributed File System (HDFS) is designed to store very large data sets reliably, and to ...

  4. HDFS(Hadoop Distributed File System )hadoop分布式文件系统。

    HDFS(Hadoop Distributed File System )hadoop分布式文件系统.HDFS有如下特点:保存多个副本,且提供容错机制,副本丢失或宕机自动恢复.默认存3份.运行在廉价的 ...

  5. HDFS(Hadoop Distributed File System)的组件架构概述

    1.hadoop1.x和hadoop2.x区别 2.组件介绍 HDFS架构概述1)NameNode(nn): 存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个 ...

  6. HDFS体系结构:(Distributed File System)

    分布式系统的大概图 服务器越来越多,客户端对服务器的管理就会越来越复杂,客户端如果是我们用户,就要去记住大量的ip. 对用户而言访问透明的就是分布式文件系统. 分布式文件系统最大的特点:数据存储在多台 ...

  7. Yandex Big Data Essentials Week1 Scaling Distributed File System

    GFS Key Components components failures are a norm even space utilisation write-once-read-many GFS an ...

  8. Ceph: A Scalable, High-Performance Distributed File System译文

    原文地址:陈晓csdn博客 http://blog.csdn.net/juvxiao/article/details/39495037 论文概况 论文名称:Ceph: A Scalable, High ...

  9. 5105 pa3 Distributed File System based on Quorum Protocol

    1 Design document 1.1 System overview We implemented a distributed file system using a quorum based ...

随机推荐

  1. Linux-ansible批量管理

    1.ansible批量管理服务概念 (1)是基于Python语言开发的自动化软件工具 (2)是基于SSH远程管理服务实现远程主机批量管理 2.ansible批量管理服务意义 (1)提高工作的效率 (2 ...

  2. 2、centos6和centos7的区别

    services使用了systemd来代替sysvinit管理. systemd是Linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证 ...

  3. .net获取项目根目录方法集合

    这篇文章是别的博客复下来,收藏的: 编写程序的时候,经常需要用的项目根目录.自己总结如下 1.取得控制台应用程序的根目录方法     方法1.Environment.CurrentDirectory ...

  4. Centos7搭建k8s集群

    一.部署环境 操作系统:CentOS Linux release 7.6.1810 (Core) 安装软件: docker:18.06.3-ce kubernetes:v1.15.4 二.部署架构: ...

  5. 12.10File类

    要点提示:File类包含了获得一个文件/目录的属性,以及对文件/目录进行改名和删除的方法. 在文件系统中,每个文件都存放在一个目录下.绝对文件名,是由文件名和它的完整路径以及驱动器字母组成.例如,c: ...

  6. Redhat 6.9 升级SSH到OpenSSH_8.6p1完整文档

    这个文章是转载,原文连接在这个:https://www.cnblogs.com/xshrim/p/6472679.html 这个问题遇到过,下面可以解决 ----------------------- ...

  7. 一道内部ctf文件包含题

    拿到题目 在burp里看下 拿到源码 很明显是一道文件包含题目,包含cookie里的值,于是构造Cookie:language=chinese试试   文件变成中文的了,说明中文语言进行了包含并替换 ...

  8. Linux之19——Shell编程基础详解

    第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...

  9. Jmeter使用笔记001

    Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件. jmeter也可以用来做接口自动化 一.jmeter基础 1.1 jmeter的执行顺序 1,执行配置元件2,前置处 ...

  10. C语言:九宫格改进

    #include <stdio.h> /* 如下排列表示 A00 A01 A02 A10 A11 A12 A20 A21 A22 */ unsigned char array[3][3] ...