您现在的位置 >> Hadoop教程 >> Hadoop实战 >> hadoop专题  
 

利用hadoop模拟制作百度、360网盘指导

【作者:Hadoop实战专家】【关键词:网盘 hadoop 伪分布 】 【点击:46081次】【2013-09-1】
1.网盘如何实现上传文件?3.网盘如何实现删除文件?当然如果非云技术爱好者,也都知道网盘:百度网盘,360网盘等。那么百度winform是什么那?那么现在hadoop产生了,我们能否远程操作HDFS文件,答案是可以的。当然上面还有些操作,大家可以查看FileSystem操作类。  

相关热门搜索:

大数据标签:hadoop hdfs bigdata

可以带着下面问题来阅读:
1.网盘如何实现上传文件?
2.网盘如何实现远程操作?
3.网盘如何实现删除文件?

思考:
hadoop如何与Javaweb相结合实现网盘

作为云技术爱好者,我们都知道网盘。当然如果非云技术爱好者,也都知道网盘:百度网盘,360网盘等。

有一点不同的是,我们在学习云技术,对于非技术人员,感觉网盘是如何神秘。作为从事云技术,不知道网盘是怎么做,有点说不去。

这里来给大家解析,网盘是怎么做成的。其实或许我们大家都接触过,等解析完毕,或许你会忽然大悟。

这里咱们是以hadoop为例。

我们都知道hadoop的文件系统hdfs。我们的网盘则是以它基础。

我们知道网盘是什么?下面以百度网盘为例,我们看到了下图。

是的,我们登录之后,就可以上传文件,下载文件,删除文件等操作。
我们该怎么模拟这个百度网盘:这里先从思想上来打通大家的七经八脉。
首先使用网盘,我们需要注册帐号,在我们的帐号下面会看到自己的网盘。
过程是这样的,那么下面我们从hadoop的角度来讲解该如何实现类似百度网盘。

一、思路
1.首先搭建hadoop环境(不知道怎么搭建环境的,可以查看
Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)

Hadoop伪分布安装过程:Hadoop单机环境搭建指南(ubuntu))

2.在另外一台pc机上搭建开发环境。(也可以是发布的程序)
二、实现
上面为了节省成本,可以搭建伪分布环境,如果有真实的环境,这样可以理解更深刻。对于网盘也越真实。
我们该如何实现网盘,这里其实我们已经有原材料了。那就是hadoop的HDFS。HDFS其实就是个文件系统。那么网盘的,“网”没有体现。那么剩下的事情就是我们的工作了。
1、创建web程序
我们知道网盘都是web的方式,也就是我们都可以通过浏览器来访问网盘。那么我们可以通过winform来实现吗?完全可以。那么百度winform是什么那?如下图就是我们的百度云管家。那么这里需要什么功底,就看你Java内功深不深厚。我们这里就不详细讲解,该如何实现web或则winform该如何实现了。

2.png (65.74 KB, 下载次数: 0)

  

2014-3-31 04:55 上传

2.远程操作HDFS
HDFS编程我们都看了很多遍了。同时我总结了Hadoop编程有两种方式
这里不再详细叙述这两种开发方式了。
---------------------------------------------------------------------------------------------------------------------------------------------------
网盘原理
网盘为什么称之为网盘,我们的磁盘为什么就不行。这是指一般情况,是因为我们的磁盘只能给自己的电脑使用。别人是无法访问的,而对其编程也是十分困难的。
那么现在hadoop产生了,我们能否远程操作HDFS文件,答案是可以的。既然可以,那就好办了。我在家可以使用,在公司可以使用,在任何能上网的地方都可以使用了。这就是为我们让HDFS成为网盘打下了基础。
核心代码指导:
1)hadoop包 org.apache.hadoop.fs.FileSystem
我们该如何远程操作HDFS,这里HDAOOP给我们提供了一个包 org.apache.hadoop.fs.FileSystem;这个包给我们远程操作hadoop提供了操作类。
而也就是通过这个包,实现了网盘,所以我们还是记住这个万能的包吧。
2)创建远程连接
String PATH = "hdfs://192.168.159.10:9000/";
上面的HDFS:ip,这个ip地址也就是你安装hadoop电脑的ip地址。也正是因为这个地址,我们才能操作HDFS
3)对HDFS文件的各种操作
上面已经打通了,下面就是我们的具体实践了,

