내 맵 함수 내에서 호출되는 쉘 함수가 있습니다. 쉘 함수는 입력 파일과 출력 파일이라는 두 개의 매개 변수를 취합니다. 이 input.txt를 파일이 HDFS에 상주하며 경우 output.txt 파일이 다시 HDFS에 기록 될 필요가 있다는이HDFS에서 쉘 함수로 직접 파일 읽기
$> unix-binary /pathin/input.txt /pathout/output.txt
문제와 같은 뭔가가있다. 현재는 fs.copyToLocalFile
으로 필요한 파일을 로컬 하드 드라이브에 복사하고 unix 바이너리를 호출 한 다음 fs.copyFromLocalFile
으로 HDFS에 output.txt를 다시 작성합니다. 이 접근법의 문제점은 성능을 저하시키는 HDD에 상당한 양의 읽기 및 쓰기가 필요하기 때문에 최적이 아니라는 것입니다. 그래서, 내 질문은 어떻게 HDFS 파일을 직접 입력으로 읽고 결과를 HDFS로 직접 출력 할 수 있는가하는 것입니다. 분명히 $>unix-binary hdfs://master:53410/pathin/input.txt' hdfs://master:54310/pathout/output.txt
이 작동하지 않습니다. 주위에 다른 방법이 있습니까? 어떻게하면 HDFS 파일을 loacl 파일로 취급 할 수 있습니까? C로 작성된 유닉스 이진 소스 코드에 접근 할 수 있습니다. 소스 코드를 변경하면 도움이 될까요? 감사합니다.