생성 된 즉시 데이터를 hadoop에 저장하는 셸 스크립트를 작성하고 있습니다. 내 마스터 노드로 ssh 할 수 있고, 그곳의 폴더에 파일을 복사 한 다음 그 파일을 hadoop에 넣을 수있다. 마스터 노드의 로컬 디스크에 파일을 복사하지 않으려는 쉘 명령을 찾고 있습니다. 더 나은 내가 필요한 것을 설명하기 위해, 여기 아래 내가 지금까지 무엇을 찾을 수 있습니다로컬 파일에 복사하지 않고 원격 파일을 hadoop에 넣기
1) 마스터 노드의 로컬 디스크에 파일을 복사 : 이미 설정 SSH 연결 키를 사용하여 한
scp test.txt [email protected]:/folderName/
. 따라서 비밀번호를 입력하지 않아도됩니다.
ssh [email protected] "hadoop dfs -put /folderName/test.txt hadoopFolderName/"
은 내가 무엇을 찾고 있어요 것은 파이프/하나에이 두 단계를 결합에있는 파일의 로컬 복사본을 생략하는 방법입니다 :
2) 원격으로 하둡을 실행하기 위해 ssh를 사용할 수있는 명령을 넣어 masterNode의 로컬 디스크
cat test.txt | ssh [email protected] "hadoop dfs -put - hadoopFoldername/"
내가 복사 비슷한 트릭을 사용했습니다 :
덕분 즉
, 나는 내가
배관 문제가 해결되었습니다. 그러나 파이프의 성능은 먼저 파일을 마스터 노드의 로컬 디스크에 복사 한 다음 Hadoop에 복사하는 것보다 훨씬 느립니다. 어떤 생각? – reza