분류 전체보기 135

[Clickhouse] VIP를 통해 서버 접근

[ 개요 ]1. PCS를 통해 VIP를 구성하는 것까지 진행 완료2. VIP를 통해 쿼리를 수행하면 HAProxy로 구성 된, click01/click02 서버에 작업 쏠림 없이 랜덤으로 수행 [ VIP를 통해 쿼리 수행 ]* vip : 192.168.56.100* FailOver 테스트를 통해 vip 리소스는 ap02.test.com에 할당되어 있는 상태 * 192.168.56.100:28123 (VIP)로 쿼리 수행 시, click01/click02 서버에서 수행되는 것을 확인

카테고리 없음 2024.07.05

[HA] PCS 구성

[ 개요 ]* PCS를 통해 VIP를 구성하여 다중 서버(ap01, ap02) 자원 관리* VIP를 통해 clickhouse-client 작업 쿼리가 수행되면, HAProxy로 clickhouse-server에 로드밸런싱 [ PCS 구성 ]1. PCS 패키지 설치 (ap01 / ap02)apt install -y corosync pcs pacemaker 2. PCS 데몬 실행 (ap01 / ap02)sudo systemctl start pcsd 3. PCS 데몬 default 계정인 hacluster PW 설정 (ap01 / ap02)sudo passwd hacluster 4. 클러스터 계정 인증 (ap01)pcs host auth ap01.test.com ap02.test.com -u hacluster..

카테고리 없음 2024.07.03

[Linux] This account is currently not available.

[ 개요 ]* su 스위칭 시, 'This account is currently not available.' 이슈 발생* 스위칭 계정이 /etc/passwd 에서 'nologin' 상태여서 스위칭 불가* 영구적으로 로그인 계정으로 설정 [ 적용 작업 ]1. su 스위칭 시, 이슈 내용su - hacluster---Password: This account is currently not available. 2. /etc/passwd 에서 해당 계정 상태 확인cat /etc/passwd | grep hacluster---hacluster:x:115:119::/var/lib/pacemaker:/usr/sbin/nologin* nologin 상태인 것을 확인 3. 영구적으로 로그인 상태로 변환chsh -s /bi..

Linux 2024.07.03

[Clickhouse] Clickhouse HA

[ 개요 ]Clickhouse를 HAProxy를 통해 이중화하여 쿼리 쏠림 현상을 방지하며 서버 부하 분산[ HAProxy 설정 ]1. HAProxy에서 Clickhouse 상태 확인 설정listen clickhouse-cluster bind *:28123 balance leastconn server 192.168.56.60 click01.test.com:8123 check server 192.168.56.61 click02.test.com:8123 checkclickhouse 8123 포트를 28123으로 바인딩하여 상태 체크8123 포트 : HTTP 인터페이스를 위한 포트로, 웹 브라우저나 HTTP 클라이언트를 통해 쿼리를 전송하고..

카테고리 없음 2024.07.02

[Clickhouse] Clickhouse 패스워드 규칙 설정

[ 개요 ]* Clickhouse 계정 패스워드 규칙 설정 적용 [ 설정 적용 전, 계정 생성 ]1. test01 계정 생성CREATE USER [IF NOT EXISTS | OR REPLACE] [ON CLUSTER ] IDENTIFIED BY 'password string';CREATE USER test01 IDENTIFIED BY '1234';SELECT * FROM system.users;┌─name────┬─id───────────────────────────────────┬─storage─────────┬─auth_type───────┬─auth_params─┬─host_ip──┬─host_names─┬─host_names_regexp─┬─host_names_like─┬─default_rol..

카테고리 없음 2024.06.13

[programmers] LV2. 올바른 괄호

# 문제 풀이 def solution(s): answer = True a = [] for i in s: if i == '(': a.append(i) else: if len(a) == 0: return False a.pop() if len(a) == 0: return True else: return False - 대표적인 스택 문제 - '('가 나오면 스택에 append 하고, ')'가 나올 경우 스택에서 pop 시킴 단, 스택이 비어있을 경우 False를 반환 # 문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와..

[programmers] LV2. 최솟값 만들기

# 문제 풀이 def solution(A,B): answer = 0 A.sort() B.sort(reverse=True) for i in range(len(A)): answer += A[i] * B[i] return answer - sort() 내장 함수를 통해 문제 풀이 - 누적되는 값이 최소가 되도록 만들기 위해, 각 배열의 가장 작은 수와 가장 큰 수를 서로 곱하는 것이 최적의 방법 # 함수 정리 @ sort() ? - sort() 메서드는 리스트를 오름차순 및 내림차순으로 정렬하는 함수 - [].sort() -> 오름차순 - [].sort(reverse=True) -> 내림차순 # 문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/1..

[programmers] LV2. JadenCase 문자열 만들기

# 문제 풀이 def solution(s): answer = '' for idx, alpha in enumerate(s): if idx == 0 or s[idx - 1] == ' ': answer += alpha.upper() else: answer += alpha.lower() return answer - s.title() 내장 함수를 사용하여 해결하려 했지만, 첫 단어에 숫자가 나오는 경우 예외 사항이 발생 - enumerate() 함수를 사용하여 해결 - idx가 0인 경우나 앞써 나온 문자가 ' ' 공백일 경우 대문자 - 그 외는 모두 소문자로 해결 # 함수 정리 @ enumerate() - 시퀀스(리스트, 튜플, 문자열 등)을 입력 받아, 시퀀스의 각 요소에 인덱스를 부여하여 (인덱스, 요소) ..