码迷,mamicode.com
首页 > 其他好文 > 详细

hadoop云盘客户端的设计与实现(一)

时间:2014-07-17 20:09:44      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:hadoop   分布式文件系统   开发语言   设计   qt   

最近在hadoop云盘客户端项目,在做这个项目以前对hadoop是一点都不了解呀,在网上查了好久,将客户端开发的是很少的,在做这个项目的过程中遇到很多奇葩的问题。而且试图换过好多方案,曾陷入深渊准备放弃,最后还是坚持下来了。在这里写篇博文,把我最近的遇到的困难和做客户端 的基本思路列出来,希望能够帮助哪些做类似项目的开发者们!

下面是hadoop客户端简单的需求:

1、能够实现基本的文件存储操作,上传、下载、删除、重命名、分类、创建文件夹、分享等功能。

2、能够运行在多操作系统下:Windows 、Linux、Mac os 以及类Unix操作系统。

3、能够有实现上千客户端同时操作,实现高并发服务器。

4、实现够有良好的用户体验,可以参考百度云盘、360云盘界面。

5、客户端要简洁明了最好不要依赖其他的软件。


选择开发语言:

java开发语言:

搭建见过hadoop分布式文件系统的开发者都知道,hadoop是基于java语言开发的,对java 的支持很好,如果能用java开发岂不是最简单的方法吗?看是这样的,在网上找着了,hadoop 提供的Java API确实很全面,用起来也很方便,包括java第三方的java包也很多,许多东西都不需要自己实现。

经过两天的实验Java有个致命的弱点,就是对桌面应用的支持不是很好,开发出来的界面很不美观,而且还依赖

庞大的java虚拟机,用云盘客户端用户来说是一个不小的挑战。java开发语言直接宣告失败!


C++开发语言:

用C++开发语言还是一个不错的选择,C++可以做很漂了GUI,跨平台当仁不让的要选择QT了。就是C++怎么操作hadoop分布式文件系统呢?这是一个很大的问题,在网上查了好久,找到了libhdfs,通过c、c++访问hdfs的API。

不查不知道一查下一跳,libhdfs有很大的局限性:

首先libhdfs是不支持在Windows下开发的。

其次libhdfs是基于java JNI技术的,用的是用C、C++调用java。也就是说libhdfs底层还是调用的java,只不过是对java的api安装C语言的方式又封装了一次,看不到java 的哪些东西了,但是还是要依赖java虚拟机,还要配置一大堆的环境变量。

这样看来似乎不能找到解决方案了 。。。

hadoop云盘客户端的设计与实现(一),布布扣,bubuko.com

hadoop云盘客户端的设计与实现(一)

标签:hadoop   分布式文件系统   开发语言   设计   qt   

原文地址:http://blog.csdn.net/douyuan888/article/details/37907373

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!