对于hadoop HDFS 中的全部命令进行解析(当中操作流程是自己的想法有不允许见欢迎大家指正)

接口名称

功能

操作流程

get

将文件拷贝到本地文件系统 。

假设指定了多个源文件,本地目的端必须是一个文件夹。

(1)依照上述机制,在Config server上的存储引擎中逐层读取K-V,直到获得文件名称(或大文件元数据信息);

(2)依据文件名称(或大文件元数据信息)到对应的Data server中获取对应的文件(大文件须要拼接);

(3)将获取的文件写入本地文件系统。

put

从本地文件系统中拷贝文件或文件夹到目标文件系统。

(1)依照上述章节所述,逐层解析<dst>绝对路径,获取目标目录的key/value数据。

(2)依据章节所述规则。结合目标目录的标号和源文件的文件名称生成相应的key/value;

(3)依据步骤(2)生成的key/value上传源文件的相关信息。

(4)上传源文件内容到系统中。

rm

删除指定的文件。仅仅删除非空文件夹和文件。

(1)依据上述章节所述,逐层解析到目标文件所在的位置获取指定文件的key/value。

(2)依据key找到指定的文件或文件夹所在的DataNode上存储的信息;

(3)删除信息。

(4)将删除记录写入edit log。

mkdir

创建文件夹,会创建路径中全部缺失的父文件夹。

(1)依照上述机制,逐层解析找到父文件夹,获取标记。假设父文件夹不存在则递归的创建路径上的文件夹。

(2)将父文件夹的标记作为key的父节点字段部分,创建新文件夹。

appendToFile

加入源文件从本地文件系统到目标文件系统。

(1)依照上述章节所述,逐层解析<dst>绝对路径,获取目标目录的key/value数据;

(2)依据章节所述规则,结合目标目录的标号和源文件的文件名称生成相应的key/value;

(3)依据步骤(2)生成的key/value上传源文件的相关信息;

(4)上传源文件内容到系统中。

cat

将路径指定文件的内容输出到stdout。

(1)依照上述机制,逐层解析path到目标文件,获取文件的key/value。

(2)依据key值在找到文件内容输出到stdout中。

(3)将结果在终端显示出来。

chgrp

改变文件和文件夹的群组。

(1)依照上述机制,在Config server上的存储引擎中逐层读取K-V,直到获得所操作的文件名称/文件夹(或大文件元数据信息);

(2)改动这个K-V中的value的表示群组的字段并又一次插入新的K-V。

chmod

改变文件和文件夹的訪问权限。

(1)依照上述机制,在Config server上的存储引擎中逐层读取K-V,直到获得所操作的文件名称/文件夹(或大文件元数据信息);

(2)改动这个K-V中的value的表示訪问权限的字段并又一次插入新的K-V。

chown

变更文件和文件夹的拥有者。

(1)依照上述机制。在Config server上的存储引擎中逐层读取K-V,直到获得所操作的文件名称/文件夹(或大文件元数据信息)。

(2)改动这个K-V中的value的表示全部者的字段并又一次插入新的K-V。

copyFromLocal

从本地文件系统中拷贝文件,和put命令相似。

操作流程參见put接口。

copToLocal

将文件拷贝到本地文件系统。和get命令类似。

操作流程參见get接口。

count

显示由路径确定的子文件夹的个数,文件个数,使用字节个数。以及全部的文件文件夹名。

(1)解析到目标路径,获取相关的key/value;

(2)获取value中的子文件夹个数,文件个数,使用字符串等相关信息的字段。

cp

将文件从源路径拷贝到目标路径。这个命令同意有多个原路径,此时目标路径必须是一个文件夹。

(1)依据上述章节所述,逐层解析<dest>,获取目标文件的位置信息;

(2)获取源文件的内容;

(3)逐块复制源文件信息到目标文件其中。

du

显示文件大小。假设path是一个文件夹,则显示该文件夹中全部文件的大小。

(1)依照上述机制,在Config server上的存储引擎中逐层读取K-V,直到获得文件名称或文件夹;

(2)假设是文件读取对应的key/value中,读取value中表示文件大小的字段。假设是文件夹则读取标记,递归的查询属于该文件夹下的全部文件。

