使用hadoop的shell命令进行hdfs的操作十分不方便,最好的办法当然是将hdfs映射为本地文件系统. 而通过实现WebDav Http协议, 结合WebDav的众多客户端,可以将hdfs映射为windows或是linux的本地文件系统.而使用api存储文件时,也将对应用透明,如使用本地文件系统一样使用hdfs.
1.Webdav协议介绍:
WebDAV(Web-based Distributed Authoring and Versioning)是基于 HTTP 1.1 的一个通信协议。它为 HTTP 1.1 添加了一些扩展(就是在 GET、POST、HEAD 等几个 HTTP 标准方法以外添加了一些新的方法),使得应用程序可以直接将文件写到 Web Server 上,并且在写文件时候可以对文件加锁,写完后对文件解锁,还可以支持对文件所做的版本控制。
2.项目介绍
本项目是一个hadoop namenode server的webdav协议访问代理,实现 client => hdfs-webdav proxy => hadoop namenode server的中间层. 项目修改自tomcat的WebdavServlet,实现了WebDAV level 2协议.
3.war部署
修改配置
修改hdfs-webdav.war里面的WEB-INF/classes/hadoop-site.xml
修改fs.default.name属性,以确定hdfs-webdav要连接的hadoop NameNode Server,示例:
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.52.129:9000/</value>
<description>namenode</description>
</property>
替换hadoop-xxxx-core.jar版本
由于hadoop有自己的rpc远程调用实现,并且各个版本间可能不兼容(0.17.x与0.18.x之间就不兼容),所以需要将WEB-INF/lib/hadoop-xxxx-core.jar的版本与NameNode Server的版本一致.现war自带的是hadoop-0.18.1-core.jar的版本
部署至tomcat
以上修改完,将war包部署至tomcat或是jboss中,部署在其它服务器中时需要tomcat的catalina.jar与tomcat-coyote.jar,拷贝至WEB-INF/lib目录,因为现在项目是从tomcat的WebdavServlet中修改而来的
测试是否部署成功
访问http://localhost:8080/hdfs-webdav
4.webdav客户端访问
实现webdav的hdfs可以映射为windows或是linux本地文件夹.
window网上邻居访问
打开“网上邻居”,添加网上邻居,在“请键入网上邻居的位置”中输入 Web 文件夹的 URL.
http://localhost:8080/hdfs-webdav
然后按照向导的提示继续下一步就可以了.
Linux mount WebDav为本地文件系统
linux下相要mount WebDAV server为本地文件系统,必须要使用davfs2,项目网址:http://dav.sourceforge.net/
安装davfs2请使用编译安装
davfs2编译时依赖于neon,neon是一个WebDAV client library. neon网址http://www.webdav.org/neon/
dsvfs2在mount时会使用fuse或是coda这两个文件系统,其中一个文件系统linux一般都有自带,davfs2在mount时会首先尝试使用fuse,失败时再使用coda
但在CentOs中使用coda时发生如下错误,所以后面安装fuse, fuse网址http://fuse.sourceforge.net/
/sbin/mount.davfs: no free coda device to mount
/sbin/mount.davfs: trying fuse kernel file system
/sbin/mount.davfs: can't open fuse device
neon,davfs2,fuse编译安装: 项目的linux_mount_lib目录已经自带了这三个包
1.运行./configure
2.运行make
3.运行make install
运行davfs2的mount命令
在mount之前,davfs2需要创建davfs2用户及用户组
[root@datacenter5 usr]# mkdir /data/hdfs
[root@datacenter5 usr]# groupadd davfs2
[root@datacenter5 usr]# useradd -g davfs2 davfs2
[root@datacenter5 usr]# mount.davfs http://192.168.55.104:8080/hdfs-webdav /data/hdfs
项目下载: http://hdfs-webdav.googlecode.com/files/hdfs-webdav.war
或是至项目网站下载: http://code.google.com/p/hdfs-webdav/downloads/list
分享到:
相关推荐
描述中提到“将Hadoop分布式文件系统以NFS形式进行挂载”,这指的是使用Network File System (NFS)协议将HDFS挂载到本地文件系统或远程服务器上。NFS是一种广泛使用的协议,它允许不同操作系统之间的文件共享。通过...
- **总结**:HDFS是一个高度可扩展且健壮的分布式文件系统,适用于大规模数据的存储和处理。 ##### MapReduce - **技术背景**:许多数据处理任务虽然在概念上很简单,但在分布式环境中实现起来却十分复杂。...
NFS通过使用虚拟文件系统(VFS)机制,将客户端的文件访问请求转化为标准的远程过程调用(RPC),再由服务器端的本地文件系统完成实际的数据处理工作。 - **AFS**:由卡内基梅隆大学开发,主要应用于教育和研究...
在存储层面,分布式文件系统如Hadoop HDFS或Google Cloud Storage能够处理大规模的文件,它们通常设计用于处理PB级的数据。对于云服务,如AWS S3或阿里云OSS,它们通常有内置的机制来处理大文件上传。 最后,安全是...
另外,分布式文件系统如Hadoop HDFS也可能是讨论的话题,这种系统能够处理大规模的数据存储和传输。 最后,课程设计可能会涉及到文件传输的安全性,包括身份验证、授权和数据加密。例如,SSH(Secure Shell)可以...
另一种方法是使用分布式文件系统,如Hadoop HDFS,它可以跨多台服务器存储和处理大量数据,适合大规模的数据分析和处理。 系统层面,文件信息流通通常涉及到多个层次的设计。首先是物理层,包括电信设备的硬件配置...
它通过分布式文件系统(HDFS)来存储数据,并利用MapReduce编程模型来处理这些数据。对于希望深入了解Hadoop的技术人员来说,获取高质量的学习资源至关重要。本文将详细介绍一系列Hadoop学习资料及其来源,帮助读者...
SeaweedFS的Filer支持多种特性,如文件版本控制、访问权限管理、TTL(Time To Live)设置,以及通过WebDAV、NFS等协议提供文件访问。Filer还可以与外部数据库进行同步,以实现跨地域的数据备份和灾难恢复。 7. **...
金牌赞助商目录快速开始从下载最新的二进制文件并解压单个二进制文件weed或weed.exe 运行weed server -dir=/some/data/dir -s3以启动一台主机,一台卷服务器,一台文件管理器和一台S3网关。 另外,要增加容量,只需...
这通常通过采用分布式存储系统实现,如Hadoop HDFS或Ceph等,它们能够将数据分散到多个节点,便于扩展。 在硬件选型方面,要考虑到性能、成本和可维护性。服务器应选择高性能的处理器和足够的内存,以应对高吞吐量...
3. **分布式文件系统(HDFS)**:Hadoop Distributed File System是专为大数据处理设计的分布式文件系统。Java开发者可以使用Hadoop的API进行HDFS操作,例如读取、写入文件。 4. **对象存储**:对象存储,如OpenStack...
| | | | | 克隆 Rclone (“用于云存储的rsync”)是一个命令行程序,用于与其他云存储提供程序之间来回同步文件和目录。... HDFS(Hadoop分布式文件系统) HTTP 胡比 Jottacloud IBM COS S3 库夫 Mail.ru云