目录

一、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. 区分DDD中的Domain, Subdomain, Bounded Context, Problem/Solution Space

    区分DDD中的Domain, Subdomain, Bounded Context, Problem/Solution Space 译自: Domain, Subdomain, Bounded Con ...

  2. 5、cobbler搭建本地saltstack yum仓库

    5.1.安装cobbler: 参考"linux运维_集群_01(35.cobbler自动化安装操作系统:)" 5.2.cobbler yum源常用操作命令: cobbler rep ...

  3. sys用户权限不足,本地登录失败 |ORA-01031 insufficient privileges|

    机器总喜欢挑放假的时候出问题,"双节"(中秋.国庆)快到了,对于搞系统运维的工程师来说其实并不轻松,于是今天赶紧装起一台数据库备用服务器以备半夜"机"叫. 安装 ...

  4. Ubuntu 更换内核

    Ubuntu 更换内核步骤: 下载内核源码,例如wget https://git.kernel.org/torvalds/t/linux-4.17-rc2.tar.gz 按照需要的环境,sudo ap ...

  5. [Django REST framework - RBAC-基于角色的访问控制、base64编码 、xadmin的使用]

    [Django REST framework - RBAC-基于角色的访问控制.base64编码 .xadmin的使用] RBAC-基于角色的访问控制 RBAC 是基于角色的访问控制(Role-Bas ...

  6. maevn的nexus私库搭建

    使用nexus搭建maven仓库(本地私服) 前言:我们在使用maven的时候,对于项目所依赖的jar包,maven默认会在中央仓库下载jar包,到本地的磁盘目录(如果没有配置则是用户目录下/.m2/ ...

  7. 使用Octotree插件在Edge上以树形结构浏览GitHub上的源码

    先预览效果左侧的目录通过点击,就可以到达对应的源码位置. 首先点击打开Edge中的浏览器扩展在右上角...=>点击扩展=>点击获取Microsoft Edge扩展按钮=>在左侧搜索所 ...

  8. Maven项目导入Intellij IDEA

    目录 1. 自动创建maven项目 2. 修改IDEA默认远程仓库,提高依赖包下载速度 3. 修改IDEA中maven设置 4. 将maven项目导入IDEA 坑:IDEA无法下载依赖包 1. 自动创 ...

  9. 传统.NET 4.x应用容器化体验(1)

    我们都知道.NET Core应用可以跑在Docker上,那.NET Framework 4.x应用呢?借助阿里云ECS主机(Windows Server 2019 with Container版本), ...

  10. Apache Superset 1.2.0教程 (三)—— 图表功能详解

    通过之前章节的学习,我们已经成功地安装了superset,并且连接mysql数据库,可视化了王者英雄的数据.使用的是最简单Table类型的图表,但是superset还支持非常多的图表类型. 本文我们将 ...