삽질한 방법을 여기 적는다.

hadoop hdfs 와 hbase 가 이미 설치되어있다는 전제 하에 아래 설명을 이어나간다.

아래 방법은 모든 master와 slave 노드들에 적용해야 한다.

ubuntu 18v 에서 진행하였다.

Docker 를 이용하여 설치한 Hadoop Cluster 위에서 진행하였다.

 

 

 

 

 

 

 

아래 명령으로 snappy 를 설치한다.

 

sudo apt-get update ; sudo apt-get install snappy -y

참고

 

 

 

 

 

 

 

 

설치 후 libsnappy.so 파일을 /usr/local/hadoop/lib/native/ 로 복사한다.

 

cp /usr/local/lib/libsnappy.so /usr/local/hadoop/lib/native/

 

만약 위의 경로(/usr/local/lib/) 에 libsnappy.so 가 없다면

find / -name "libsnappy.so" 명령어로 찾거나 여기서 받는다.

뒤에 /usr/local/hadoop/lib/native 경로는 hadoop 의 native library 경로이다.

hadoop 이 설치되어 있다면 libhadoop.so 파일이 분명 존재할 것이다.

그 파일이 있는 경로에 libsnappy.so 를 복사하면 된다.

 

 

 

 

hbase-env.sh 에 아래 경로를 추가.

이 경로는 바로 위에서 말한 hadoop native library 경로이다.

 

export HBASE_LIBRARY_PATH=/usr/local/hadoop/lib/native

 

 

 

 

 

hbase-site.xml 에 아래 property 를 추가한다.

 

<property>

<name>hbase.block.data.cachecompressed</name>

<value>true</value>

</property>

 

 

 

 

 

 

잘 설치 되었는지 아래 명령어로 테스트

 

hbase org.apache.hadoop.hbase.util.CompressionTest file:///tmp/test.txt snappy

hbase org.apache.hadoop.hbase.util.CompressionTest hdfs:///hbase/tmp/test.txt snappy

 

 

첫번째 명령어의 /tmp/test.txt 가 없어도 괜찮다. 자체적으로 만들었다가 지우는 듯

두번째 명령어의 /hbase/~ 는 hbase-site.xml 에 있는 hbase.rootdir 값이어야 한다.

SUCCESS 가 뜨면 잘 설치되었다는 의미.

 

 

 

 

 

HBase를 재시작한다.

/bin/stop-hbase.sh ; /bin/start-hbase.sh

 

 

 

 

table 을 만들 때 COMPRESSION 옵션을 넣어 만들면 압축이 적용된 table 을 만들 수 있다.

 

기본 table 만드는 방법)
 create 'mytable', {NAME => 'cf', COMPRESSION => 'SNAPPY'}

 

block size 를 추가하여 만드는 방법)

 create 'mytable', {NAME => 'cf', BLOCKSIZE => '128000', COMPRESSION => 'SNAPPY'}

 

block size 및 split 을 추가하여 만드는 방법)

 create 'mytable', {NAME => 'cf', BLOCKSIZE => '128000', COMPRESSION => 'SNAPPY'}, SPLITS => ['0','8624222','17248444','25872666','34496888','43121110','51745332','60369554']

 

 

 

 

 

table 에 SNAPPY가 적용되었는지 보고싶다면 아래 명령어를 사용해본다.

describe "mytable"

 

위의 이미지처럼 COMPRESSION => 'SNAPPY' 가 뜨면 적용이 잘 되었다는 의미.

 

 

 

 

 

 

 

 

 

 

후기

 

왜 들어가는 블로그마다 내용이 하나씩 빠져있는 것인가...

여기 저기 흩어져있는 핵심 내용들을 드래곤볼 마냥 모아서 여기 하나로 정리했다.

눈알이 빠질 것 같음.

물론 그 블로그들은 아래 참고에 나열해두었음.

 

참고

https://www.howtoinstall.co/en/ubuntu/trusty/snappy

http://hanishblogger.blogspot.com/2013/03/snappy-compression-in-hbase.html

https://medium.com/@thanuja919/compress-hbase-tables-using-snappy-11ff5728c4e

https://programmer.help/blogs/install-the-compression-tool-snappy-mainly-for-hbase-in-the-hadoop-2.x-cluster.html

http://neep305.blogspot.com/2015/01/hadoop-snappy.html

 

 

 

 

 

 

 

 

+ Recent posts