Hadoop (HDFS)分布式文件系统基本操作

2019-03-28 13:44|来源: 网络

Hadoop HDFS提供了一组命令集来操作文件,它既可以操作Hadoop分布式文件系统,也可以操作本地文件系统。但是要加上theme(Hadoop文件系统用hdfs://,本地文件系统用file://)

1. 添加文件和目录

比如我们要在Hadoop 文件系统中创建一个目录叫 /user/hadoop-user ,则

hadoop fs -mkdir /user/hadoop-user

要查看我们创建的目录,

hadoop fs -ls / 

Hadoop HDFS

Hadoop HDFS

或者用 hadoop fs -lsr /  递归的显示子目录

如果我们要把一个文件从本地文件系统复制到HDFS:

比如我们在/tmp/charles目录下有个文件叫 textfile.txt,那么我们想上传到HDFS中我们刚才创建的/user/hadoop-user目录下:

hadoop fs -put /tmp/charles/textfile.txt /user/hadoop-user

我们用 hadoop fs -ls 来查看是否这个文件已经被添加:

Hadoop HDFS

因为我们在hadoop的hdfs-site.xml中设置了replication-factor为1,所以这里只存一个备份,显示1

如果我们要把文件从HDFS复制到本地文件系统:

比如我们要把刚才复制过来的文件textfile.txt复制到本地目录下/tmp/charles2:

hadoop fs -get /user/hadoop-user/textfile.txt  /tmp/charles2/textfile.txt

我们检查本地文件系统,果然发现文件从HDFS 复制过来了。

Hadoop HDFS

如果我们要查看HDFS文件系统的某个文件:

hadoop fs -cat textfile.txt

Hadoop HDFS

如果我们要从HDFS文件系统中删除某个文件:

hadoop fs -rm textfile.txt

Hadoop HDFS

此时我们再去检查HDFS文件系统,文件已经不存在了。

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

相关问答

更多
  • 1、能搭好环境说明水平还不错。 2、下边应该分以下几步走: 一,依据示例程序,自己手写wordcount之类的示例程序,以此充分了解m/r和hdfs的简单原理。 二,针对某些知识点,如hadoop应用场景、hadoop的简单应用等,去百度一下搞定,这样的问题最关键、最需要做的。 三,深入阅读hadoop的源码,把框架的数据流或说工作流搞个大致清楚。 四,试着用hadoop解决一些实际问题和项目应用。 参考下吧。
  • 常见的分布式文件系统有,GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自适用于不同的领域。它们都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。 GFS(Google File System) -------------------------------------- Google公司为了满足本公司需求而开发的基于Linux的专有分布式文件系统。。尽管Google公布了该系统的一些技术细节,但Google并没有将该系统的软件部分作为 ...
  • 若在windows的Eclipse工程中直接启动mapreduc程序,需要先把hadoop集群的配置目录下的xml都拷贝到src目录下,让程序自动读取集群的地址后去进行分布式运行(您也可以自己写java代码去设置job的configuration属性)。   若不拷贝,工程中bin目录没有完整的xml配置文件,则windows执行的mapreduce程序全部通过本机的jvm执行,作业名也是带有“local"字眼的作业,如 job_local2062122004_0001。 这不是真正的分布式运行mapred ...
  • 搭建的文本,很久了,现在更新的最新版本搭建更加简单,建议你去看看黑马里边的教程,免费的
  • hadoop集群指的是一群机器在一起提供一个hadoop的集群的服务。 hadoop分布式指的是hadoop支持任务分布式运行,因为有hadoop集群提供服务,所以hadoop将任务分发到集群的多台机器运行,所以叫做分布式。 一个是服务器架构,一个是任务运行架构。
  • 原因: 你访问的是本地文件系统而非hdfs , 因为Configuration默认的是在core-default.xml中的属性fs.default.name默认值是file:///,表示本地文件系统。在我们new Configuration();时会默认加载core-default.xml文件,所以根据这个文件的fs.default.name值使用了本地文件系统。 解决方法: 一般安装hadoop时都是修改core-site.xml文件,这个文件设置的属性值一般使用来覆盖core-default.xml这 ...
  • 这个很简单啊,你在写路径的时候必须是绝对路径 所有前面肯定有"/home"的啊, 所以你在使用路径前先拼接个workDir Path workDir = h.getWorkingDirectory();// h是你得到的hdfs文件系统的句柄
  • 是的,这是可能的,虽然我使用0.19.2。 我对0.18.3不太熟悉,但我确信它不应该有所作为。 只要确保将fs.default.name设置为默认值(这是file:/// ),并将mapred.job.tracker设置为指向托管jobtracker的位置。 然后使用bin / start-mapred.sh启动守护进程。 您不需要启动namenode或datanode。 在这一点上,你应该能够使用bin/hadoop jar ...来运行你的map / reduce作业bin/hadoop jar .. ...
  • Solr(主要)用于存储和搜索,Hadoop(主要)用于分布式处理。 他们解决不同的问题。 最常见的是使用Solr和HDFS来存储/加载其索引文件 ,以便使用HDFS集群中的现有功能,或者允许通过Solr搜索已处理的Hadoop结果 。 如果您在Google上进行一些搜索,您会发现很多用例,演示文稿和库,例如LucidWorks的Hadoop集成 , Solr + Hadoop或Hortonworks的索引以及在Apache Solr中搜索数据 。 Solr is (mainly) for storage ...
  • 绝对可能。 不要认为Hadoop是一个可安装的程序,它只是由一群在集群内不同节点上运行的java进程组成。 如果你使用hadoop tar ball,你可以只运行NameNode和DataNodes进程,如果你只想要HDFS。 如果您使用其他hadoop发行版(例如HDP),我认为HDFS和mapreduce来自不同的rpm软件包,但安装两个rpm软件包都有害。 如果您只需要HDFS,请再次运行NameNode和DataNodes。 Absolutely possible. Don't think Hado ...