首先,FastDFS肯定没有OSS功能强大以及齐全,碍于成本问题,只能寻找一个类似OSS功能的替代品,所以需要考虑到以后的一些问题。
一、未来考虑
1.FastDFS能否实现OSS的部分功能
基本能实现,以下是FastDFS,hdfs,OSS的区别
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| FastDFS: 是一个开源的分布式文件系统,它对文件进行管理 功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题 特别适合以文件为载体的在线服务, 如相册网站,视频网站等等
HDFS: 默认的最基本的存储单位是64M的数据块。 和普通的块文件系统相同的是,HDFS中的文件是被分成64M一块的数据块存储的。 不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,会占用整个存储块的空间。
OSS: 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务; 可以使用阿里云提供的 API、SDK 接口或者 OSS 迁移工具轻松地将海量数据移入或移出阿里云 OSS。 数据存储到阿里云 OSS 以后,您可以选择标准类型(Standard)的阿里云 OSS 服务作为移动应用、大型网站、图片分享或热点音视频的主要存储方式 也可以选择成本更低、存储期限更长的低频访问类型(Infrequent Access)和归档类型(Archive)的阿里云 OSS 服务作为不经常访问数据的备份和归档。
|
HDFS和FastDFS的上传,下载效率对比测试结果:
https://blog.csdn.net/a519781181/article/details/79125379/
使用OSS有什么优势,又有什么缺点,什么情况下我们会使用OSS来代替HDFS,到底使用什么存储方案:
https://yq.aliyun.com/articles/371984
oss上传方式,以及对应的大小限制:
http://www.360doc.com/content/18/0823/22/49604565_780716594.shtml
2.FastDFS文件上传后文件名如何保存
上传文件的流程
1 2 3 4 5 6 7
| 客户端上传文件后存储服务器将文件ID返回给客户端,次文件ID用于以后访问改文件的索引信息。文件索引信息包括: 组名,虚拟磁盘路径,数据两级目录,文件名。 比如:group/M00/02/44/wKqDrE348waaaaaaaaGkEIYJK42378.sh 组名:文件上传后所在的storage组名称,在文件上传成功后有storage服务器返回,需要客户端自行保存。 虚拟磁盘路径:storage配置的虚拟路径,与磁盘选项store_path对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。 数据两级目录:storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。 文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。
|
上传步骤
1 2 3 4 5 6 7 8
| 加载配置文件,配置文件中的内容就是tracker服务的地址。 配置文件内容:tracker_server=192.168.25.121:22122 创建一个TrackerClient对象。直接new一个。 使用TrackerClient对象创建连接,获得一个TrackerServer对象。 创建一个StorageServer的引用,值为null 创建一个StorageClient对象,需要两个参数TrackerServer对象、StorageServer的引用 使用StorageClient对象上传图片。 返回数组。包含组名和图片的路径。
|
3.Hadoop生态体系能否像使用OSS一样使用FastDFS
可能有点悬,原因如下
1 2 3
| oss是阿里收费的服务,而且是专门提供云对象的服务,设计之初就是提供给hadoop生态体系的;而fastdfs是开源的分布式文件系统;fastdfs存储方式等本身就跟hdfs有所区别;
fastDFS和oss以个体上面来看,都API、SDK对其存储的文件进行使用,看业务情况,如果需要牵涉很多大数据组件的,建议使用oss,毕竟花了钱,对应的服务也很方便;如果只是简单存储,访问,涉及到的其他数据分析比较少,就可以使用fastDFS,毕竟是个开源项目
|
4.FastDFS数据能否迁移到OSS上
如何迁移
1 2
| 找一台中转服务器,最好是带宽高的阿里云ECS,然后将fastDFS映射到一个目录,OSS也可以挂载一个目录,接下来通过cp命令进行拷贝即可 如果这两个都用的不同的挂载服务器,也可以通过RSync工具来进行目录同步,支持端点续传多线程
|