삽질한 방법을 여기 적는다.
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 만드는 방법)
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
http://neep305.blogspot.com/2015/01/hadoop-snappy.html
'HBase' 카테고리의 다른 글
[HBase] Current heap configuration for MemStore and BlockCache exceeds the threshold required for successful cluster operation. 에러 발생 (0) | 2019.12.05 |
---|---|
[HBase] 성능 튜닝 참고 링크들 (0) | 2019.12.02 |
[HBase] auto balance 방법 링크 (0) | 2019.11.21 |
[HBase] 테이블 partition 개수와 block size 조절하는 방법 (0) | 2019.11.21 |
[HBase] table 의 partition 개수 조절하기 (0) | 2019.11.20 |