当前位置: 首页 > 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静态文件目录
  • 设计模式——策略模式
  • 【css3】浏览器内核及其兼容性
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • CentOS 7 防火墙操作
  • conda常用的命令
  • CSS盒模型深入
  • Django 博客开发教程 8 - 博客文章详情页
  • ES6简单总结(搭配简单的讲解和小案例)
  • FineReport中如何实现自动滚屏效果
  • HashMap ConcurrentHashMap
  • IOS评论框不贴底(ios12新bug)
  • JAVA之继承和多态
  • js正则,这点儿就够用了
  • Kibana配置logstash,报表一体化
  • Leetcode 27 Remove Element
  • Linux快速复制或删除大量小文件
  • magento2项目上线注意事项
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • V4L2视频输入框架概述
  • vue-router的history模式发布配置
  • vue中实现单选
  • vue自定义指令实现v-tap插件
  • 创建一种深思熟虑的文化
  • 给初学者:JavaScript 中数组操作注意点
  • 汉诺塔算法
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 什么是Javascript函数节流?
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 应用生命周期终极 DevOps 工具包
  • 湖北分布式智能数据采集方法有哪些?
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $jQuery 重写Alert样式方法
  • (6)设计一个TimeMap
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (js)循环条件满足时终止循环
  • (附源码)springboot课程在线考试系统 毕业设计 655127