[HADOOP] dfs 파일의 블록 크기 변경
HADOOPdfs 파일의 블록 크기 변경
내 맵은 특정 파일 세트 (총 2TB)를 구문 분석 할 때 현재 비효율적입니다. Hadoop dfs의 파일 크기를 64MB에서 128MB로 변경하고 싶습니다. 필자는 전체 클러스터가 아닌 한 세트의 파일에 대해서만 문서에서이를 수행하는 방법을 찾을 수 없습니다.
어떤 명령이 업로드시 블록 크기를 변경합니까? (예 : 로컬에서 DFS로 복사).
해결법
-
==============================
1.내 대답이 바뀐다! 명령 줄을 사용할 때 fs.local.block.size 구성 설정을 적절히 설정하면됩니다.
내 대답이 바뀐다! 명령 줄을 사용할 때 fs.local.block.size 구성 설정을 적절히 설정하면됩니다.
hadoop fs -D fs.local.block.size=134217728 -put local_name remote_location
원문 답변
Hadoop API를 사용하여 파일을 만들 때 프로그래밍 방식으로 블록 크기를 지정할 수 있습니다. 불행히도 hadoop fs -put 명령을 사용하여 명령 줄에서이 작업을 수행 할 수 없습니다. 원하는대로하려면 로컬 파일을 원격 위치에 복사하는 코드를 작성해야합니다. 그것은 어렵지 않다. 로컬 파일을위한 FileInputStream을 열고 FileSystem.create로 원격 OutputStream을 만든 다음 Apache Commons IO에서 IOUtils.copy와 같은 것을 사용하여 두 스트림 사이를 복사한다.
-
==============================
2.나를 위해, 나는 Bkkbrad의 대답을 약간 바꾸어서 다른 사람이이 질문을 나중에 발견 할 경우를 대비하여 나의 설정과 함께 작동하도록해야만했다. 저도 Ubuntu 10.10에서 Hadoop 0.20을 실행했습니다 : hadoop fs -D dfs.block.size = 134217728 -put local_name remote_location 나를위한 설정은 fs.local.block.size가 아니라 dfs.block.size입니다.
나를 위해, 나는 Bkkbrad의 대답을 약간 바꾸어서 다른 사람이이 질문을 나중에 발견 할 경우를 대비하여 나의 설정과 함께 작동하도록해야만했다. 저도 Ubuntu 10.10에서 Hadoop 0.20을 실행했습니다 : hadoop fs -D dfs.block.size = 134217728 -put local_name remote_location 나를위한 설정은 fs.local.block.size가 아니라 dfs.block.size입니다.
-
==============================
3.hdfs-site.xml 파일에서 dfs.block.size라는 속성을 사용하여 블록 크기를 변경할 수 있습니다. 노트 : 우리는 크기를 비트 단위로 언급해야합니다. 예 : 134217728 비트 = 128MB.
hdfs-site.xml 파일에서 dfs.block.size라는 속성을 사용하여 블록 크기를 변경할 수 있습니다. 노트 : 우리는 크기를 비트 단위로 언급해야합니다. 예 : 134217728 비트 = 128MB.
-
==============================
4.다음과 같이 프로그램에서 블록 크기를 수정할 수도 있습니다.
다음과 같이 프로그램에서 블록 크기를 수정할 수도 있습니다.
Configuration conf = new Configuration() ; conf.set( "dfs.block.size", 128*1024*1024) ;
-
==============================
5.conf / 폴더에서 우리는 hdfs-site.xml 설정 파일에서 dfs.block.size 값을 변경할 수 있습니다. hadoop 버전 1.0의 기본 크기는 64MB이고 버전 2.0의 기본 크기는 128MB입니다.
conf / 폴더에서 우리는 hdfs-site.xml 설정 파일에서 dfs.block.size 값을 변경할 수 있습니다. hadoop 버전 1.0의 기본 크기는 64MB이고 버전 2.0의 기본 크기는 128MB입니다.
<property> <name>dfs.block.size<name> <value>134217728<value> <description>Block size<description> <property>
from https://stackoverflow.com/questions/2669800/change-block-size-of-dfs-file by cc-by-sa and MIT license