HDFS文件处理

(转自)HDFS常用命令 之“文件操作”

(1) 列出HDFS下的文件
/usr/local/hadoop$bin/hadoop dfs -ls
(2) 列出HDFS文件下名为in的文档中的文件
/usr/local/hadoop$bin/hadoop dfs -ls in
(3) 上传文件

将hadoop目录下的test1文件上传到HDFS上并重命名为test:

/usr/local/hadoop$bin/hadoop dfs -put test1 test
(4) 文件被复制到本地系统中

将HDFS中的in文件复制到本地系统并命名为getin:

/usr/local/hadoop$bin/hadoop dfs -get in getin
(5) 删除文档

删除HDFS下名为out的文档:

/usr/local/hadoop$bin/hadoop dfs -rmr out
(6) 查看文件

查看HDFS下in文件中的内容:

/usr/local/hadoop$bin/hadoop dfs -cat in/*
(7) 建立目录
/usr/local/hadoop$bin/hadoop dfs -mkdir /user/hadoop/examples(目录/目录名)

只能一级一级的建目录。

(8) 复制文件
/usr/local/hadoop$bin/hadoop dfs -copyFromLocal 源路径 路径
(9)通过Hadoop命令把两个文件的内容合并起来

hdfs dfs -getmerge 位于hdfs中的原文件(里面有多个文件) 合并后的文件名
例如:

hdfs dfs -getmerge hdfs://Master:9000/data/SogouResult.txt CombinedResult

注:合并后的文件位于当前目录,不在hdfs中,是本地文件
原文链接: http://www.cnblogs.com/gaopeng527/p/4314215.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HDFS中,小文件指的是文件大小远小于HDFS块大小(默认为128MB)的文件。由于HDFS是为了存储大型文件而设计的,因此存储大量小文件会导致以下问题: 1. 占用过多的NameNode内存:每个文件都需要在NameNode上维护一个元数据信息,包括文件名、权限、大小、块信息等,因此大量小文件会占用过多的NameNode内存,导致性能下降。 2. 影响数据处理效率:由于小文件数量众多,每个文件的读取和写入操作都会产生额外的开销,导致数据处理效率低下。 为了解决这些问题,可以采取以下方案来处理文件: 1. 合并小文件:将多个小文件合并为一个大文件,可以减少NameNode内存的开销,提高数据处理效率。可以使用Hadoop提供的SequenceFile格式将多个小文件合并为一个大文件。 2. 将小文件存储在HBase中:HBase是基于HDFS的分布式数据库,可以存储海量小文件,并且可以支持快速随机访问。将小文件存储在HBase中,可以减轻HDFS的压力,提高数据处理效率。 3. 将小文件压缩:对于一些无法合并的小文件,可以考虑将它们压缩为一个文件Hadoop提供了多种压缩算法,如Gzip、Bzip2等,可以将小文件压缩为一个文件,减少磁盘空间的占用。 4. 使用Har文件:Har文件是一种特殊的归档文件格式,可以将多个小文件打包成一个文件,并且可以支持快速随机访问。可以将小文件打包为Har文件,减轻HDFS的压力,提高数据处理效率。 总之,对于HDFS中的小文件问题,需要根据实际情况选择合适的处理方法,以提高数据处理效率和系统性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值