복붙노트

[HADOOP] JAVA를 사용하여 HDFS에서 로컬 파일 시스템으로 파일 복사

HADOOP

JAVA를 사용하여 HDFS에서 로컬 파일 시스템으로 파일 복사

전처리를 위해 HDFS에서 로컬 파일 시스템으로 파일을 복사하려고합니다. 아래 코드는 설명서에 따라 작동해야합니다. 오류 메시지가 표시되지 않고 mapreduce 작업이 원활하게 실행되지만 로컬 하드 드라이브에서 출력을 볼 수 없습니다. 문제가 무엇이라고 생각하십니까? 감사.

        try {
            Path phdfs_input = new Path("hdfs://master:54310/user/hduser/conninput/"+value.toString());
            Path plocal_input = new Path("/home/hduser/Desktop/"+avlue.toString());
            FileSystem fs = FileSystem.get(context.getConfiguration());
            fs.copyToLocalFile(phdfs_input, plocal_input);

           /* String localoutput_file = "/home/hduser/Destop/output/"+value.toString();
            String cmd1[] = {"mafia", "-mfi", ".5", "-ascii", "~/Desktop/"+value.toString(), localoutput_file };
            File mafia_dir = new File("/home/hduser/");
            ShellCommandExecutor s = new ShellCommandExecutor(cmd1, mafia_dir);*/
        } catch (Exception e) {
            e.printStackTrace();
        }

해결법

  1. ==============================

    1.master : 54310 부분을 제공하는 대신 Path 생성자에서 / user / hduser / conninput / "+ value.toString ()을 사용하십시오. 구성에서 master : 54310을 찾아야합니다.

    master : 54310 부분을 제공하는 대신 Path 생성자에서 / user / hduser / conninput / "+ value.toString ()을 사용하십시오. 구성에서 master : 54310을 찾아야합니다.

  2. from https://stackoverflow.com/questions/9494304/copying-files-from-hdfs-to-local-file-system-with-java by cc-by-sa and MIT license