[AgensGraph] 인터넷이 안되는 Local 환경에서 AG 설치 / Jupyter/AGViewer/Anaconda

Ja L·2023년 3월 14일
0

Install

목록 보기
1/1

virtualbox를 이용해서 linux 설치

virtualbox에서 network 설정을 진행한다.

현재 설정 :
Adapter 1:

  호스트 전용 어댑터 : VirtualBox Host-Only Ethernet Adapter

Adapter 2:

  NAT : 포트포워딩 설정 x


현재 네트워크 설정을 확인

$ ip addr

네트워크에 필요한 기본 툴을 설치

$ yum install net-tools

네트워크 활성화

$ ifup enp0s3

다시 네트워크 설정 확인

$ ifconfig

enp0s3(호스트 전용 어댑터)이 활성화 된 것을 확인


편리한 사용을 위해 mobaXterm에 연결
virtualbox 전용 ip 를 확인하고 mobaXterm과 연결
(local이기 때문에 인터넷 끊겨도 상관없음)

# window cmd
$ ipconfig

mobaXterm ssh에 remote_host_ip 입력


필요한 설치 파일 및 패키지를 모두 리눅스로 전송


인터넷 연결을 모두 종료

$ ifconfig enp0s8 down

fconfig [~] down 과 ifdown [~]의 차이 ?

<결과>
현재 상태 :

enp0s3(호스트 전용 어댑터) 켜진상태 => 192.xxx.xx.1xx
ping 8.8.8.8 => Network is unreachable
mobaXterm 정상 연결

모든 준비 완료!


패키지 설치

$ rpm -ivh unzip-6.0-24.el7_9.x86_64.rpm

Packages.zip 을 새로운 폴더에 압축풀기

$ unzip Packages.zip -d ./Packages

로컬 레포지토리용 디렉토리 생성

$ mkdir -p /root/local-repo/CentOS-7

# cf) -p, --parents     no error if existing, make parent directories as needed

디렉토리 이동

$ mv Packages /root/local-repo/CentOS-7

Local Repository 설정

$ vi /etc/yum.repos.d/CentOS-Local.repo
[local-repo]
name=Local Repository
baseurl=file:///root/local-repo/CentOS-7
gpgcheck=0
enabled=1

패키지 디렉토리로 이동

$ cd /root/local-repo/CentOS-7/Packages

createrepo 필요 패키지 설치

$ rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
$ rpm -ivh libxml2-2.9.1-6.el7.5.x86_64.rpm
$ rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
$ rpm -ivh libxml2-python-2.9.1-6.el7.5.x86_64.rpm
$ rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm

Local Repository 생성

$ createrepo /root/local-repo/CentOS-7

Repository 등록

$ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Repository 확인

$ yum repolist

패키지 목록 삭제

$ yum clean all

패키지 업데이트

$ yum -y update

docker 설치

$ unzip /root/install_file/docker_rpm.zip
$ rpm -ivh container-selinux-2.107-3.el7.noarch.rpm
$ rpm -ivh docker-ce-cli-19.03.9-3.el7.x86_64.rpm
$ rpm -ivh containerd.io-1.2.6-3.3.el7.x86_64.rpm
$ rpm -ivh docker-ce-19.03.9-3.el7.x86_64.rpm

docker 실행

$ systemctl start docker

cf) docker 실행 : $ systemctl docker start
docker 중지 : $ systemctl docker stop
docker container 내리기 : $ docker container stop [container id]
docker 상태 확인 : $ systemctl status docker


agens 계정생성

$ useradd agens

docker 실행권한부여

$ usermod -aG docker 사용자계정

사용자 파일 소유자 변경

$ cd /root/install_file

$ chown 사용자계정:사용자계정 agensgraph-v2.13.1_linux.tar.gz agviewer.tar Anaconda3-2020.02-Linux-x86_64.sh psycopg2-2_8_4.tar.gz psycopg2-binary-2.8.4.tar.gz

방화벽 설정

# Agensgraph port 추가
$ firewall-cmd --zone=public --permanent --add-port=5432/tcp

# AGViewer port 추가
$ firewall-cmd --zone=public --permanent --add-port=3001/tcp

