2009-04-24 5 views
0

내가 잘못했을 수도 있지만 Apache Hadoop에서 본 모든 예 (?)는 로컬 파일 시스템에 저장된 파일 (예 : org.apache.hadoop.examples.Grep)을 입력으로 사용합니다.)Hadoop : HDFS에서 map/reduce

Hadoop 파일 시스템 (HDFS)에 데이터를로드하고 저장하는 방법이 있습니까? 예를 들어, hadoop-0.19.1/bin/hadoop dfs -put ~/local.xls stored.xls을 사용하여 HDFS에 'stored.xls'라는 탭으로 구분 된 파일을 넣습니다. JobConf가 그것을 읽도록 어떻게 구성해야합니까?

감사합니다.

답변

0
 
JobConf conf = new JobConf(getConf(), ...); 
... 
FileInputFormat.setInputPaths(conf, new Path("stored.xls")) 
... 
JobClient.runJob(conf); 
... 

setInputPaths가 수행합니다.

+0

감사 할 것입니다,하지만 말하는 예외가 발생합니다 "파일 : /home/me/workspace/HADOOP/stored.xls는"(이 로컬 경로) 존재하지 않습니다. HDFS에있는 파일은 '/user/me/stored.xls'에 있습니다. 나 또한 새로운 경로 ("/ user/me/stored.xls")를 시도했지만 너무 효과적이지 않습니다. – Pierre

+0

먼저, Hadoop이 "hdfs :"보다는 "file :"에 대해 불평하는 것이 이상합니다. hadoop-site.xml의 구성이 잘못되었을 수 있습니다. 둘째, 여전히 작동하지 않는다면, mkdir은 "입력"디렉토리에 stored.xls를 입력하고 저장합니다 (모두 bin/hadoop fs 명령 사용). 그리고 새로운 경로 ("stored.xls") 대신에 새로운 경로 ("입력") – yogman

+0

작업을 실행하기 위해 명령 줄을 공개해도 해를 끼치 지 않습니다. – yogman

1

Pierre, Hadoop의 기본 구성은 분산 모드가 아닌 로컬 모드에서 실행하는 것입니다. hadoop-site.xml에서 일부 구성을 수정해야 할 가능성이 높습니다. hdfs : // youraddress : yourport가되어야 할 때 기본 파일 시스템이 여전히 localhost 인 것처럼 보입니다. fs.default.name에 대한 설정을보고 자세한 내용은 설정 도움말 (Michael Noll's blog)을 참조하십시오.

1

FileInputFormat.setInputPaths (conf, new Path ("hdfs : // hostname : port/user/me/stored.xls"));

관련 문제