las operaciones de archivos HDFS basada en Java

las operaciones de archivos HDFS basada en Java

En primer lugar, el contenido del experimento

1, una clase de programación "MyFSDataInputStream", que hereda "org.apache.hadoop.fs.FSDataInputStream", con los siguientes requisitos: un método de lectura de fila implementado en HDFS archivo "readLine ()" especifica, si el extremo de lectura de archivos los retornos de vacío, de lo contrario la línea de archivo de texto.

2, ver los manuales de ayuda de Java u otros materiales con "java.net.URL" y "org.apache.hadoop.fs.FsURLStreamHandler
completa de archivos HDFS salida de programación especifica el texto de fábrica" al terminal.

En segundo lugar, el código del experimento

1,

package Second;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class MyFsDataInputStream extends FSDataInputStream{
	public MyFsDataInputStream(InputStream in) {
		super(in);
	}
	public static String readline(Configuration conf,String filename) throws IOException
	{
		Path filename1=new Path(filename);
		FileSystem fs=FileSystem.get(conf);
		FSDataInputStream in=fs.open(filename1);
		BufferedReader d=new BufferedReader(new InputStreamReader(in));
		String line=d.readLine();
		if (line!=null) {
			d.close();
			in.close();
			return line;
		}else
			return null;
	}
	public static void main(String[] args) throws IOException {
		Configuration conf=new Configuration();
		conf.set("fs.defaultFS", "hdfs://localhost:9000");
		conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
		FileSystem fs=FileSystem.get(conf);
		String filename="/user/hadoop/myLocalFile.txt";
		System.out.println("读取文件:"+filename);
		String o=MyFsDataInputStream.readline(conf, filename);
		System.out.println(o+"\n"+"读取完成");
	}
}

2,

package Second;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;
public class FSUrl {
	static {
		URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
	}
	public static void cat(String filename) throws MalformedURLException, IOException
	{
		InputStream in=new URL("hdfs","localhost",9000,filename).openStream();
		IOUtils.copyBytes(in, System.out,4096,false);
		IOUtils.closeStream(in);
	}
	public static void main(String[] args) throws MalformedURLException, IOException {
		String filename="/user/hadoop/myLocalFile.txt";
		System.out.println("读取文件"+filename);
		FSUrl.cat(filename+"\n读取完成");
	}
}

En tercer lugar, los resultados de explotación

1, una clase de programación "MyFSDataInputStream", que hereda "org.apache.hadoop.fs.FSDataInputStream", con los siguientes requisitos: un método de lectura de fila implementado en HDFS archivo "readLine ()" especifica, si el extremo de lectura de archivos los retornos de vacío, de lo contrario la línea de archivo de texto.

(1), el lanzamiento de un navegador para ver NameNode, la información del nodo DataNode, y la información de archivo
Aquí Insertar imagen Descripciónen cuenta que necesita para empezar a hadoop en el terminal
Aquí Insertar imagen Descripción
(2), el contenido de un navegador para ver el documento
Aquí Insertar imagen Descripción
(3), ejecute el código de resultados Eclipse
Aquí Insertar imagen Descripción

2, ver los manuales de ayuda de Java u otros materiales con "java.net.URL" y la programación "org.apache.hadoop.fs.FsURLStreamHandlerFactory" archivo de salida se especifica HDFS completa texto al terminal.

Contenido (1), archivos de vista
Aquí Insertar imagen Descripción
(2), los resultados de ejecutar el código en Eclipse
Aquí Insertar imagen Descripción

Liberadas dos artículos originales · ganado elogios 5 · Vistas 242

Supongo que te gusta

Origin blog.csdn.net/miss_bear/article/details/105344901
Recomendado
Clasificación