2025/01 8

HDFS - Balance

HDFS를 운영하면서 데이터 불균형이 발생하여 밸런싱을 실행해야 하는 경우가 있다. 주의할 점은 밸런서는 랙 인식(Rack Awareness) 설정이 되어 있지 않으면 동작하지 않는다. 데이터 불균형이 발생하는 경우데이터 노드를 추가하는 경우하둡의 데이터 저장 공간이 부족하여 데이터노드를 추가하는 경우 다른 노드의 사용공간은 70~80% 정도인데 신규 데이터 노드는 사용공간이 0% 대량의 데이터를 삭제하는 경우 특정 데이터 노드에 블록이 많이 저장되어 데이터노드간 저장공간 차이가 20~30% 정도 발생하는 경우 대량의 데이터를 추가하는 경우특정 데이터 노드에 데이터가 적은 경우 네임노드는 데이터 저장공간이 작은 노드를 우선적으로 사용하는데 이 경우 특정 노드로 I/O가 집중 되게 됨 HDFS Balanc..

Hadoop 2025.01.26

HDFS - 사용량 제한 설정

HDFS 관리자는 디렉토리 별로 파일 개수와 파일 용량을 제한 할 수 있다. 각 설정은 개별 적으로 동작. 하나만 설정 하거나, 동시에 설정할 수 있다. 파일 개수 제한디렉토리별로 생성할 수 있는 파일 개수를 제한 할 수 있다. 할당량을 초과하면 파일, 디렉토리를 생성할 수 없다. 파일 용량 제한디렉토리별로 용량을 제한할 수 있다. 파일 용량만 포함되고, 디렉토리는 용량에 포함되지 않는다. 제한 설정 명령파일 개수 제한, 파일 용량 제한은 hdfs dfsadmin 명령을 이용하여 설정할 수 있다.# 파일 개수 제한. 최대 Long.MAX_VALUE 만큼 제한 가능 hdfs dfsadmin -setQuota ...# 파일 개수 제한 초기화hdfs dfsadmin -clrQuota ...# 파일 용량 제한..

Hadoop 2025.01.26

SQL - begin, index, anti-join

풀 스캔 방지를 위한 인덱스 강제지정SELECT * FROM table_name USE INDEX (index_name) WHERE column = 'value'; Anti-join (일치하지 않는 레코드 찾기)SELECT a.*FROM table_a aLEFT JOIN table_b b ON a.id = b.idWHERE b.id IS NULL; begin , delete 후 다른 유저가 해당 데이터를 update하면? (commit되지 않은 해당 행이 lock상태라 update불가)-- A터미널BEGIN TRANSACTION;DELETE FROM table_name WHERE id = 1;-- B터미널BEGIN TRANSACTION;DELETE FROM table_name WHERE id = 1;

DB 2025.01.19

SQL - group by, alias 등

쿼리실행순서 FROM -> WHERE -> GROUP BY -> (HAVING) -> SELECT -> ORDER BYGROUP BY가 SELECT 보다 먼저 실행 되지만, SELECT의 alias를 사용할 수 있다. (DB마다 약간은 차이가 있다. hql, mysql 가능 )GROUP BY, HAVING, ORDER BY에서 SELECT의 alias를 사용할 수 있다.WHERE절에서는 SELECT의 alias를 사용할 수 없다.실제 컬럼명만 사용가능하다. (서브쿼리에서는 사용가능)Case문은 select절, group by절에서 사용 가능.SELECT CASE WHEN salary > 5000 THEN 'High' ELSE 'Low' END AS salary_ca..

DB 2025.01.19

Linux - TOP

1. 헤더 섹션시스템의 전반적인 상태에 대한 요약을 제공. 시스템 정보top - 15:23:56 up 10 days, 3:42, 2 users, load average: 0.52, 0.45, 0.50현재 시간: 현재 시스템 시간(예: 15:23:56)가동 시간: 마지막 재부팅 이후 시스템이 실행된 기간(예: '10일, 3:42').로그인 사용자: 현재 로그인된 사용자 수(예: 2 사용자).load average: 지난 1분, 5분, 15분 동안의 시스템 로드 평균(0.52, 0.45, 0.50). 작업Tasks: 200 total, 2 running, 198 sleeping, 0 stopped, 0 zombietotal: 작업 또는 프로세스의 총 개수(예: '200').running: C..

Linux 2025.01.12

Hadoop - Webhdfs

Intro지금까지 hdfs를 사용할때 같은 클러스터로 연결된 서버에서 -get or -put등의 hdfs명령어를 사용하다가 이번 프로젝트에서 네트워크상 연결된 상태의 서버에서 webhdfs 명령어를 사용해보면서 의문이들어 찾아보게 되었다. WebHDFSWebHDFS는 HDFS 클라이언트가 Hadoop 바이너리를 설치하지 않더라도, 다양한 언어에서 HDFS에 접근할 수 있도록 REST 형태로 개발된 API입니다. Hortonworks에서 개발했으며, Hadoop 에코시스템 외부에서 동작하는 애플리케이션이 HDFS에 무언가 생성하고 쓰고, 변경하는 작업을 허용해줍니다.WebHDFS는 REST를 기반으로 하기 때문에 GET, PUT, POST, DELETE 등의 HTTP 메서드를 활용합니다. 예를 들어, op..

ETC 2025.01.05

Docker - 볼륨 정리

컨테이너는 삭제가 될 때 자체 파일 시스템이 사라지게 되는 특성 때문에, 데이터가 다 사라지게 된다.따라서 볼륨을 마운트해서 이와 같은 문제를 해결해야 한다. 1. 볼륨이란?볼륨이란 호스트 머신의 폴더(로컬 컴퓨터 폴더) - 저장 공간 자체도커가 인식하는 호스트 머신볼륨은 도커 컨테이너 내부의 폴더에 매핑2. 볼륨이 필요한 이유볼륨의 가지는 의미는 컨테이너 내부 폴더와 컨테이너 외부 폴더를 연결하는 것→ 로컬폴더와 내부 폴더는 격리되어 있으나 볼륨을 이용해 연결이 가능하도록 만들 수 있다는 의미3. 볼륨 종류1) 익명 볼륨익명 볼륨이란 컨테이너가 존재하는 동안에만 실제로 존재하는 볼륨을 의미 2) 명명 볼륨명명 볼륨이란 컨테이너가 컨테이너가 종료된 후에도 볼륨이 유지가 되는 것을 의미4. 마운트(moun..

Doker 2025.01.05