本文源码:GitHub·点这里 || GitEE·点这里

一、HDFS基本概述

1、HDFS描述

大数据领域一直面对的两大核心模块:数据存储,数据计算,HDFS作为最重要的大数据存储技术,具有高度的容错能力,稳定而且可靠。HDFS(Hadoop-Distributed-File-System),它是一个分布式文件系统,用于存储文件,通过目录树来定位文件;设计初衷是管理数成百上千的服务器与磁盘,让应用程序像使用普通文件系统一样存储大规模的文件数据,适合一次写入,多次读出的场景,且不支持文件的修改,适合做数据分析。

2、基础架构

HDFS具有主/从体系结构,有两个核心组件,NameNode与DataNode。

NameNode

负责文件系统的元数据(MetaData)管理,即文件路径名、数据块ID、存储位置等信息,并配置副本策略,处理客户端读写请求。

DataNode

执行文件数据的实际存储和读写操作,每个DataNode存储一部分文件数据块,文件整体分布存储在整个HDFS服务器集群中。

Client

客户端,文件切分上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行上传;从NameNode获取文件的位置信息;与DataNode通信读取或者写入数据; Client通过一些命令来访问或管理HDFS。

Secondary-NameNode

不是NameNode的热备,但是分担NameNode工作量,比如定期合并Fsimage和Edits,并推送给NameNode;在紧急情况下,可辅助恢复NameNode。

3、高容错性

数据块多份复制存储的示意,文件/users/sameerp/data/part-0,复制备份设置为2,存储的block-ids分别为1、3;文件/users/sameerp/data/part-1,复制备份设置为3,存储的block-ids分别为2、4、5;任何单台服务器宕机后,每个数据块至少还存在一个备份服务存活,不会影响对文件的访问,提高整体容错性。

HDFS中的文件在物理上是分块存储(Block),块的大小可以通过参数dfs.blocksize来配置,块设置太小,会增加寻址时间;块设置的太大,从磁盘传输数据的时间会很慢,HDFS块的大小设置主要取决于磁盘传输速率。

二、基础Shell命令

1、基础命令

查看Hadoop下相关Shell操作命令。

[root@hop01 hadoop2.7]# bin/hadoop fs
[root@hop01 hadoop2.7]# bin/hdfs dfs

dfs是fs的实现类

2、查看命令描述

[root@hop01 hadoop2.7]# hadoop fs -help ls

3、递归创建目录

[root@hop01 hadoop2.7]# hadoop fs -mkdir -p /hopdir/myfile

4、查看目录

[root@hop01 hadoop2.7]# hadoop fs -ls /
[root@hop01 hadoop2.7]# hadoop fs -ls /hopdir

5、剪贴文件

hadoop fs -moveFromLocal /opt/hopfile/java.txt /hopdir/myfile
## 查看文件
hadoop fs -ls /hopdir/myfile

6、查看文件内容

## 查看全部
hadoop fs -cat /hopdir/myfile/java.txt
## 查看末尾
hadoop fs -tail /hopdir/myfile/java.txt

7、追加文件内容

hadoop fs -appendToFile /opt/hopfile/c++.txt /hopdir/myfile/java.txt

8、拷贝文件

copyFromLocal命令和put命令相同

hadoop fs -copyFromLocal /opt/hopfile/c++.txt /hopdir

9、HDFS文件拷贝到本地

hadoop fs -copyToLocal /hopdir/myfile/java.txt /opt/hopfile/

10、HDFS内拷贝文件

hadoop fs -cp /hopdir/myfile/java.txt /hopdir

11、HDFS内移动文件

hadoop fs -mv /hopdir/c++.txt /hopdir/myfile

12、合并下载多个文件

基础命令get和copyToLocal命令效果相同。