# Jupyter port 추가
$ firewall-cmd --zone=public --permanent --add-port=8888/tcp

# ssh port 추가
$ firewall-cmd --zone=public --permanent --add-port=22/tcp

# 방화벽 재시작
$ firewall-cmd --reload

# 방화벽 포트 확인
$ firewall-cmd --list-all

AgensGraph 설치

# 디렉토리 이동
$ cd /home/agens

# 압축풀기
$ tar xvf agensgraph-v2.13.1_linux.tar.gz

환경변수 설정

# 디렉토리 이동
$ cd agensgraph-2.13.1

#  환경변수 설정
$ vi ~/.bash_profile

# .bash_profile
export AGHOME=/home/agens/agensgraph-2.13.1
export AGDATA=$AGHOME/data
export LD_LIBRARY_PATH=$AGHOME/lib:$LD_LIBRARY_PATH
PATH=$AGHOME/bin:$PATH

# 환경변수 적용
$ source ~/.bash_profile

DB 생성

# DB 클러스터 생성
$ initdb -D $AGDATA

# DB 실행
$ ag_ctl start -D $AGDATA

# 유저 생성
$ createuser agens

# DB 생성
$ createdb agens -O agens

DB 설정

# 디렉토리 이동
$ cd $AGDATA

# postgresql.conf 설정
$ vi postgresql.conf

# postgresql.conf
work_mem=200MB
maintenance_work_mem=32GB

max_wal_size = 20GB
min_wal_size = 20GB

logging_collector = on

log_filename = 'agensgraph-%Y-%m-%d.log'
log_min_messages = warning
log_min_error_statement = warning

vacuum_cost_delay = 0
vacuum_cost_page_hit = 1
vacuum_cost_page_miss = 10
vacuum_cost_page_dirty = 20
vacuum_cost_limit = 200

autovacuum = on

autovacuum_vacuum_cost_limit = -1

log_timezone = 'ROK'
timezone = 'ROK'

lc_messages = 'ko_KR.UTF-8'
lc_monetary = 'ko_KR.UTF-8'
lc_numeric = 'ko_KR.UTF-8'
lc_time = 'ko_KR.UTF-8'

# pg_hba.conf 설정
$ vi pg_hba.conf

# pg_hba.conf
  # IPv4 local connectors:
  host all all 0.0.0.0/0 md5
  

# DB 재실행
$ ag_ctl restart -D $AGDATA

AGViewer 설치

$ docker load -i agviewer.tar

error : Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/images/load?quiet=0: dial unix /var/run/docker.sock: connect: permission denied

현재 agens 유저가 docker 를 실행시킬 권한이 없다.
root 계정으로 변경해서 agens 유저를 docker 그룹에 넣어주자.

$ usermod -a -G docker agens

그래도 실행이 되지않는다면 reboot

이미지 로드

$ docker load -i agviewer.tar

cf) docker 실행 : $ systemctl docker start
docker 중지 : $ systemctl docker stop
docker container 내리기 : $ docker container stop [container id]
docker 상태 확인 : $ systemctl status docker


컨테이너 생성

$ docker run --name agviewer -it -d -p 3001:3001 agviewer:latest bash

AGViewer 확인해보기
webbrowser에 현재ip:3001 입력

정상작동 확인



jupyter

# 버전확인
$ jupyter --version

# jupyter 실행
$ nohup jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root &

# 토큰 파일 생성
$ echo ?token=xxxxxxxxxxxxxxxxxxxxxxxxxxx > token_file.txt

python 라이브러리 설치

# 디렉토리 이동
$ cd cd /home/agens

# psycopg2 설치
$ pip install psycopg2-binary-2.8.4.tar.gz
$ pip install psycopg2-2_8_4.tar.gz

error : command 'gcc' failed with exit status 1


[해결]

# root 계정으로 변경
$ su - root

# gcc 설치
$ yum install gcc

# 다시 agens 유저로 변경
$ su - agens

# psycopg2 설치
$ pip install psycopg2-binary-2.8.4.tar.gz
$ pip install psycopg2-2_8_4.tar.gz
profile
DB Engineer

0개의 댓글