복붙노트

[HADOOP] dfs 파일의 블록 크기 변경

HADOOP

dfs 파일의 블록 크기 변경

내 맵은 특정 파일 세트 (총 2TB)를 구문 분석 할 때 현재 비효율적입니다. Hadoop dfs의 파일 크기를 64MB에서 128MB로 변경하고 싶습니다. 필자는 전체 클러스터가 아닌 한 세트의 파일에 대해서만 문서에서이를 수행하는 방법을 찾을 수 없습니다.

어떤 명령이 업로드시 블록 크기를 변경합니까? (예 : 로컬에서 DFS로 복사).

해결법

  1. ==============================

    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. ==============================

    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. ==============================

    3.hdfs-site.xml 파일에서 dfs.block.size라는 속성을 사용하여 블록 크기를 변경할 수 있습니다. 노트 : 우리는 크기를 비트 단위로 언급해야합니다. 예 : 134217728 비트 = 128MB.

    hdfs-site.xml 파일에서 dfs.block.size라는 속성을 사용하여 블록 크기를 변경할 수 있습니다. 노트 : 우리는 크기를 비트 단위로 언급해야합니다. 예 : 134217728 비트 = 128MB.

  4. ==============================

    4.다음과 같이 프로그램에서 블록 크기를 수정할 수도 있습니다.

    다음과 같이 프로그램에서 블록 크기를 수정할 수도 있습니다.

    Configuration conf = new Configuration() ;
    
    conf.set( "dfs.block.size", 128*1024*1024) ;
    
  5. ==============================

    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>
    
  6. from https://stackoverflow.com/questions/2669800/change-block-size-of-dfs-file by cc-by-sa and MIT license