3.png (5.45 KB, 下载次数: 0)

  

2014-3-31 04:55 上传

1.创建hadoop文件夹
比如我们创建hadoop文件夹
第一步:首先我们实例化:
(这里需要注意的是我们已经倒入包了)
FileSystem filesystem = getFileSystem();
private static FileSystem getFileSystem() throws IOException,
URISyntaxException {
return FileSystem.get(new URI(PATH), new Configuration());
}
第二步:使用mkdirs函数创建文件夹
// 创建目录
createFile(filesystem,"/hadoop");

private static void createFile(FileSystem filesystem,String path) throws IOException {
filesystem.mkdirs(new Path(path));
}
2.上传文件通过IOUtils.copyBytes实现

4.png (2.87 KB, 下载次数: 0)

  

2014-3-31 04:55 上传

以下实例化步骤都省略:
put(filesystem);
private static void put(FileSystem filesystem) throws IOException,
FileNotFoundException {
final FSDataOutputStream out = filesystem.create(new Path(File));
final FileInputStream in = new FileInputStream("E:/about云/upload.txt");
IOUtils.copyBytes(in, out, 2048, true);
}
3.通过删除文件FileSystem的delete函数实现
removeFile(filesystem,"/hadoop");
private static void removeFile(FileSystem filesystem) throws IOException {
filesystem.delete(new Path(path), true);
}
当然上面还有些操作,大家可以查看FileSystem操作类。这里就不在一一举例了。
三、总结
上面通过代码我们讲了网盘是如何实现的,实际的网盘还需要考虑很多的问题。如果个人比较喜欢,可以模拟一下。

大数据系列hadoop相关文章:

最新评论
简单2014-09-10 11:49:23
#NLP Job#搜狗招聘Hadoop开发工程师http://t.cn/RPjpxXv
大数据厂商联盟BDU2014-09-10 10:08:34
.map(x => (x, movies(x)))
李单2014-09-10 11:47:45
新试下,后续根据效果优化
Gavin2014-09-10 08:18:43
是填一个机器还是两个机器名也行
寻找真爱2014-09-09 10:54:02
转了转apache jira,发现出现了Hadoop 3.0的patch,什么节奏啊这是。@吴甘沙 @冠城
娇憨玉女2014-09-09 09:32:11
节操呢
羽墨2014-09-08 11:30:12
T
李道航_Lucien2014-09-08 12:05:18
【EMC收购DSSD 扩大闪存存储优势】 DSSD公司是创新的全新机架级闪存存储架构的开发者,面向SAP HANA、Hadoop等I/O密集型数据库内存计算和大数据工作负载。在满足管理成交条件的前提下,交易预计在2014年第二季度完成。http://t.cn/8sdE2Mt
sand2014-09-06 10:12:17
招运维开发2名,要求:学习能力强,英文阅读能力强,熟悉Ruby或Python,熟悉主流Web框架。有以下技能者犹佳:1.有运维经验,熟悉Linux 2.熟悉Puppet、Saltstack、Chef、Logstash、Hadoop 工作内容:负责3000台主机的自动化运维相关开发工作 工作地点:广州。有意者,直接私信我简历
芦苇2014-09-06 04:41:47
【如何落地才是硬道理 大数据行业里的两大误区】大数据并不新鲜,只是某些技术如Hadoop、MR、Storm、Spark发展到一定阶段,顺应这些技术炒出来的概念,从某种程度来讲,大数据这个“圈”太乱了,一点不比“贵圈”好。那么,混乱的点哪里呢?你的认识中有没有这些误区?:http://t.cn/RvDDMy2
 
  • Hadoop生态系统资料推荐