HBase Snappy 압축 오픈

원본 링크:http://www.kissyu.org/2016/10/06/HBase%E5%BC%80%E5%90%AFSnappy%E5%8E%8B%E7%BC%A9/
배경
HBase 는 현재 주류 인 Nosql 데이터베이스 중 하나 로 우수한 수준의 확장 능력 때문에 업계 에 서 는 이 를 대량의 데 이 터 를 저장 하 는 데 자주 사용한다.저희 가 HBase 를 사용 할 때 서버 의 저장 비용 을 절약 하기 위해 HBase 의 데이터 압축 기능 을 켜 는 것 을 권장 합 니 다.주류 의 HBase 압축 방식 은 LZO 와 Snappy 가 있 는데 Snappy 의 압축 비 는 LZO 보다 약간 낫다.주의해 야 할 것 은 Snappy 는 단독으로 다운로드 하고 컴 파일 하여 설치 해 야 하 는 것 입 니 다. 이 과정 은 본 논문 에서 토론 한 범례 안에 있 지 않 습 니 다. 본 고 는 주로 HBase 셸 을 통 해 Snappy 압축 을 어떻게 여 는 지 소개 합 니 다.
순서
Snappy 를 지정 하 는 장면 은 두 가지 가 있 습 니 다.
  • 생 성 시 지정 한 형식 입 니 다.
  • 이미 만들어 진 열 족의 압축 형식 을 수정 합 니 다.

  • 창설
    우 리 는 표를 만 들 기 시작 할 때 Snappy 압축 형식 을 지정 할 수 있 습 니 다.
    hbase> create 'test', { NAME => 'c', COMPRESSION => 'SNAPPY' }
    hbase> describe 'test'
    Table test is ENABLED
    test
    COLUMN FAMILIES DESCRIPTION
    {NAME => 'c', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'SNAPPY', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP
    _DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}

    수정 하 다.
    describe 를 통 해 test 표 의 압축 형식 이 SNAPPY 인 것 을 볼 수 있 습 니 다.
    만약 에 우리 가 표 한 장 을 가지 고 있 고 표 안에 데이터 가 있다 고 가정 하면 우 리 는 표 에 Snappy 압축 형식 을 추가 할 수 있 습 니 다.
    저 희 는 test 표를 예 로 들 면...
     
    1. 압축 형식 이 없 는 test 표를 만 들 고 10 여 G 의 데 이 터 를 가 져 옵 니 다.
    압축 되 지 않 기 전에 test 표 의 데 이 터 는 hdfs 에서 모두 12.2G 의 디스크 공간 을 차지 하 는 것 을 볼 수 있 습 니 다.
    $ hadoop fs -du -h /hbase/data/default/
    12.2 G /hbase/data/default/test

     
    2. 그리고 disable test 표:
    hbase> disable 'test'

     
    3. 압축 형식 수정:
    주의해 야 할 것 은 압축 형식 을 수정 할 때 반드시 한 열 족 한 열 족의 수정 이 필요 하 다 는 것 이다.
    hbase> alter 'test', NAME => 'c', COMPRESSION => 'snappy'

    4. enable test 표:
    hbase> enable 'test'

    5. enable 이후 에 한 번 더 큰 합병 을 해 야 압축 형식 이 유효 합 니 다.
    주의해 야 할 것 은 표 가 바 쁜 기간 에 대통 합 작업 을 절대 집행 해 서 는 안 된다 는 것 이다.
    hbase> major_compact 'test'

    6. describe test 표 가 유효 하 는 지 확인 하기:
    hbase> describe 'test'
    Table test is ENABLED
    test
    COLUMN FAMILIES DESCRIPTION
    {NAME => 'c', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'SNAPPY', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP
    _DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}

    7. 마지막 으로 Snappy 를 켠 후의 압축 비:
    우 리 는 거의 33% 압축 된 것 을 볼 수 있 는데, 여전히 매우 가관이다.
    $ hadoop fs -du -h /hbase/data/default/
    8.1 G /hbase/data/default/test

     
    총결산
    본 고 는 주로 HBase 셸 을 이용 하여 표 에 Snappy 압축 을 여 는 방법 을 소개 한다.실천 을 통 해 Snappy 는 비교적 높 은 압축 비 를 가지 고 있 음 을 나타 낸다.Snappy 압축 을 켜 면 기업 은 디스크 저장 원 가 를 크게 절약 할 수 있 습 니 다. 특히 기업 이 SSD 저장 소 를 사용 할 때 절약 하 는 원가 가 더 많 을 것 입 니 다.

    좋은 웹페이지 즐겨찾기