实现文件的上传和下载:
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.util.Progressable;
public class UploadAndDown {
public static void main(String[] args) {
UploadAndDown uploadAndDown = new UploadAndDown();
try {
//将本地文件local.txt上传为HDFS上cloud.txt(从新命名为cloud.txt,可以cloud.txt)文件
//注意:upLoadToCloud第一个参数是本地文件,第二个hdfs文件名,必须写文件名cloud.txt
uploadAndDown.upLoadToCloud("local.txt", "cloud.txt");
//将HDFS上的cloud.txt文件下载到本地cloudTolocal.txt文件
uploadAndDown.downFromCloud("cloudTolocal.txt", "cloud.txt");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void upLoadToCloud(String srcFileName, String cloudFileName)
throws FileNotFoundException, IOException {
// 本地文件存取的位置linux下
/// String LOCAL_SRC = "/home/sina/hbase2/bin/" + srcFileName;
//window本地文件
String LOCAL_SRC = "D:\\test" + srcFileName;
// 存放到云端HDFS的位置input文件夹下
String CLOUD_DEST = "hdfs://192.168.91.132:9000/user/hadoop/input/" + cloudFileName; InputStream in = new BufferedInputStream(new FileInputStream(LOCAL_SRC));
// 获取一个conf对象
Configuration conf = new Configuration();
// 文件系统
FileSystem fs = FileSystem.get(URI.create(CLOUD_DEST), conf);
// 输出流
OutputStream out = fs.create(new Path(CLOUD_DEST), new Progressable() {
@Override
public void progress() {
System.out.println("上传完成一个文件到HDFS");
}
});
// 连接两个流,形成通道,使输入流向输出流传输数据
IOUtils.copyBytes(in, out, 1024, true);
}
private void downFromCloud(String srcFileName, String cloudFileName) throws FileNotFoundException, IOException {
// 云端HDFS上的文件
String CLOUD_DESC = "hdfs://192.168.91.132:9000/user/hadoop/input/"+cloudFileName;
// down到本地的文件
String LOCAL_SRC = "/home/sina/hbase2/bin/"+srcFileName;
// 获取conf配置
Configuration conf = new Configuration();
// 实例化一个文件系统
FileSystem fs = FileSystem.get(URI.create(CLOUD_DESC), conf);
// 读出流
FSDataInputStream HDFS_IN = fs.open(new Path(CLOUD_DESC));
// 写入流
OutputStream OutToLOCAL = new FileOutputStream(LOCAL_SRC);
// 将InputStrteam 中的内容通过IOUtils的copyBytes方法复制到OutToLOCAL中
IOUtils.copyBytes(HDFS_IN, OutToLOCAL, 1024, true);
}
}
在本地建立一个local.txt文件,运行个java程序,在eclipse下看到HDFS文件系统多了一个cloud.txt
同样也可以用hadoop的命令察看
sina@ubuntu:~/hadoop/bin$ hadoop fs -ls
Found 4 items
-rw-r--r-- 3 sina supergroup 11 2012-12-23 23:23 /user/sina/Google.pdf
-rw-r--r-- 3 sina supergroup 61 2012-12-23 23:59 /user/sina/cloud.txt
-rw-r--r-- 3 sina supergroup 13 2012-12-23 22:49 /user/sina/demo.txt
drwxr-xr-x - sina supergroup 0 2012-11-18 15:17 /user/sina/docs
同时在本地多了个cloudTolocal.txt文件:
sina@ubuntu:~/hbase2/bin$ ls *.txt
cloudTolocal.txt hadoop.txt local.txt
相关推荐
在这个场景中,我们讨论的是如何利用Struts2这个Java Web框架来实现文件的上传和下载功能,目标是将文件存入Hadoop分布式文件系统(HDFS)中,并能够从HDFS中检索这些文件。下面将详细介绍这一过程涉及的关键知识点...
命令行上传文件可以使用 hadoop fs -put 命令,而 Java API 可以使用 FileSystem 的 copyFromLocalFile 方法上传文件。 3. Hadoop 集群:Hadoop 集群由多个节点组成,每个节点可以作为 NameNode 或 DataNode。启动 ...
在实际实现中,可能还需要编写一个HDFS操作工具类,这个类封装了连接HDFS、上传文件等操作。例如,可能会有一个名为`HdfsUploader`的类,其中包含如`uploadFile()`这样的方法,该方法接受文件路径和HDFS目标路径作为...
3. **云盘操作**:如用户身份验证、文件上传/下载、文件权限管理、文件搜索等基本功能的实现,这可能涉及到Hadoop的API和云盘服务的设计模式。 4. **数据一致性**:在分布式环境下,如何保证数据的一致性是重要的,...
在描述中提到的"自己写的一个WEB只有上传文件功能",这可能是一个简单的MVC(Model-View-Controller)结构的应用程序,其中Controller负责处理用户的上传请求,Model则处理文件存储到Hadoop的逻辑,而View可能只是一...
基于Hadoop实现的文件存储系统 技术点redis:利用redisson来对上传文件进行布隆过滤(已上传的文件无需再次上传);进行session会话管理;HDFSAPI操作(项目功能):创建文件夹,上传文件,下载文件,删除文件,查找...
基于Hadoop实现的数据云盘系统项目源码资料大全.zip基于Hadoop实现的数据云盘系统,实现不同用户有不同的存储空间,不同的用户身份有不同的权限操作等功能软件设计思路 1、用户登录模块设计 输入图片说明 2、检索...
可以通过jQuery或Vue.js等库实现异步请求,动态加载文件列表,提供上传和下载的交互功能。 这个Demo对于初学者来说,是一个很好的学习资源,它展示了如何在实际项目中整合Hadoop HDFS、SpringMVC和MyBatis。在实践...
本文将深入探讨Hadoop的Web接口功能,包括文件的上传、下载、更新、删除以及追加操作,帮助用户更方便地通过Web界面管理Hadoop分布式文件系统(HDFS)。 一、Hadoop Web接口概述 Hadoop的Web接口,也称为Hadoop ...
基于hadoop的百度云盘+源代码+文档说明 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目...
hadoop实现的网盘管理项目,包括系统登录,增删改查,文件的上传下下载等功能 hadoop实现的网盘管理项目,包括系统登录,增删改查,文件的上传下下载等功能 hadoop实现的网盘管理项目,包括系统登录,增删改查,文件...
在IT行业中,大数据处理和...总之,FileSmartHadoop通过结合Hadoop的分布式存储和处理能力,以及MySQL的数据管理优势,实现了高效且可靠的文件上传下载及基于内容的查询功能,为大数据环境下的文件管理提供了有力支持。
文件上传可以通过`FileSystem`的`copyFromLocalFile()`或`write()`方法实现,而下载则可以使用`copyToLocalFile()`。此外,还可以添加对文件权限、所有权、复制因子等属性的管理,以及更复杂的文件操作,如分割大...
除了上传文件,HDFS API还提供了删除文件、重命名文件、列举目录、检查文件状态等丰富的功能。例如,可以使用`fs.delete()`删除文件,`fs.rename()`重命名文件,`fs.globStatus()`获取匹配模式的所有文件。 7. **...
hadoop上传文件功能实例代码 hadoop上传文件功能实例代码主要介绍了hadoop上传文件功能实例代码,需要的朋友可以参考下。hdfs上的文件是手动执行命令从本地Linux上传至hdfs的。在真实的运行环境中,我们不可能每次...
- **上传文件到节点**:将 Hadoop 安装包上传至各个节点。 - **解压 Hadoop**:在各节点上解压 Hadoop 安装包。 - **修改路径**:设置 Hadoop 的安装路径。 - **修改配置文件 core-site.xml**:配置 Hadoop 的核心...
通常,这种网盘实现会包括文件的上传、下载、搜索、删除等基本功能。开发者可以通过分析和运行这些源代码,掌握Hadoop的相关API,以及如何在分布式环境中处理文件操作。 【标签】源代码 源代码是软件开发的基础,...
实现了视频文件分布式存储和转码,通过web在线播放视频流等功能 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96...
这些类提供了与FTP服务器交互的能力,包括登录、列出目录、上传文件、下载文件等操作。 文件上传是将本地文件发送到远程服务器的过程。在C#中,我们可以创建一个FtpWebRequest对象,设置其方法属性为"STOR"(用于...