专栏首页算法channelHDFS|Shell操作命令

HDFS|Shell操作命令

01

HDFS中常用的命令

HDFS文件操作常有两种方式;

  1. 命令行方式,即Hadoop提供了一套与Linux文件命令类似的命令行工具;
  2. JavaAPI,即利用Hadoop的Java库,采用编程的方式操作HDFS的文件。

Hadoop最常用的文件操作命令,包括添加文件和目录、获取文件、删除文件等。

看下Linux下的shell命令工具

HDFS命令基本格式:hadoop fs -cmd < args >

cmd是具体的文件操作命令,<args>是一组数目可变的参数。

02

添加文件和目录

HDFS有一个默认工作目录/usr/$USER,其中$USER是你的登录用户名,作者的用户名是root。该目录不能自动创建,需要执行 mkdir 命令创建。

hadoop fs -mkdir /usr/root

使用Hadoop的命令 put 将本地文件 README.txt 发送到HDFS。

hadoop fs -put README.txt .

注意上面这个命令最后一个参数是句点(.),这意味着把本地文件放入到默认的工作目录,该命令等价于:

hadoop fs -put README.txt /user/root

使用Hadoop的 ls 命令,即

hadoop fs -ls

列出hdfs文件系统根目录下的目录和文件

hadoop fs -ls -R /

列出hdfs文件系统所有的目录和文件

03

获取文件README.txt

获取文件包含两层意思:

  1. HDFS从本地文件中获取文件README.txt
  2. 本地文件从HDFS中获取文件README.txt,可以使用Hadoop的 get 命令。例如若本地文件没有README.txt文件(即文件不在当前的host中),需要从HDFS中取回,可以执行如下命令。

hadoop fs -get README.txt .

或者

hadoop fs -get README.txt /usr/root/README.txt

04

删除文件README.txt

Hadoop删除文件命令为 rm,这个和linux的命令 rm一致。例如要删除从本地文件上传的 README.txt,可以执行如下命令。

hadoop fs -rm README.txt

05

检索文件README.txt

检索文件即查阅HDFS中的文件内容,可以使用hadoop中的cat命令。例如要查阅README.txt的内容,可以执行如下命令。

hadoop fs -cat README.txt

另外,hadoop的 cat 命令的输出也可以使用管道传递给Unix 命令的head:

hadoop fs -cat README.txt | head

Hadoop也支持tail命令查看最后一千字节。例如要查阅README.txt最后一千个字节,可以执行如下命令。

hadoop fs -tail README.txt

06

help

要了解 ls 命令,可执行如下命令。

hadoop fs -help ls

07

命令索引

选项名称

使用格式

含义

-ls

-ls <路径>

查看指定路径的当前目录结构

-lsr

-lsr <路径>

递归查看指定路径的目录结构

-du

-du <路径>

统计目录下个文件大小

-dus

-dus <路径>

汇总统计目录下文件(夹)大小

-count

-count [-q] <路径>

统计文件(夹)数量

-mv

-mv <源路径> <目的路径>

移动

-cp

-cp <源路径> <目的路径>

复制

-rm

-rm [-skipTrash] <路径>

删除文件/空白文件夹

-rmr

-rmr [-skipTrash] <路径>

递归删除

-put

-put <多个linux上的文件> <hdfs路径>

上传文件

-copyFromLocal

-copyFromLocal <多个linux上的文件> <hdfs路径>

从本地复制

-moveFromLocal

-moveFromLocal <多个linux上的文件> <hdfs路径>

从本地移动

-getmerge

-getmerge <源路径> <linux路径>

合并到本地

-cat

-cat <hdfs路径>

查看文件内容

-text

-text <hdfs路径>

查看文件内容

-copyToLocal

-copyToLocal [-ignoreCrc] [-crc] [hdfs源路径] [linux目的路径]

从本地复制

-moveToLocal

-moveToLocal [-crc] <hdfs源路径> <linux目的路径>

从本地移动

-mkdir

-mkdir <hdfs路径>

创建空白文件夹

-setrep

-setrep [-R] [-w] <副本数> <路径>

修改副本数量

-touchz

-touchz <文件路径>

创建空白文件

-stat

-stat [format] <路径>

显示文件统计信息

-tail

-tail [-f] <文件>

查看文件尾部信息

-chmod

-chmod [-R] <权限模式> [路径]

修改权限

-chown

-chown [-R] [属主][:[属组]] 路径

修改属主

-chgrp

-chgrp [-R] 属组名称 路径

修改属组

-help

-help [命令选项]

帮助

更多shell命令,请参考官方文档:

http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html

本文分享自微信公众号 - 算法channel(alg-channel)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-01-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Oracle SCN HeadRoom分析与处理

    最近几家客户的Oracle数据库开始集中爆发SCN HeadRoom问题,虽然SCN不会真正用完,但是数据库触碰到headroom天花板,还是可能有意想不到的情...

    沃趣科技
  • 替代crontab,统一定时任务管理系统cronsun简介

    摘 要 cronsun 是一个分布式任务系统,单个节点和 Linux 机器上的 crontab 近似。是为了解决多台 Linux  机器上 crontab 任...

    张戈
  • 区块链和网络战:为什么下一波银行同业结算系统将是分散式的

    虽然经常混淆,但这些概念还是稍有不同的。你可以分散管理你的银行同业支付系统,而不允许他人数字化接入中央银行的资产负债表,反之亦然。

    约书亚
  • Go 语言构建高并发分布式系统实践

    你知道互联网最抢手的技术人才有哪些吗?最新互联网职场生态报告显示,最抢手的十大互联网技术人才排名中Go语言开发人员位居第三,从中不难见得,Go语言的渗透率越来越...

    李海彬
  • 谈谈go语言编程的并发安全

    问题起因 在分布式存储开源项目 Weed-FS 中, 我发现了一个地方非并发安全(not concurrency-safety), 所以提交了一个 Weed-F...

    李海彬
  • 研报:国外智慧城市实践可以为我国提供哪些经验?

    T客汇官网:tikehui.com 撰文 |徐婧欣 ? 国外智慧城市的建设已经取得初步成果,并且集群效应对于经济转型也起到了重要的推动作用,同时在基础设施、产业...

    人称T客
  • NSQ:分布式的实时消息平台--简介

    源码下载地址: https://github.com/bitly/nsq NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,代码托管在Gi...

    李海彬
  • CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放

    张戈博客很久以前分享过一个CC 攻击的防御脚本,写得不怎么样,不过被 51CTO 意外转载了。博客从此走上了经常被人拿来练手的不归之路。 当然,还是有不少朋友在...

    张戈
  • 给云计算泼冷水之时,不得不承认它确实做了这些事..

    云计算自“诞生”以来,业内不乏有唱衰的声音。技术的发展使得云计算早已脱胎换骨,从模糊的概念演进为切实的应用产品以及服务,云计算作为一种技术架构包含了虚拟化、自动...

    静一
  • 云端新感受背后 盘点云服务那些关键技术

    1 概述、虚拟化技术 【PConline 杂谈】云计算技术说新其实也不新了,伴随着近几年云计算技术的不断成熟和快速发展,已经在很多行业当中都能够看到云计算带来的...

    静一

扫码关注云+社区

领取腾讯云代金券