代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
java操作hdfs(上传、下载、查询)
作者:
/ 发布于
2017/5/22
/
473
java操作hdfs(上传、下载、查询)
一、新建Java project 二、导入hdfs的配置文件到src目录下 core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml 三、导入相关jar(Hadoop的所有jar包) 四、编写测试类 内容如下: package com.test; import Java.io.File; import java.io.FileInputStream; import org.apache.commons.io.FileUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; 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.io.SequenceFile; import org.apache.hadoop.io.SequenceFile.CompressionType; import org.apache.hadoop.io.SequenceFile.Reader; import org.apache.hadoop.io.Text; import org.junit.After; import org.junit.Before; import org.junit.Test; /** * * @ClassName: HdfsTest * @Description: 测试hdfs的上传和下载,以及 * @author * @date 2016年5月23日 下午1:29:18 * */ public class HdfsTest { private FileSystem fs ; Configuration conf; @Before public void setup()throws Exception{ //读取classpath目录下所有hadoop的配置 conf =new Configuration(); fs =FileSystem.get(conf); } @After public void end()throws Exception{ fs.close(); } /** * * @Title: mkdir * @Description: 测试在hdfs上创建文件夹 * @param @throws Exception * @return void * @throws */ @Test public void mkdir()throws Exception{ Path dir =new Path("/usr/zs"); fs.mkdirs(dir); } /** * * @Title: upload * @Description: 测试上传文件到hdfs上 * @param @throws Exception * @return void * @throws */ @Test public void upload()throws Exception{ Path file =new Path("/usr/zs/11.jar"); FSDataOutputStream out = fs.create(file); IOUtils.copyBytes(new FileInputStream("D:\\demo-step.jar"), out, conf); } /** * * @Title: ls * @Description: 列出文件夹下的文件信息 * @param @throws Exception * @return void * @throws */ @Test public void ls()throws Exception{ Path dir =new Path("/usr/zs"); FileStatus[] fss = fs.listStatus(dir); for(FileStatus file :fss){ System.out.println(file.isDirectory()); System.out.println(file.getPath()); System.out.println(file.getModificationTime()); System.out.println(file.getLen()); } } /** * SequenceFile:hdfs 中的序列文件,把多个文件合成(压缩)一个大文件 * :每个小文件:key和value * string:Text * int:IntWritble * long:LongWritble * Map:MapWritble * @throws Exception */ @Test public void smallFiles()throws Exception{ Path big =new Path("/usr/zs/test"); SequenceFile.Writer writer =SequenceFile.createWriter(fs, conf, big, Text.class, Text.class, CompressionType.NONE); for(File file:new File("E:\\data").listFiles()){ writer.append(new Text(file.getName()), new Text(FileUtils.readFileToString(file))); } writer.close(); } /** * * @Title: readSmallFiles * @Description: 读取文件内容 * @param @throws Exception * @return void * @throws */ @Test public void readSmallFiles()throws Exception{ Path big =new Path("/usr/zs/test"); SequenceFile.Reader reader =new Reader(fs, big, conf); while(reader.next(new Text("NOTICE.txt"))){ Text t =new Text(); reader.getCurrentValue(t); System.out.println(t.toString()); } } } 五、备注 以上测试已经通过,可以直接修改后使用。
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3