在过年前夕我们小组就开始研究云计算了,之前都是在搭建云平台,配置hadoop集群环境,出现各种问题,各种不解,最终还是成功搭建了由10台机器组成的hadoop集群环境!由于写这篇技术博客的时候没有网络,暂时就不写搭建环境的步骤了,下面就在hadoop集群上运行的程序进行分析吧!
我们知道云计算应用中就有文件的上传和下载,我们提交任务到云端,让云端帮我们完成任务,下面就分析一下代码吧!
要在Hadoop集群进行操作,就应该用hadoop自己的一套api,只要我们和云端的hadoop集群连接上并用这套api编程,就可以享受云服务了!
文件的上传和下载最主要的就是org.apache.hadoop.fs FileSystem抽象类和org.apache.hadoop.conf Configuration类,再看看FileSystem的源代码:
public abstract class FileSystem extends Configured implements Closeable {
Hadoop集群上的文件系统也是与Configuration有关的,我们将这个类写进代码中,云端根据响应的api找到配置执行任务。
上传文件的代码:
//写入数据:从本机到云端(存储)
private static void uploadToHdfs() throws FileNotFoundException,IOException{
//我的文件地址
String localSrc = "H://Reading/Google_三大论文中文版.pdf";
//存放在云端的目的地址
String dest = "hdfs://192.168.1.11:9000/usr/Google_三大论文中文版.pdf";
InputStream in = new BufferedInputStream(new FileInputStream(localSrc));
//得到配置对象
Configuration conf = new Configuration();
//文件系统
FileSystem fs = FileSystem.get(URI.create(dest), conf);
//输出流
OutputStream out = fs.create(new Path(dest), new Progressable() {
@Override
public void progress() {
System.out.println("上传完一个设定缓存区大小容量的文件!");
}
});
//连接两个流,形成通道,使输入流向输出流传输数据
IOUtils.copyBytes(in, out, 4096,true);
}
下载文件的代码:
//读入数据:从云端到本机(提取数据)
private static void readFromHdfs()throws FileNotFoundException,IOException{
//云端地址
String dest = "hdfs://192.168.1.11:9000/usr/Google_三大论文中文版.pdf";
//我的目录地址
String mySrc = "H://Google_三大论文中文版.pdf";
//得到配置
Configuration conf = new Configuration();
//实例化文件系统
FileSystem fs = FileSystem.get(URI.create(dest), conf);
//读出流
FSDataInputStream hdfsInStream = fs.open(new Path(dest));
//写入流
OutputStream out = new FileOutputStream(mySrc);
//将InputStrteam 中的内容通过IOUtils的copyBytes方法复制到out中
IOUtils.copyBytes(hdfsInStream, out, 4096,true);
}
这是一个小小的开端,今年要开始认真研究了!
分享到:
相关推荐
在这个场景中,我们讨论的是如何利用Struts2这个Java Web框架来实现文件的上传和下载功能,目标是将文件存入Hadoop分布式文件系统(HDFS)中,并能够从HDFS中检索这些文件。下面将详细介绍这一过程涉及的关键知识点...
命令行上传文件可以使用 hadoop fs -put 命令,而 Java API 可以使用 FileSystem 的 copyFromLocalFile 方法上传文件。 3. Hadoop 集群:Hadoop 集群由多个节点组成,每个节点可以作为 NameNode 或 DataNode。启动 ...
搭建一个Hadoop集群是一个复杂的过程,但为了更好的理解,我们将这个过程拆解成几个主要步骤,并且由于本文档是在Mac环境下进行Hadoop集群搭建的指南,我们需要专注于特定于Mac和VMware Fusion的步骤。 1. 创建...
使用Hadoop命令进行基本的测试,如`hdfs dfs -put`上传文件,`hdfs dfs -ls`列出目录,确保HDFS正常工作。 ### 性能调优 安装完成后,还需要根据实际需求和硬件资源对Hadoop集群进行性能调优,包括内存分配、线程...
2. **HDFS操作**:在Hadoop中,文件系统的操作通常通过HDFS的Shell命令完成,如`hadoop fs -put`用于上传文件,`-get`用于下载,`-rm`用于删除,`-ls`用于列出目录内容,`-mv`用于移动或重命名文件。本项目的目标是...
2. **资源管理**:在IDE内查看HDFS文件系统,包括上传、下载、删除文件,浏览目录结构,这对于数据预处理和调试非常方便。 3. **编写和运行MapReduce程序**:IDE支持直接编辑Java源代码,如本例中的IDES.java、...
"Hadoop集群部署方案" Hadoop 集群部署方案是指在分布式系统中部署 Hadoop 集群的详细步骤和配置过程。下面是该方案的详细知识点解释: 1. Hadoop 简介 Hadoop 是Apache软件基金会旗下的开源项目,主要用于大数据...
1. **上传HBase压缩包**:将HBase的压缩包上传到Hadoop集群的主节点(master)上,通常推荐与Hadoop放在同一目录下。例如,如果您的Hadoop位于`/home/wangkang/`目录下,则可以将HBase也放在此处。 ```bash tar -...
3. **上传文件**:使用`hdfs dfs -put`命令将本地文件上传到HDFS。 4. **运行WordCount**:执行`hadoop jar`命令,指定jar包路径和输入、输出路径,运行WordCount程序。 5. **监控运行状态**:在Web界面的MapReduce...
本文主要讨论了在 Java Web 程序中上传文件到 Hadoop HDFS 文件系统中失败的原因分析及解决方法。通过对问题的分析和解决,可以总结出以下知识点: 1. Hadoop 文件上传失败的原因分析: 在上传文件到 Hadoop HDFS ...
本篇文档深入浅出地介绍了Hadoop集群的WordCount运行详解,从MapReduce理论到WordCount程序的运行,再到源码分析,内容丰富且详细,对于想要入门和深入了解Hadoop分布式计算和MapReduce模型的读者来说,是一份宝贵的...
安装 Hadoop 集群需要上传安装包到服务器,然后解压安装包并配置环境变量。在 Linux 系统中,使用 tar 命令解压安装包: ``` tar -zxvf hadoop-2.7.1.tar.gz ``` 然后,重命名安装文件夹并授权给 hadoop 用户: `...
### Hadoop集群搭建详解 #### 一、概述 在大数据处理领域,Hadoop因其出色的分布式存储与计算能力而被广泛采用。本文将详细介绍如何搭建一个Hadoop单机集群,并通过三台虚拟机来实现这一过程。我们将从创建虚拟机...
Hadoop集群的搭建不仅仅是简单的配置几个文件,而是涉及到多个组件的相互配合与协调。此外,还需要对每一步配置进行仔细检查,确保所有的配置都正确无误,这样才能保证Hadoop集群的正常运行。希望本教程能帮助大家...
在IT行业中,构建一个能够通过Web接口上传文件到Hadoop集群的应用是一项常见的需求。这个场景中,"hadoop web tomcat上传文件" 提供了一个基于Web的解决方案,它利用了Apache Tomcat作为Web服务器和Hadoop生态系统来...
- **上传文件到HDFS**: - `./hadoop fs -get /1.data /usr/local/src/` - 从HDFS中的`/1.data`目录下载文件到本地的`/usr/local/src/`目录下。 - **查看HDFS目录**: - `./hadoop fs -ls /` - 列出HDFS根目录下...
通过运行一些简单的测试来检查Hadoop集群是否正确配置并能够正常工作,例如启动HDFS和MapReduce服务,然后尝试上传一些文件到HDFS,并执行一些简单的MapReduce任务。 #### 三、MapReduce开发 **3.1 Hadoop Eclipse...
内容涵盖了连接比赛节点、修改主机名和配置、关闭防火墙、配置时间同步、安装JDK和Hadoop、配置Hadoop环境变量、格式化NameNode、启动Hadoop集群、SSH免密配置、创建Maven项目和编写WordCount等示例代码,以及打包...