@会网络的老鼠

涂飞平的博客空间

利用Docker,玩转云存储

3 年前 0

在新的产品中,需要加入文档型数据的热备份功能,前面版本我们都采用Cron定期做这个任务,但效果和效率都不怎样,只能算勉强够用,也想到过采用硬件热备方案(RAID1)。但作为一个软件公司,这种解决方案总感觉是把球踢给了客户,还是觉得应该由我们来帮客户解决这个问题才是彻底的解决之道。
后来想到曾经研究过的Hadoop,苦于一直没有机会使用,里面有HDFS文件系统就是一个分布式文件系统,完全可以满足客户目前提出的数据安全上的需求。Hadoop的开发语言与我们的系统开发语言一致,在API调用上和嵌入我们产品方面有着天然的优势,其API也比较简洁明快,所以遂决定在新的产品中,改写产品底层的文件IO接口,以支持Hadoop!
我们的产品在宣传上瞬间高大上了:“支持云存储” :-)
在内部测试中,由于公司内部云平台是基于Docker构建的,所以,如果有整套解决方案,既能提供Hadoop的文件管理前端浏览管理界面,又有Hadoop后端API的支持,无论对于开发,测试,客户在使用上都有极大的好处!
经过几个小时的网海寻觅,在Github(这里,几乎能找到你需要的任何东西)上找到了这个开源系统StandaloneHdfs, 该项目仅仅抽取了Hadoop中HDFS这部分,功能比较专一,符合我们产品的需求,并且它还提供了Docker部署方案,Great!但网络实在是太慢了(GFW啊GFW),从昨天下午7:00开始下载,N多次失败后,终于于今天凌晨3:20完成了部署,那一刻,我真的热泪盈眶啊!
完成系统简单配置,配置好NAT映射(云平台部署在公司内网服务器),在家终于能看到使用界面了,而产品接口的Demo示例,也完成了文件读写删的简单操作了。虽然目前系统仅用了一个数据节点,但利用docker克隆一个节点出来还是很容易,以后再加入其他datanode。

cloudstore.PNG为了大家不再遭受我一样的痛苦,我将该系统的image镜像保存为tar包并上传到百度云中,直接下载即可在docker中使用了,下载链接

下面是在Docker中的一些配置
启动脚本比较简单(为了简便,直接使用源端口来映射,26412是对外WEB服务端口):
docker run -d -p 23045:22 -p 26411:26411 -p 26412:26412 -p 26416:26416 irp/hdfs


如何使用docker,可以看看这个最简单的教程Using docker

编写评论