当前位置: 首页 > news >正文

(4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上

本文出自https://shuwoom.com博客,欢迎访问!

(1)首先创建java project

选择eclipse菜单上File->New->Java Project。

并命名为UploadFile。

(2)添加必要的hadoop jar包

右键选择JRE System Library,选择Build Path下的Configure Build Path。

然后选择Add External Jars,到你解压的hadoop源代码文件夹下添加jar包和lib下的所有jar包。

lib文件夹下的所有jar包。

(3)添加UploadFile类

代码如下:

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
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 UploadFile {

	public static void main(String[] args) {
		
		try {
			String localSrc = "C://Goagent.rar";
			  String dst = "hdfs://hadoop:9000/user/root/Goagent.rar";
			  InputStream in = new BufferedInputStream(new FileInputStream(localSrc));
			  Configuration conf = new Configuration();
			  
			  FileSystem fs = FileSystem.get(URI.create(dst), conf);
			  OutputStream out = fs.create(new Path(dst), new Progressable() {
			   public void progress() {
			    System.out.print(".");
			   }
			  });
			  IOUtils.copyBytes(in, out, 4096, true);
			  System.out.println("success");
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}

然后运行程序,如果上传成功会在控制台下输出success。

你也可以在网页上查看http://hadoop:50070/。

备注:我也是刚起步学习hadoop,可能文章有一些不完整或错误的地方,还请大家多多指教,也希望能交流学习,互相促进提高。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WkReBWyS-1661916414518)(http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)]

参考资料:

http://my.oschina.net/cuitongliang/blog/155954

)

相关文章:

  • DSPE-PEG-iRGD,iRGD-PEG-DSPE,磷脂-聚乙二醇-靶向肽iRGD,一种磷脂PEG肽
  • 自助商业智能平台 HK-Visokio Omniscope 详解!
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • java优先级队列PriorityQueue
  • 537、RabbitMQ详细入门教程系列 -【消费者Consumer(一)】 2022.08.31
  • wxpython分页
  • Java输入/输出之RandomAccessFile的功能和用法
  • RNNGNULSTM与PyTorch
  • Python升级之路( Lv15 ) 并发编程三剑客: 进程, 线程与协程
  • 南大通用GBase 8a MPP Cluster开发接口简介
  • IntelliJ IDEA 插件推荐
  • Rt-Thread 启动流程与组件初始化
  • CentOS-7-x86_64 iso镜像的安装(Linux操作系统)
  • Parcel配置public静态文件目录
  • 设计模式——策略模式
  • JS 中的深拷贝与浅拷贝
  • [iOS]Core Data浅析一 -- 启用Core Data
  • java8-模拟hadoop
  • javascript 总结(常用工具类的封装)
  • PHP 小技巧
  • Puppeteer:浏览器控制器
  • Python - 闭包Closure
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • unity如何实现一个固定宽度的orthagraphic相机
  • use Google search engine
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 如何学习JavaEE,项目又该如何做?
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 找一份好的前端工作,起点很重要
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #define与typedef区别
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (1)bark-ml
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (poj1.2.1)1970(筛选法模拟)
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (三) diretfbrc详解
  • (顺序)容器的好伴侣 --- 容器适配器
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (转)c++ std::pair 与 std::make
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .net core 控制台应用程序读取配置文件app.config
  • .Net 知识杂记
  • .NET 中让 Task 支持带超时的异步等待
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .NET开源快速、强大、免费的电子表格组件
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国