「java集成hdfs」java集成开发环境哪个好

博主:adminadmin 2022-11-23 14:54:09 59

本篇文章给大家谈谈java集成hdfs,以及java集成开发环境哪个好对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何用java下载hdfs里面的文件,最好是实现与jsp整合的

开启jps 启动线程;

FileSystem fs = FileSystem.get(new URI(path),new Configuration());

fsin = fs.open(new Path(path));

IOUtils.copyBytes(fsin, System.out, 1024,true);

如何使用Java API读写HDFS

//流读入和写入

InputStream in=null;

//获取HDFS的conf

//读取HDFS上的文件系统

FileSystem hdfs=FileSystem.get(conf);

//使用缓冲流,进行按行读取的功能

BufferedReader buff=null;

//获取日志文件的根目录

Path listf =new Path("hdfs://10.2.143.5:9090/root/myfile/");

//获取根目录下的所有2级子文件目录

FileStatus stats[]=hdfs.listStatus(listf);

//自定义j,方便查看插入信息

int j=0;

for(int i = 0; i stats.length; i++){

//获取子目录下的文件路径

FileStatus temp[]=hdfs.listStatus(new Path(stats[i].getPath().toString()));

for(int k = 0; k temp.length;k++){

System.out.println("文件路径名:"+temp[k].getPath().toString());

//获取Path

Path p=new Path(temp[k].getPath().toString());

//打开文件流

in=hdfs.open(p);

//BufferedReader包装一个流

buff=new BufferedReader(new InputStreamReader(in));

String str=null;

while((str=buff.readLine())!=null){

System.out.println(str);

}

buff.close();

in.close();

}

java怎么连接hdfs文件系统,需要哪些包?

apache的Hadoop项目提供一类api可以通过java工程操作hdfs中的文件,包括:文件打开,读写,删除等、目录的创建,删除,读取目录中所有文件等。

1、到下载Hadoop,解压后把所有jar加入项目的lib里

2、程序处理步骤: 1)得到Configuration对象,2)得到FileSystem对象,3)进行文件操作,简单示例如下:

/**

*

*/

package org.jrs.wlh;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.FSDataInputStream;

import org.apache.hadoop.fs.FSDataOutputStream;

import org.apache.hadoop.fs.FileStatus;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;

/**

* @PutMeger.java

* java操作hdfs 往 hdfs中上传数据

* @version $Revision$/br

* update: $Date$

*/

public class PutMeger {

public static void main(String[] args) throws IOException {

String[] str = new String[]{"E:\\hadoop\\UploadFileClient.java","hdfs://master:9000/user/hadoop/inccnt.java"};

Configuration conf = new Configuration();

FileSystem fileS= FileSystem.get(conf);

FileSystem localFile = FileSystem.getLocal(conf); //得到一个本地的FileSystem对象

Path input = new Path(str[0]); //设定文件输入保存路径

Path out = new Path(str[1]); //文件到hdfs输出路径

try{

FileStatus[] inputFile = localFile.listStatus(input); //listStatus得到输入文件路径的文件列表

FSDataOutputStream outStream = fileS.create(out); //创建输出流

for (int i = 0; i inputFile.length; i++) {

System.out.println(inputFile[i].getPath().getName());

FSDataInputStream in = localFile.open(inputFile[i].getPath());

byte buffer[] = new byte[1024];

int bytesRead = 0;

while((bytesRead = in.read(buffer))0){ //按照字节读取数据

System.out.println(buffer);

outStream.write(buffer,0,bytesRead);

}

in.close();

}

}catch(Exception e){

e.printStackTrace();

}

}

}

怎么使用java代码直接将从外部拿到的数据存入hdfs

存入HDFS有好几种数据格式,我这里给你列出一种格式的存储,sequence的

public class SeqWrite {

private static final String[] data = { "a,b,c,d,e,f,g", "h,i,j,k,l,m,n", "o,p,q,r,s,t", "u,v,w,x,y,z", "0,1,2,3,4", "5,6,7,8,9" };

public static void main(String[] args) throws IOException, Exception {

Configuration configuration = new Configuration();

//这里是你主机的地址

configuration.set("fs.defaultFS", "192.168.51.140");

//这个是存储的路径

Path path = new Path("/tmp/test1.seq");

Option option = SequenceFile.Writer.file(path);

Option optKey = SequenceFile.Writer.keyClass(IntWritable.class);

Option optValue = SequenceFile.Writer.valueClass(Text.class);

SequenceFile.Writer writer = null;

IntWritable key = new IntWritable(10);

Text value = new Text();

writer = SequenceFile.createWriter(configuration, option, optKey, optValue);

for (int i = 0; i  data.length; i++) {

key.set(i);

value.set(data[i]);

writer.append(key, value);

writer.hsync();

Thread.sleep(10000L);

}

IOUtils.closeStream(writer);

}

}

关于用java写程序把本地文件上传到HDFS中的问题

将这FileSystem hdfs = FileSystem.get(config);

改成FileSystem hdfs = FileSystem.get(URI.create("hdfs://master:9000"),config)

上面那句取得的是本地文件系统对象,改成下面这个才是取得hdfs文件系统对象,当你要操作本地文件对象的时候就要用上面那句取得本地文件对象,我在2.7.4刚开始也是跟你一样的错误,改为下面的就可以了

关于java集成hdfs和java集成开发环境哪个好的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。