2017-01-17 3 views
0

HDFS @/user/Cloudera/Test/에 일부 데이터가 있습니다. "hdfs -dfs -cat Test/"을 실행하여 레코드를 볼 수 있습니다.HDFS 파일 시스템 용 URL

이제 동일한 파일을 scala에서 RDD로 읽어야합니다. 나는 scala shell에서 다음을 시도했다.

발 파일 = sc.textFile ("HDFS : //quickstart.cloudera : 8020/사용자/클라우 데라/테스트")

은 그럼 어떤 필터를 작성하고 루프 단어를 읽을 수 있습니다. 하지만 내가 마지막으로 Println을 사용하면 파일을 찾을 수 없다고 말합니다.

누구든지이 경우 HDFS URL이 무엇인지 알 수 있습니까? 참고 : 나는 클라우 데라 CDH5.0 VM을 사용하여

+0

'/ user/Cloudera/Test /'는 텍스트 파일입니까 ?? 그것은 마치 폴더 같아 보입니다. –

답변

1

당신이 불꽃에 파일에 액세스하려는 경우 당신은 단순히 URL을 사용할 수 있습니다. val file = sc.textFile ("/ user/Cloudera/Test") spark는 spark job이 기본적으로 HDfS 디렉토리에서 읽기 때문에 로컬 호스트를 접두사로 추가 할 필요가없는이 파일을 자동으로 감지합니다 .

희망 사항으로 해결됩니다.

+0

작동하지 않았습니다. "hdfs dfs -cat hdfs : /user/cloudera/temp.txt".....를 실행하여 내용을 볼 수 있습니다. 그러나 [val file = sc.textFile ("hdfs :/user/Cloudera/temp. txt ")] Path 경로가 존재하지 않습니다. –

+0

spark 또는 Hadoop에서 작업을 실행하는 경우 접두어로 HDfS를 사용하지 마십시오. HDfS에서 사용자가 언급하지 않아도되는 데이터 파일을 자동으로 검색합니다. 그냥 /user/Cloudera/temp.txt를 보관하십시오. –

+0

"/user/Cloudera/temp.txt"를 사용하면 입력 경로가 존재하지 않습니다 : hdfs : //quickstart.cloudera : 8020/user/Cloudera /temp.txt –

0

대신 포트를 "quickstart.cloudera"사용하고, 단지 IP 주소를 사용

val file = sc.textFile("hdfs://<ip>/user/Cloudera/Test") 
+0

개인적으로 호스트 IP 주소가 정적 인 반면 서버 IP 주소는 변경되기 때문에 개인적으로는 IP 주소의 사용을 권장하지 않습니다. – Fredulom

+0

val file = sc.textFile ("hdfs : //localhost/user/Cloudera/temp.txt") throws 오류 경로가 없습니다. –