Posting

Machbase의 최신 소식을 지금 만나보세요

[기초/설치] 리눅스 RPM 패키지 설치

CentOS는 기업 고객들이 현장에서 많이 사용하고 있는 리눅스 버전입니다. RedHat 리눅스(RHEL)와 호환됩니다. 이번 포스팅에서는 CentOS 6.8에 마크베이스를 설치하는 방법을 소개해 드리겠습니다. 많은 상용 서비스가 레드햇 리눅스를 기반에서 동작하며, MACHBASE 기본적으로 RHEL을 지원하고 있습니다. 이번 포스트의 내용을 수행할 환경은 다음과 같습니다.

  • CPU : Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz
  • Memory : 8GB
  • OS : CentOS 6.8

MACHBASE 홈페이지에서 다운로드를 신청하셔서 RPM 패키지를 다운로드 받아주세요

STEP 01. 설치

RPM 패키지이기 때문에, ROOT권한으로 rpm -ivh 명령어를 설치해 주세요. 하지만 아마 아래와 같이 [ERROR]가 발생될 것입니다.

[machbase@localhost ~]$ sudo rpm -ivh machbase-community-3.5.0.826b8f2.community-LINUX-X86-64-release.rpm
준비 중… ########################################### [100%]
1:machbase ########################################### [100%]

Create database
[Error] Failed to initialize database engine.
Handle limit(1024) from the system is less than that of property(8192). Tune system handle limit or decrease the property ‘HANDLE_LIMIT’, Errorcode :BCF

Ulimit check
Set ulimit option first. Currently the limit is set to 1024. It must be greater than 65535.
Machbase has been installed in : /opt/machbase/
To start Machbase, run the command : service machbased start
To change server port, run the command : service machbased port
To use interactive SQL, execute : machsql
Documentation is available at http://www.machbase.com/document

내용을 살펴보면 파일을 열 수 있는 최대 개수를 늘려달라는 에러입니다. 현재는 1024개로 되어 있지만, 최소 8192개를 설정해야 한다고 합니다. 혹시 모르니까 다시한번 시도해 보겠습니다. 똑같이 root 권한으로 rpm 명령어를 실행합니다.

[machbase@localhost ~]$ sudo rpm -ivh machbase-community-3.5.0.826b8f2.community-LINUX-X86-64-release.rpm
준비 중… ########################################### [100%]
1:machbase ########################################### [100%]

Create database
[Error] Failed to initialize database engine.
Handle limit(1024) from the system is less than that of property(8192). Tune system handle limit or decrease the property ‘HANDLE_LIMIT’, Errorcode :BCF

Ulimit check
Set ulimit option first. Currently the limit is set to 1024. It must be greater than 65535.
Machbase has been installed in : /opt/machbase/
To start Machbase, run the command : service machbased start
To change server port, run the command : service machbased port
To use interactive SQL, execute : machsql
Documentation is available at http://www.machbase.com/document

역시나 설치 에러가 발생했습니다. 파일 핸들의 최대치가 1024이기 때문입니다.  MACHBASE의 최소 8192가 필요하다는 것을 기억해 주세요.

STEP 02. 파일 오픈 개수 설정

ROOT 계정으로 리눅스에서 열 수 있는 파일의 개수를 높여 봅시다. 먼저 다음과 같이 현재 설정값을 확인해 봅시다.

[root@localhost machbase]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31885
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 31885
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[root@localhost machbase]# ulimit -Sn
1024

위와 같이 1024로 설정되었다면, 이 값을 수정해야 합니다. 다음과 같이 /etc/security/limits.conf 에 다음의 내용을 추가해 주세요.

sudo vi /etc/security/limits.conf

그리고 아래와 같이 내용을 변경해 주세요. 이 부분은 우분투나 레드햇이나 모두 동일하게 적용되는 내용입니다.

* hard nofile 65535
* soft nofile 65535

변경을 적용하고 다시 reboot해 주세요. 만약 REBOOT를 하고 싶지 않다면, 다음의 링크를 참고해 주세요.

https://superuser.com/questions/740000/modify-and-apply-limits-conf-without-reboot

변경된 내용 확인해 봅시다.

machbase@localhost:~$ ulimit -Sn
65536

드디어 65535으로 변경되었으니, 다시 설치를 시도해 보겠습니다.

[machbase@localhost ~]$ sudo rpm -ivh machbase-community-3.5.0.826b8f2.community-LINUX-X86-64-release.rpm
준비 중… ########################################### [100%]
machbase-3.5.0-826b8f2.x86_64 패키지는 이미 설치되어 있습니다

설치가 완료된 다음 매뉴얼에 있는대로 start 를 수행해보니 아래와 같이 데이터베이스를 만들라고 합니다.

[machbase@localhost ~]$ sudo service machbased start
—————————————————————–
Machbase Administration Tool
Release Version – 3.5.0.826b8f2.community 
Copyright 2014, InfiniFlux Corp. or its subsidiaries
All Rights Reserved
—————————————————————–
[Error] Failed to start database. You must create database first.


STEP 03. 데이터베이스 생성

데이터베이스를 생성하기 위해 createdb 명령을 아래와 같이 수행합니다.

