您的位置 首页 java

借助HDFS自己做简易的网盘

之前一期讲过 hadoop HDFS 文件系统的原理,这一期讲讲他的应用。HDFS作为当下流行的 分布式 文件存储系统,其对海量数据的高效存储是其被广泛应用的重要原因。生活中用到这一框架的技术相当之多,我们熟悉的百度云网盘就是其重要应用。 百度云 的实现就是借助HDFS,今天小编就带大家做一个简单的网盘存储后台实现。

在开始之前我们先明确一点,无论是哪种文件的上传或者下载其实归根结底都是字节流、字符流的输入输出。对于上传文件,其过程便是从本地用InputStream读取数据,再用OutputStream江都区的数据写入目标文件。下载文件也是一个道理,不过是将输入输出的方向改一下变成从云端读取写入本地。

代码实现异常简单,只需要大致了解Hadoop.HDFS的几个接口就可以写出来:

借助HDFS自己做简易的网盘

可能初次看这些有点懵逼,我给大家解释一下。首先该方法是上传文件的方法,两个参数不多说,一个是本地文件路径和目标文件路径。

接下来的 Configuration 是加载配置文件,这一过程封装在hadoop.hdfs.conf中,获取HDFS的各项信息方便上传。

接下来的两个Path是将传入的两个String类型的路径 实例化 为hadoop.hdfs.path的路径。

文件路径有了,接下来就是从本地文件系统上传到HDFS中。这就用到了HDFS广泛使用的FileSystem接口,该接口通过getLocal(Configuration conf)函数传入Configuration对象为参数获取本地文件系统实例。之后通过get(Configuration conf)函数同样传入Configuration对象获得HDFS实例。

之后的过程就是输入输出流配合上传文件。注意hadoop用到的输入输出流不是Java的输入输出流,而是其自身的FSDataInputStream和FSDataOutputStream,但方法还是和Java的IO流大同小异。期间用到的FileStatus也是hdfs自身的类,作用是获取文件状态信息,如路径,大小等。

上面写到的只是文件上传的方法,文件下载不过是将路径颠倒一下,输入输出的方向颠倒一下的事,广大读者可以自己敲一下试试。

文章来源:智云一二三科技

文章标题:借助HDFS自己做简易的网盘

文章地址:https://www.zhihuclub.com/177381.shtml

关于作者: 智云科技

热门文章

网站地图