dus

显示文件的大小,可是当作用于文件夹时,会显示文件大小之和。

(1)依照上述机制,在Config server上的存储引擎中逐层读取K-V,直到获得文件名称或文件夹。

(2)假设是文件读取对应的key/value中。读取value中表示文件大小的字段,假设是文件夹则读取标记,递归的查询属于该文件夹下的全部文件value信息,将value中关于文件大小的字段信息相加取和。

expunge

清空回收站。

(1)依照上述机制,解析到HDFS系统回收站文件夹下(/user/username/.Trash/current);

(2)删除(參考接口rm)。

getfacl

显示文件和文件夹的訪问控制列表

(1)依照上述章节所述。逐层解析,获取目标文件或路径的key/value数据。

(2)获取value中有关的ACL的字段信息。

getmerge

获取由源文件夹指定的全部文件。将它们合并为单个文件并写入本地文件系统中的LOCALDST

(1)依照上述机制。逐层解析,获取源文件夹文件的标记;

(2)依据标记。在config server中寻找文件夹文件下的子文件;

(3)创建目标文件,将子文件的内容依次合并到目标文件其中;

(4)将目标文件写入本地文件系统。

ls

列出文件夹及文件信息。

(1)依照上述机制,逐层解析获取到目标文件或者目录的标记。

(2)依据标记查询子文件夹或者文件相关信息;

(3)列出信息。

lsr

循环列出文件夹。子文件夹及文件信息。

操作流程參见參照ls接口。

moveFromLocal

类似于put,仅仅是本地的源在复制之后会被删除。

1)依照上述章节所述,逐层解析<dst>绝对路径,获取目标目录的key/value数据;

(2)依据章节所述规则,结合目标目录的标号和源文件的文件名称生成相应的key/value;

(3)依据步骤(2)生成的key/value上传源文件的相关信息;

(4)上传源文件内容到系统中;

(5)删除本地源文件。

moveToLocal

于get命令类似。

操作流程參见get接口。

mv

移动文件从源地址到目标地址。

(1)依照上述机制,逐层解析<dest>绝对路径获取目标目录的标号。

(2)逐层解析到源文件获取源文件的key/value数据;

(3)更改源文件里的key值将当中的父节点标号字段改为目标目录的标号。

rmr

递归删除指定文件和文件夹。

(1)依照上述机制。逐层解析到目标文件所在的位置获取指定文件的标记;

(2)採用递归算法依据标记删除指定的文件或文件夹。

setfacl

设置訪问控制列表(acl)的文件和文件夹。

(1)依照上述机制,逐层解析。获取目标文件或路径的key/value数据;

(2)设置value中的ACL。

setrep

改变文件的目标副本系数。

(1)依照上述章节所述,逐层解析。获取目标文件的key/value数据。

(2)改动value中有关副本系数的字段。

stat

显示文件里的统计信息。

(1)依照上述章节所述,逐层解析。获取目标文件的key/value数据;

(2)获取value中关于文件的统计信息的相关字段。

tail

显示目标文件里的最后1KB数据。

(1)依照上述章节所述,逐层解析,获取目标文件的key/value数据。

(2)依据所得到的key/value查询最后一块中的1KB信息,假设最后一块不足1KB,则查询倒数第二块中信息,拼接成1KB。返回信息。

test

对路径进行检查。

(1)依照上述章节所述。对目标路径逐层解析,获取目标文件的key/value数据。

(2)检查目标文件里的key/value中的相关字段。以检測文件是否存在。大小是否为0,文件夹路径是否存在。

text

显示文件的文本内容,当文件为文本文件时,等同于cat。文件为压缩格式时,会先解压缩。

操作流程參见cat接口。

touchz

创建长度为0的文件。

操作流程參见mkdir接口。