[machbase@localhost ~]$ sudo service machbased createdb
—————————————————————–
Machbase Administration Tool
Release Version – 3.5.0.826b8f2.community 
Copyright 2014, InfiniFlux Corp. or its subsidiaries
All Rights Reserved
—————————————————————–
Database created successfully.

드디어 위와 같이 데이터베이스 생성에 성공한 것을 볼 수 있습니다. 그럼 구동해 보겠습니다.

[machbase@localhost ~]$ sudo service machbased start
—————————————————————–
Machbase Administration Tool
Release Version – 3.5.0.826b8f2.community 
Copyright 2014, InfiniFlux Corp. or its subsidiaries
All Rights Reserved
—————————————————————–
Waiting for Machbase server start.
Machbase server started successfully.

데이터베이스 구동도 성공했습니다.

STEP 04. 환경변수 추가

매뉴얼을 보면 마크베이스의 바이너리 및 라이브러리를 활용하려면 환경변수에 추가해야 한다고 나와있습니다. 아래와 같이 (.bashrc)에 추가해 주시면 됩니다. 

export MACHBASE_HOME=/opt/machbase/current
export PATH=$MACHBASE_HOME/bin:$PATH 
export LD_LIBRARY_PATH=$MACHBASE_HOME/lib:$LD_LIBRARY_PATH

RPM 패키지의 경우 모든 파일을 /opt/machbase/current 에 자동 설치합니다. 설치가 완료되면 다시 로그인을 하거나, 환경변수를 다시 로딩해 주세요. 그럼 다음의 결과를 확인할 수 있습니다.

[machbase@localhost ~]$ env | grep machbase
LD_LIBRARY_PATH=/opt/machbase/current/lib:………..
PATH=/opt/machbase/current/bin:…….
MACHBASE_HOME=/opt/machbase/current

꼭 PATH 및 LD_LIBRARY_PATH에도 bin 및 lib 디렉토리가 들어 있는지 확인해 주세요.

STEP 05. 동작 확인

이번에는 machsql을 통해 접속 테스트를 해 보자. 초기 아이디 및 패스워드는 다음과 같습니다.

  • ID : SYS
  • PW : MANAGER
machbase@localhost:~/machbase_home$ machsql
============================
Machbase Client Query Utility
Release Version 3.5.0.826b8f2.community
Copyright 2014 InfiniFlux Corporation or its subsidiaries.
All Rights Reserved.
============================
Machbase server address (Default:127.0.0.1) : 
Machbase user ID (Default:SYS)
Machbase User Password : 
MACHBASE_CONNECT_MODE=INET, PORT=5656
Type ‘help’ to display a list of available commands.
Mach> select * from m$tables;
NAME TYPE DATABASE_ID ID USER_ID COLCOUNT 
——————————————————–
M$SYS_COLLECTOR_COLUMNS 1 -1 1000049 0 11 
M$COLUMNS 1 -1 1000043 0 13 
M$SYS_COLUMNS 1 -1 1000042 0 13 
M$SYS_INDEX_COLUMNS 1 -1 1000045 0 9 
M$SYS_COLLECTOR_SOURCES 1 -1 1000050 0 7 
M$SYS_TABLESPACE_DISKS 1 -1 1000020 0 8 
M$SYS_COLLECTORS 1 -1 1000048 0 25 
M$SYS_TABLES 1 -1 1000038 0 8 
M$TABLES 1 -1 1000040 0 8 
M$SYS_INDEXES 1 -1 1000044 0 15 
M$SYS_USERS 1 -1 1000046 0 4 
M$SYS_TABLESPACES 1 -1 1000016 0 5 
M$SYS_COLLECTORMANAGERS 1 -1 1000047 0 7 
[13] row(s) selected.
Elapsed time: 0.002
Mach>

STEP 06. 데이터베이스 종료

마지막으로 데이터베이스를 종료하겠습니다.

[machbase@localhost ~]$ sudo service machbased stop
—————————————————————–
Machbase Administration Tool
Release Version – 3.5.0.826b8f2.community 
Copyright 2014, InfiniFlux Corp. or its subsidiaries
All Rights Reserved
—————————————————————–
Waiting for Machbase server shut down….
Machbase server shut down successfully.


마치며

설치 – 가동 – 접속까지 간단히 진행해 봤습니다. 파일 다운로드를 제외하면, 운영체제의 환경 설정 부분을 제외하면 설치에 크게 어려운 점은 없을 꺼라 생각됩니다.

연관 포스트

C언어로 Binary data를 Machbase에 넣기

1.개요 Data를 다루다 보면 numeric, varchar 형 데이터뿐만 아니라 JPG, PNG, MP3와 같은 Binary data도 database에 저장해야 할 때가 존재한다. 그러나 일반 data들과는 달리 Binary

[MACHBASE 연동] Android studio에서 JDBC 연결하기

마크베이스 기술지원본부 이현민 1. 개요 수많은 데이터들이 많은 환경에서 생성되고 있는 오늘날, 우리 현대인들의 동반자인 스마트폰 또한 데이터생성의 주체로써 또는 전달자로서 알게 모르게 그 구실을