2012-02-07 2 views
2

Hadoop 책에서는 파일 생성시 파일 단위 블록 크기를 지정할 수 있다고합니다.Hadoop 파일 단위 블록 크기

"분할 크기를 늘리는 가장 자연스러운 방법은 HDFS에서 dfs.block.size를 설정하거나 파일 구성시 파일 단위로 더 큰 블록을 갖는 것입니다."

파일 작성시 어떻게하는지 생각해보십시오.

hadoop fs -D dfs.block.size=file-size -put local_name remote_location 

하거나 할 때 당신에게 dfs.block.size을 지정하는 자바 API를 사용할 수 있습니다 내가 값 = 파일 크기에이 설정하여 희망, 파일이

을 분할되지 않습니다
+0

기본적으로 스트리밍 작업 (C++ 코드)이 있으며 단순히 -CoprFromLocal을 사용하여 입력 파일을 HDFS로 복사합니다. 파일 블록 크기를 지정하는 데 사용할 수있는 옵션이 있습니까? HDFS는 파일을 만들 때 블록 크기를 지정하는 API를 제공한다고 생각합니다. FileSystem.create (경로, 덮어 쓰기, 버퍼 크기, 복제, blockSize, 진행). 그러나 아마 나는 이것을 사용할 수 없다. 나는 cli 옵션을 찾고있다. – sunillp

답변

4

당신은 CLI를 사용할 수 있습니다 파일을 만들거나 복사하려고합니다.

Configuration conf = new Configuration(); 
conf.setInt("dfs.block.size",file-size); 
+0

나는 CLI 옵션을 시도했다. 하지만 작업이 시작될 때 MapReduce는 64MB보다 크면 파일을 분할하려고 시도하지만 HDFS로 파일을 복사하는 동안 df.block.size는 256MB로 언급했습니다. 나는 MR이 위의 옵션으로 파일을 분할하지 않기를 바랬다. – sunillp

+0

에서 50070에서 파일의 블록 크기를 확인할 수 있습니다. ** 파일 시스템을 탐색하여 ** 파일 크기가 올바른지 확인할 수 있습니다. –