基于key/value+Hadoop HDFS 设计的存储系统的shell命令接口
对于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。 |
|
创建文件夹,会创建路径中全部缺失的父文件夹。 |
(1)依照上述机制,逐层解析找到父文件夹,获取标记。假设父文件夹不存在则递归的创建路径上的文件夹。 (2)将父文件夹的标记作为key的父节点字段部分,创建新文件夹。 |
|
|
加入源文件从本地文件系统到目标文件系统。 |
(1)依照上述章节所述,逐层解析<dst>绝对路径,获取目标目录的key/value数据; (2)依据章节所述规则,结合目标目录的标号和源文件的文件名称生成相应的key/value; (3)依据步骤(2)生成的key/value上传源文件的相关信息; (4)上传源文件内容到系统中。 |
|
|
cat |
将路径指定文件的内容输出到stdout。 |
(1)依照上述机制,逐层解析path到目标文件,获取文件的key/value。 (2)依据key值在找到文件内容输出到stdout中。 (3)将结果在终端显示出来。 |
|
改变文件和文件夹的群组。 |
(1)依照上述机制,在Config server上的存储引擎中逐层读取K-V,直到获得所操作的文件名称/文件夹(或大文件元数据信息); (2)改动这个K-V中的value的表示群组的字段并又一次插入新的K-V。 |
|
|
chmod |
改变文件和文件夹的訪问权限。 |
(1)依照上述机制,在Config server上的存储引擎中逐层读取K-V,直到获得所操作的文件名称/文件夹(或大文件元数据信息); (2)改动这个K-V中的value的表示訪问权限的字段并又一次插入新的K-V。 |
|
变更文件和文件夹的拥有者。 |
(1)依照上述机制。在Config server上的存储引擎中逐层读取K-V,直到获得所操作的文件名称/文件夹(或大文件元数据信息)。 (2)改动这个K-V中的value的表示全部者的字段并又一次插入新的K-V。 |
|
|
copyFromLocal |
从本地文件系统中拷贝文件,和put命令相似。 |
操作流程參见put接口。 |
|
copToLocal |
将文件拷贝到本地文件系统。和get命令类似。 |
操作流程參见get接口。 |
|
显示由路径确定的子文件夹的个数,文件个数,使用字节个数。以及全部的文件文件夹名。 |
(1)解析到目标路径,获取相关的key/value; (2)获取value中的子文件夹个数,文件个数,使用字符串等相关信息的字段。 |
|
|
cp |
将文件从源路径拷贝到目标路径。这个命令同意有多个原路径,此时目标路径必须是一个文件夹。 |
(1)依据上述章节所述,逐层解析<dest>,获取目标文件的位置信息; (2)获取源文件的内容; (3)逐块复制源文件信息到目标文件其中。 |
|
du |
显示文件大小。假设path是一个文件夹,则显示该文件夹中全部文件的大小。 |
(1)依照上述机制,在Config server上的存储引擎中逐层读取K-V,直到获得文件名称或文件夹; (2)假设是文件读取对应的key/value中,读取value中表示文件大小的字段。假设是文件夹则读取标记,递归的查询属于该文件夹下的全部文件。 |
|
显示文件的大小,可是当作用于文件夹时,会显示文件大小之和。 |
(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的字段信息。 |
|
|
获取由源文件夹指定的全部文件。将它们合并为单个文件并写入本地文件系统中的LOCALDST。 |
(1)依照上述机制。逐层解析,获取源文件夹文件的标记; (2)依据标记。在config server中寻找文件夹文件下的子文件; (3)创建目标文件,将子文件的内容依次合并到目标文件其中; (4)将目标文件写入本地文件系统。 |
|
|
ls |
列出文件夹及文件信息。 |
(1)依照上述机制,逐层解析获取到目标文件或者目录的标记。 (2)依据标记查询子文件夹或者文件相关信息; (3)列出信息。 |
|
lsr |
循环列出文件夹。子文件夹及文件信息。 |
操作流程參见參照ls接口。 |
|
类似于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。 |
|
改变文件的目标副本系数。 |
(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命令接口的更多相关文章
- Hadoop HDFS 设计随想
目录 引言 HDFS 数据块的设计 数据块应该设置成多大? 抽象成数据块有哪些好处? 操作块信息的命令 HDFS 中节点的设计 有几种节点类型? 用户如何访问 HDFS? 如何对 namenode 容 ...
- HADOOP HDFS的设计
Hadoop提供的对其HDFS上的数据的处理方式,有以下几种, 1 批处理,mapreduce 2 实时处理:apache storm, spark streaming , ibm streams 3 ...
- 基于 ZooKeeper 搭建 Hadoop 高可用集群
一.高可用简介 二.集群规划 三.前置条件 四.集群配置 五.启动集群 六.查看集群 七.集群的二次启动 一.高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS ...
- Hadoop 学习之路(八)—— 基于ZooKeeper搭建Hadoop高可用集群
一.高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFS NameNode 对数据存储及其一致性的要求 ...
- Hadoop 系列(八)—— 基于 ZooKeeper 搭建 Hadoop 高可用集群
一.高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFS NameNode 对数据存储及其一致性的要求 ...
- 基于Eclipse的Hadoop应用开发环境配置
基于Eclipse的Hadoop应用开发环境配置 我的开发环境: 操作系统ubuntu11.10 单机模式 Hadoop版本:hadoop-0.20.1 Eclipse版本:eclipse-java- ...
- Hadoop HDFS负载均衡
Hadoop HDFS负载均衡 转载请注明出处:http://www.cnblogs.com/BYRans/ Hadoop HDFS Hadoop 分布式文件系统(Hadoop Distributed ...
- [python 译] 基于面向对象的分析和设计
[python 译] 基于面向对象的分析和设计 // */ // ]]> [python 译] 基于面向对象的分析和设计 Table of Contents 1 原文地址 2 引言 2.1 ...
- atitit.基于http json api 接口设计 最佳实践 总结o7
atitit.基于http json api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...
随机推荐
- Android Jackson 概述
原文地址 本文内容 JSON 的三种方式 示例 完全数据绑定(POJO)示例 "Raw"数据绑定示例 用泛型数据绑定 树模型(Tree Model)示例 流(Streaming)A ...
- Java并发编程 - 基本概念
在开始我们的并发编程前,我们必须预热一下,一些基本概念必须了解. 1. 同步(Synchronous) / 异步(Asynchronous) 同步和异步都指一次方法调用. 同步:方法开始后,调用者必须 ...
- NameNode的ZKFC机制
转自: http://hackershell.cn/?p=821 NameNode的HA可以个人认为简单分为共享editLog机制和ZKFC对NameNode状态的控制 在此之前,我先提几个问题: 一 ...
- 【自动化测试】基于IntelliJ IDEA的Gradle和testNG
这几篇文章值得一读: TestNG测试框架使用笔记:http://www.cnblogs.com/xguo/p/3300358.html TestNg官方文档:http://testng.org/do ...
- Gradle基本使用(1):安装、IDEA使用
安装配置Gradle Gradle 二进制版下载地址: https://gradle.org/install/ 下载后解压,并将 GRADLE_HOME/bin 添加到系统 path变量,即可: ...
- xampp 教程
xampp教程1 使用安装包进行安装 (目前有三种可供选择下载的XAMPP for Windows: 安装包 简单且安全:XAMPP 的便捷安装程序.) 使用安装包来安装XAMPP是最简单的方法. ...
- css改变hr颜色
html中用css改变颜色,<hr style="border:0;height:1px;">如果不加border:0;的话,虽然颜色改变了,但是会显示一条黑色的边框. ...
- k-means算法MATLAB和opencv代码
上一篇博客写了k-means聚类算法和改进的k-means算法.这篇博客就贴出相应的MATLAB和C++代码. 下面是MATLAB代码,实现用k-means进行切割: %%%%%%%%%%%%%%%% ...
- Linux文件系统操作
1:查看磁盘使用情况 df [-选项] 目录名 2:查看目录下文件大小 du 目录名称 3:实体链接 创建inode产生一个新文件名,链接到一个已有的文件. 限制:不能垮文件系统进行实体链接:不能链接 ...
- Centos 6下安装Oracle 11gR2
一.安装环境 CentOS release 6.7 (Final) Oracle Database 11g Release 2 二.安装前准备 #修改主机名 修改/etc/sysconfig/netw ...