一 前言 截止到目前为止,虽然并不完美,但是JDFS已经初步具备了完整的分布式文件管理功能了,包括:文件的冗余存储.文件元信息的查询.文件的下载.文件的删除等.本文将对JDFS做一个总体的介绍,主要是介绍JDFS的整体架构,流程图等,另外还会介绍如何安装部署运行JDFS.当然正如前面几篇博客里笔者提到的,JDFS并不完美,有一些潜在的难以发现的bug偶尔会出现,这个有赖于后续的不断测试.调试来解决.如果你是第一次阅读JDFS系列博客,笔者建议先读一下该系列的另外几篇博客,其链接如下: JDFS:…
一 前言 本篇博客是JDFS系列博客的第四篇,从最初简单的上传.下载,到后来加入分布式功能,背后经历了大量的调试,尤其当实验的虚拟计算结点数目增加后,一些潜在的隐藏很深的bug就陆续爆发.在此之前笔者并没有网络编程的经验,大约半年之前读到unix环境高级编程的socket章节,然后就突然对网络编程产生了兴趣,于是后来就想着写一款http远程下载小工具(是笔者另外一篇博客,链接请点击我).再到后来,由于笔者之前读研期间接触过map-reduce,知道HDFS这个东西,于是突发奇想,不如自己动手写一…
一 前言 看了一下,距离上一篇博客的发表已经过去了4个月,时间过得好快啊.本篇博客是JDFS系列的第三篇博客,JDFS的目的是为了实现一个分布式的文件管理系统,前两篇实现了基本的上传.下载功能,但是那还不能算作分布式文件管理.本篇博客将在前两篇的基础上增加一系列分布式的功能,比如流式云存储,就是客户端把本地的文件切分成若干片后,以冗余的方式存储到分布式数据结点上:所谓的流式传递读者可以在网上搜索一下HDFS的流式传递,基本上就是那个意思,正文中会详细介绍这个,此处不再赘述.除了分布式存储外,当然…
一 前言 时间过得真快,距离本系列博客第一篇的发布已经过去9个月了,本文是该系列的第四篇博客,将对JDownload做一个整体的描述与介绍.恩,先让笔者把记忆拉回到2017年年初,那会笔者在看Unix环境高级编程这本书,其中有些章节是socket相关的,这引起了我很大的兴趣.然后有一天,看着屏幕上正在下载文件的迅雷,突然灵光一闪,要不自己也写个下载工具吧,正所谓学以致用嘛,然后网上简单搜索了一下,发现是可行的,于是乎就开始着手实现之.该系列的第一篇博客实现了一个基本的http站点迷你下载工具,第…
说起分布式文件管理系统,大家可能很容易想到 HDFS.GFS 等系统,前者是 Hadoop 的一部分,后者则是 Google 提供的分布式文件管理系统.除了这些之外,国内淘宝和腾讯也有自己的分布式文件管理系统,都叫 TFS(Taobao File System 和 Tencent File System). 相对于上面提到的这些分布式文件管理系统而言,FastDFS 可能离我们 Java 工程师更近一些,因为文件上传这个功能太常见了,而想要搭建独立的分布式文件管理系统,FastDFS+Nginx…
数据量越来越多,在一个操作系统管辖的范围存在不了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来 管理多台机器上的文件,这就是分布式文件管理系统. 是一种允许文件通过网络在多台主机上分享的文件系统,可让多台机器上的多用户分享文件和存储空间. 通透性,它实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般. 容错,即使系统中有某些节点脱机,整体来说系统仍然可以持续运作而不会有数据损失. 分布式文件管理系统很多,hdfs只是其中一种.见h…
一 前言 本文是<JDFS:一款分布式文件管理实用程序>系列博客的第二篇,在上一篇博客中,笔者向读者展示了JDFS的核心功能部分,包括:服务端与客户端部分的上传.下载功能的实现,epoll的运用,线程池的运用等.当然目前JDFS还仅仅支持上传.下载功能,还不具备分布式文件管理的功能,这些都会在后续的开发过程中加进来.在写博客的过程中,笔者发现最好是每完成一个小的功能就及时用博客记录下来,如果等功能全部实现完成后再写博客的话,一方面由于功能点比较多,博客写起来会比较费力:另一方面由于时间间隔太长…
Hadoop 分布式文件管理系统HDFS可以部署在廉价硬件之上,能够高容错. 可靠地存储海量数据(可以达到TB甚至PB级),它还可以和Yam中的MapReduce 编程模型很好地结合,为应用程序提供高吞吐量的数据访问,适用于大数据集应用程序. 1.定位 HDFS的定位是提供高容错.高扩展.高可靠的分布式存储服务, 并提供服务访问接口(如API接口.管理员接口). 为提高扩展性,HIDFS采用了master/slave架构来构建分布式存储集群, 这种架构很容易向集群中随意添或删除slave.HDF…
一 前言 截止目前,笔者在博客园上面已经发表了3篇关于网络下载的文章,这三篇博客实现了基于socket的http多线程远程断点下载实用程序.笔者打算在此基础上开发出一款分布式文件管理实用程序,截止目前,已经实现了 服务端/客户端 的上传.下载部分的功能逻辑.涉及到的知识点包括线程池技术.linux epoll并发技术.上传.下载等.JDFS的下载功能的逻辑部分与笔者前几篇关于JWebFileTrans(JDownload)比较类似.如果读者对socket网络下载不熟悉或者是只对下载功能感兴趣,请…
简单介绍 1,client storage tracker的关系 先用一幅图来解释用户如何访问一个通过DFS管理的文件 一般来说,一台服务器只有一个storage server,多个storage server可以组成一个group,同一group间storage server的数据自动同步(备份与恢复). 不同group数据互相隔离,一个tracker可以管理多个group,也可以多对多. client用于管理 tracker server 和storage server. FAST_DFS安…