HDFS下文件读取实验

实现在hadoop hdfs下读出指定文件,并将指定文件中的内容排序,输出到hdfs中。具体代码如下

头文件:

#package org.hadoop.sort;

import java.io.BufferedReader;

import java.lang.Object;

import java.util.List;

//import java.util.Arrays;

import java.io.InputStreamReader;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.FSDataInputStream;

import org.apache.hadoop.fs.FSDataOutputStream;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;

其他代码部分:


public class HDFSfileifexist {

public static void myWrite(String content, String name){

try

{

Configuration conf=new Configuration();

conf.set("fs.defaultFS", "hdfs://localhost:9000");

conf.set("fs.hdfs.omp", "org.apache.hadoop.hdfs.DistributedFileSystem");

FileSystem fs=FileSystem.get(conf);

byte[] buff=content.getBytes();

String filename=name;

FSDataOutputStream os=fs.create(new Path(filename));

os.write(buff,0,buff.length);

System.out.println("Creat:"+filename);

os.close();

fs.close();

}

catch(Exception e)

{

e.printStackTrace();

}

}

public static String myRead(String fileName){

String content = null;

try

{

Configuration conf=new Configuration();

conf.set("fs.defaultFS", "hdfs://localhost:9000");

conf.set("fs.hdfs.omp", "org.apache.hadoop.hdfs.DistributedFileSystem");

FileSystem fs=FileSystem.get(conf);

Path file=new Path(fileName);

FSDataInputStream getIt=fs.open(file);

BufferedReader d=new BufferedReader(new InputStreamReader(getIt));

content=d.readLine();

System.out.println(""+content);

d.close();

fs.close();


}




catch(Exception e)

{

e.printStackTrace();

}

return content;

}


public static String merge(String s1){

String a = s1;

String [] s = a.split(" ");

String b = "";

s[0].compareTo(s[1]);

int temp;


int i,j;

for(i=0;iInteger.parseInt(s[j+1]))

                {

                    String temp1=s[j];

                    s[j]=s[j+1];

                  s[j+1]=temp1;

                }

            }

        }


//Arrays.sort(s);

//Connections.sort();

System.out.println("a:"+a);

for(int i1 = 0; i1 < s.length; i1++){

b += s[i1]+" ";

}

System.out.println(b);

return b;

}


public static void main(String[] args) {

String s1 = myRead("hdfs://localhost:9000/input/1_3.txt");

//String s2 = myRead("hdfs://localhost:9000/input/1_2.txt");

String s3 = merge(s1);

myWrite(s3,"hdfs://localhost:9000/input/result.txt");

}

}

你可能感兴趣的:(HDFS下文件读取实验)