实现在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;i<s.length;i++)
{
for(j=0;j<s.length-1-i;j++)
{
if(Integer.parseInt(s[j])>Integer.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");
}
}
网友评论