美文网首页
HDFS下文件读取实验

HDFS下文件读取实验

作者: Mr_K_ | 来源:发表于2019-12-26 15:35 被阅读0次

    实现在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");
    
    }
    
    }
    
    

    相关文章

      网友评论

          本文标题:HDFS下文件读取实验

          本文链接:https://www.haomeiwen.com/subject/coxloctx.html