Hadoop 환경에서 HBase 분산 설정 가이드

사전 준비: Hadoop 클러스터 실행 HBase를 구동하기 전에 Hadoop이 정상적으로 작동 중인지 확인합니다. $ start-dfs.sh $ start-yarn.sh HBase 버전 호환성 확인 Hadoop과 HBase 간 버전 호환성은 매우 중요합니다. 현재 Hadoop 버전을 먼저 확인하세요. $ hadoop version 확인한 버전에 맞는 HBase를 Tsinghua 미러에서 다운로드합니다. 안정적인 릴리즈를 권장합니다. ...

9월 16일 00:34에 게시됨

HBase Shell 명령어 완벽 가이드

HBase는 Hadoop 파일시스템을 기반으로 데이터를 저장하는 분산 컬럼 기반 데이터베이스입니다. 구조적으로 하나의 마스터 서버와 여러 리전 서버로 구성되어 있으며, 데이터는 테이블(리전) 형식으로 저장됩니다. 이 가이드에서는 HBase Shell에서 사용하는 주요 명령어들을 상세히 설명하겠습니다. HBase 아키텍처 개요 HBase는 마스터 서버가 전체 리전 서버들을 관리하 ...

8월 4일 11:06에 게시됨

Spark 대량로드(HFile) 에러 및 해결 방법

문제 및 배경 HDFS에 존재하는 데이터를 분석하여 HBase에 HFile 형식으로 대량 쓰기 작업을 수행하는 과정에서 발생하는 에러 및 그 해결 방법을 설명합니다. 이 작업은 여러 열을 한 번에 쓰는 방식으로 진행됩니다. 주요 API RDD를 통해 HFile로 저장하는 주요 API는 다음과 같습니다: rdd.saveAsNewAPIHadoopFile( stagingFolder, classOf[ImmutableBytesWri ...

7월 27일 13:25에 게시됨

HBase 리전 부하 분산 및 RowKey 해싱 전략

HBase 초기 설정과 리전 관리의 중요성 HBase 에서는 기본 설정으로 테이블을 생성할 경우 단일 리전 (Region) 으로 시작하게 됩니다. 초기에는 데이터 양이 적어 문제가 없으나, 특정 리전에 모든 조회와 쓰기 요청이 집중되게 되며, 이는 해당 노드의 자원 고갈로 이어질 수 있습니다. 결국 리전 크기가 임계치를 넘으면 시스템이 자동으로 분할 (Split) 작업을 수행하지 ...

7월 10일 07:02에 게시됨

Spark SQL과 HBase 통합 시 스키마 매핑 오류 해결 방법

서론 Spark SQL에서 외부 데이터 소스를 사용할 때, 특히 HBase와 같은 NoSQL 저장소를 연동하는 경우 스키마 정의와 데이터 매핑이 핵심 과제가 된다. 개발자는 Spark의 DataFrame API를 통해 HBase 테이블을 마치 관계형 테이블처럼 쿼리하고 싶어 하지만, 두 시스템 간의 데이터 모델 차이로 인해 예기치 않은 결과가 발생할 수 있다. Spark SQL 커스텀 데이터 소스 기 ...

7월 7일 20:48에 게시됨

Protobuf 3.x와 HBase 내장 Protobuf 2.5.0 버전 충돌 해결 사례

개발 중 Protobuf 3.6.1을 사용하여 템플릿 코드를 생성했는데, HBase 1.2.1-cdh5.1.4.0과 함께 사용할 때 버전 충돌이 발생했습니다. Maven 의존성 트리를 확인하면 HBase가 Protobuf 2.5.0을 내장하고 있음을 알 수 있습니다. 빌드 단계에서는 문제가 없지만, 런타임 시 다음 오류가 발생합니다: java.lang.ClassNotFoundException: com.google.protobuf.LiteralByteSt ...

7월 4일 23:05에 게시됨

HBase 테이블 수준의 리전 균형 조정 기법

HBase 환경에서 데이터가 리전에 고르게 분포되지 않을 경우, 특히 예비 분할 없이 생성된 리전일 경우, 쓰기 부하의 불균형 문제가 발생할 수 있습니다. 전통적인 해시 또는 솔트 방식은 분산을 개선할 수 있지만, 이후 조회 성능에 영향을 미치는 문제점이 있습니다. 본 문서에서는 테이블 단위에서 리전의 분포를 최적화하는 새로운 균형 조정 전략을 제안합니다. 이 방 ...

7월 4일 18:15에 게시됨

HBase Kerberos 인증을 통한 Java 클라이언트 연결 설정

CDH 환경에서 Kerberos 보안이 활성화된 HBase에 Java 애플리케이션으로 접속하려면 몇 가지 설정 단계가 필요하다. 필요 구성 요소 준비 먼저 Cloudera Manager 콘솔에서 HBase 관련 설정 파일들을 다운로드하여 로컬 프로젝트에 배치해야 한다. 이 파일들은 일반적으로 src/main/resources 디렉토리에 저장한다. Kerberos 인증을 위해 다음 두 파일도 준비해야 한다: Ke ...

6월 19일 00:50에 게시됨

Apache HBase 기본 명령어와 Java API 활용

HBase Shell 명령어 DDL 작업: 테이블 관리 네임스페이스 생성 및 테이블 조회: create_namespace 'example_ns' list_namespace 테이블 생성 및 구조 확인: create 'example_ns:sample_table', 'cf1', 'cf2' describe 'example_ns:sample_table' 테이블 수정 및 컬럼 패밀리 삭제: alter 'example_ns:sample_table', {NAME => 'cf1', VERSIONS => 3} alter 'example_ns:s ...

6월 10일 17:40에 게시됨

Flume에서 HBase 연결 시 NoClassDefFoundError 해결 방법

HBase 연동 중 클래스 로딩 오류 대응 전략 Apache Flume를 통해 HBase로 데이터를 적재할 때, 종종 NoClassDefFoundError 또는 ClassNotFoundException과 같은 클래스 로딩 문제에 직면할 수 있습니다. 특히 org/apache/hadoop/hbase/HBaseConfiguration, org/apache/zookeeper/Watcher, MasterProtos$MasterService$BlockingInterface 등의 클래스 누락이 빈번하게 발생 ...

6월 1일 18:28에 게시됨