基于key/value+Hadoop HDFS 设计的存储系统的shell命令接口的更多相关文章

  1. Hadoop HDFS 设计随想

    目录 引言 HDFS 数据块的设计 数据块应该设置成多大? 抽象成数据块有哪些好处? 操作块信息的命令 HDFS 中节点的设计 有几种节点类型? 用户如何访问 HDFS? 如何对 namenode 容 ...

  2. HADOOP HDFS的设计

    Hadoop提供的对其HDFS上的数据的处理方式,有以下几种, 1 批处理,mapreduce 2 实时处理:apache storm, spark streaming , ibm streams 3 ...

  3. 基于 ZooKeeper 搭建 Hadoop 高可用集群

    一.高可用简介 二.集群规划 三.前置条件 四.集群配置 五.启动集群 六.查看集群 七.集群的二次启动 一.高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS ...

  4. Hadoop 学习之路(八)—— 基于ZooKeeper搭建Hadoop高可用集群

    一.高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFS NameNode 对数据存储及其一致性的要求 ...

  5. Hadoop 系列(八)—— 基于 ZooKeeper 搭建 Hadoop 高可用集群

    一.高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFS NameNode 对数据存储及其一致性的要求 ...

  6. 基于Eclipse的Hadoop应用开发环境配置

    基于Eclipse的Hadoop应用开发环境配置 我的开发环境: 操作系统ubuntu11.10 单机模式 Hadoop版本:hadoop-0.20.1 Eclipse版本:eclipse-java- ...

  7. Hadoop HDFS负载均衡

    Hadoop HDFS负载均衡 转载请注明出处:http://www.cnblogs.com/BYRans/ Hadoop HDFS Hadoop 分布式文件系统(Hadoop Distributed ...

  8. [python 译] 基于面向对象的分析和设计

    [python 译] 基于面向对象的分析和设计 // */ // ]]>   [python 译] 基于面向对象的分析和设计 Table of Contents 1 原文地址 2 引言 2.1 ...

  9. atitit.基于http json api 接口设计 最佳实践 总结o7

    atitit.基于http  json  api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...

随机推荐

  1. Android Jackson 概述

    原文地址 本文内容 JSON 的三种方式 示例 完全数据绑定(POJO)示例 "Raw"数据绑定示例 用泛型数据绑定 树模型(Tree Model)示例 流(Streaming)A ...

  2. Java并发编程 - 基本概念

    在开始我们的并发编程前,我们必须预热一下,一些基本概念必须了解. 1. 同步(Synchronous) / 异步(Asynchronous) 同步和异步都指一次方法调用. 同步:方法开始后,调用者必须 ...

  3. NameNode的ZKFC机制

    转自: http://hackershell.cn/?p=821 NameNode的HA可以个人认为简单分为共享editLog机制和ZKFC对NameNode状态的控制 在此之前,我先提几个问题: 一 ...

  4. 【自动化测试】基于IntelliJ IDEA的Gradle和testNG

    这几篇文章值得一读: TestNG测试框架使用笔记:http://www.cnblogs.com/xguo/p/3300358.html TestNg官方文档:http://testng.org/do ...

  5. Gradle基本使用(1):安装、IDEA使用

    安装配置Gradle Gradle 二进制版下载地址: https://gradle.org/install/ 下载后解压,并将 GRADLE_HOME/bin  添加到系统 path变量,即可:   ...

  6. xampp 教程

    xampp教程1 使用安装包进行安装 (目前有三种可供选择下载的XAMPP for Windows: 安装包   简单且安全:XAMPP 的便捷安装程序.) 使用安装包来安装XAMPP是最简单的方法. ...

  7. css改变hr颜色

    html中用css改变颜色,<hr style="border:0;height:1px;">如果不加border:0;的话,虽然颜色改变了,但是会显示一条黑色的边框. ...

  8. k-means算法MATLAB和opencv代码

    上一篇博客写了k-means聚类算法和改进的k-means算法.这篇博客就贴出相应的MATLAB和C++代码. 下面是MATLAB代码,实现用k-means进行切割: %%%%%%%%%%%%%%%% ...

  9. Linux文件系统操作

    1:查看磁盘使用情况 df [-选项] 目录名 2:查看目录下文件大小 du 目录名称 3:实体链接 创建inode产生一个新文件名,链接到一个已有的文件. 限制:不能垮文件系统进行实体链接:不能链接 ...

  10. Centos 6下安装Oracle 11gR2

    一.安装环境 CentOS release 6.7 (Final) Oracle Database 11g Release 2 二.安装前准备 #修改主机名 修改/etc/sysconfig/netw ...