hadoop fs -getmerge /hopdir/myfile/* /opt/merge.txt

13、删除文件

hadoop fs -rm /hopdir/myfile/java.txt

14、查看文件夹信息

hadoop fs -du -s -h /hopdir/myfile

15、删除文件夹

bin/hdfs dfs -rm -r /hopdir/file0703

三、源代码地址

GitHub·地址
https://github.com/cicadasmile/big-data-parent
GitEE·地址
https://gitee.com/cicadasmile/big-data-parent

推荐阅读:编程体系整理

序号 项目名称 GitHub地址 GitEE地址 推荐指数
01 Java描述设计模式,算法,数据结构 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
02 Java基础、并发、面向对象、Web开发 GitHub·点这里 GitEE·点这里 ☆☆☆☆
03 SpringCloud微服务基础组件案例详解 GitHub·点这里 GitEE·点这里 ☆☆☆
04 SpringCloud微服务架构实战综合案例 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
05 SpringBoot框架基础应用入门到进阶 GitHub·点这里 GitEE·点这里 ☆☆☆☆
06 SpringBoot框架整合开发常用中间件 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
07 数据管理、分布式、架构设计基础案例 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
08 大数据系列、存储、组件、计算等框架 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆

Hadoop框架:HDFS简介与Shell管理命令相关推荐

  1. hdfs复制文件夹_Hadoop框架:HDFS简介与Shell管理命令

    一.HDFS基本概述 1.HDFS描述 大数据领域一直面对的两大核心模块:数据存储,数据计算,HDFS作为最重要的大数据存储技术,具有高度的容错能力,稳定而且可靠.HDFS(Hadoop-Distri ...

  2. 安装完Hadoop之后,命令行输入hadoop或hdfs却找不到命令的解决方法

    安装完Hadoop之后,命令行输入hadoop或hdfs却找不到命令的解决方法 参考文章: (1)安装完Hadoop之后,命令行输入hadoop或hdfs却找不到命令的解决方法 (2)https:// ...

  3. Hadoop之HDFS简介

    女主宣言 HDFS作为运行在通用硬件上的分布式文件系统,和现有的分布式文件系统既有很多的共同点,也存在很多的差异.本文从HDFS是什么开始介绍,包括了HDFS架构.HDFS的读写.各个组件的作用.具体 ...

  4. hadoop fs命令无法使用_「大数据」「Hadoop」HDFS的配置与管理

    HDFS(Hadoop Distributed File System)是Hadoop三个基础组件之一,为另外的组件以及大数据生态中的其他组件提供了最基本的存储功能,具有高容错.高可靠.可扩展.高吞吐 ...

  5. Hadoop 从HDFS中删除文件夹命令

    文件夹在HDFS上的位置 执行删除命令 hadoop fs -rm -r /gulivideo_etl 成功删除hdfs上的文件夹

  6. HBase :HBase高级shell管理命令

    Shell命令 status: 例如:显示服务器状态 hbase(main):058:0> status 'node01' whoami 显示HBase当前用户,例如: hbase> wh ...

  7. 深入理解Hadoop之HDFS架构

    Hadoop分布式文件系统(HDFS)是一种分布式文件系统.它与现有的分布式文件系统有许多相似之处.但是,与其他分布式文件系统的差异是值得我们注意的: ♦  HDFS具有高度容错能力,旨在部署在低成本 ...

  8. Hadoop之HDFS(一)HDFS入门及基本Shell命令操作

    1 . HDFS 基本概念 1.1  HDFS 介绍 HDFS 是 Hadoop Distribute File System 的简称,意为:Hadoop 分布式文件系统.是 Hadoop 核心组件之 ...

  9. BigData之Hadoop:Hadoop框架(分布式系统基础架构)的简介(两大核心【HDFS存储和MapReduce计算】)、深入理解、下载、案例应用之详细攻略

    BigData之Hadoop:Hadoop框架(分布式系统基础架构)的简介(两大核心[HDFS存储和MapReduce计算]).深入理解.下载.案例应用之详细攻略 目录 Hadoop的简介(分布式系统 ...

最新文章

  1. 解决nginx负载均衡的session共享问题
  2. 用户界面设计的技巧与技术 (作者Scott W.Ambler)
  3. MATLAB函数记录
  4. Android深度探索读书笔记 第六章
  5. Vue style里面使用@import引入外部css, 作用域是全局的解决方案
  6. Python_内置模块1
  7. CodeForces - 1521B Nastia and a Good Array
  8. Pikachu实验过程1(函数报错的信息)
  9. 解决win10下桌面右击新建没有文本文档(.txt)的问题
  10. DELMIA软件物流仿真:带曲线转角输送带输送物料的仿真操作方法
  11. 关于使用中如何实现数据的筛选的问题
  12. 人工智能工程化丨中小企业AI中台落地指南
  13. 每日英语-2018.12.3
  14. java练习题-猜数字游戏
  15. 我的大学(一)-----回顾与反思
  16. uview基本配置,在HubildX中如何配置uni-app相关的组件
  17. android什么意思!读完我这份《Android开发核心源码精编解析》面试至少多要3K!面试建议
  18. scrapy 简单教程
  19. Maven是主要干嘛的呢
  20. 快速排序算法原理 Quicksort —— 图解(精讲) JAVA

热门文章

  1. python审计分析_【干货】Python自动化审计及实现
  2. 计算机网络之网络层:3、IPv4地址
  3. (软件工程复习核心重点)第二章可行性研究-第一节:可行性研究基本介绍
  4. 8-4:C++继承之子类的默认构造函数如何使用
  5. 1295. 统计位数为偶数的数字
  6. poj3190 区间贪心 挑战程序设计竞赛
  7. Python pandas中DataFrame逐行读取的方法(pandas.core.frame.DataFrame类型)
  8. linux shell 清空文件,查看文件,写入文件
  9. CentOS64位下python2.6升级到2.7的详细教程
  10. 树:二叉树的非递归遍历算法