본문 바로가기

분류 전체보기95

카프카 토픽 생성 에러(ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 1 larger than available brokers: 0) 카프카를 실행시킨 후, 카프카 토픽을 생성할 때 다음과 같은 에러가 발생하는 경우가 있다. 토픽 생성 명령어 : $ /usr/local/kafka/bin/kafka-topics.sh --zookeeper zk01:2181,zk02:2181,zk03:2181/kafka_znode1 --replication-factor 1 --partitions 1 --topic topic1 --create 에러 메시지 : Error while executing topic command : Replication factor: 1 larger than available brokers: 0. [2020-12-13 13:56:31,240] ERROR org.apache.kafka.common.errors.InvalidReplic.. 2020. 12. 13.
아파치 카프카 실행 에러(kafka.common.InconsistentClusterIdException: The Cluster ID doesn't match stored clusterId Some in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wrong.) 아파치 카프카가 시작이 정상적으로 되지 않는 경우가 있다. 로그파일(카프카 설치디렉토리/logs/server.log)를 확인해 보니 아래와 같은 에러가 발생하였다. kafka.common.InconsistentClusterIdException: The Cluster ID X5OzZfF9RaG-mSIwzW684w doesn't match stored clusterId Some(P2GQ3DlJTFusFPnSeKeQJw) in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wrong. at kafka.server.KafkaServer.startup(KafkaServer.scal.. 2020. 12. 12.
리눅스에 아파치 카프카(Apache Kafka) 설치하기 이번 글에서는 리눅스에 아파치 카프카(Apache Kafka)를 설치한 후 주키퍼와 연결해 볼 것이다. 이 글의 순서는 다음과 같다. 1. 사전준비 2. 아파치 카프카 설치 3. 아파치 카프카 실행/종료 4. Systemd에 카프카 등록(선택사항) 5. 주키퍼 연결 확인 1. 사전준비 이 글을 진행하기 전에는 다음과 같은 준비가 되어 있어야 한다. 1) 리눅스에 코디네이션 애플리케이션인 주키퍼 설치(리눅스에 주키퍼 설치하기 글 참고) 2) 아파치 카프카 클러스터를 구성할 리눅스 서버. 이 글에서는 AWS EC2 인스턴스(Amazon Linux 2 AMI (HVM) t2.smaull. cpu 1, memory 2G) 2대에 설치를 진행할 것이다(카프카 실행 시 1G 메모리로는 메모리 부족 에러가 발생한다).. 2020. 12. 9.
아파치 카프카 실행 에러(Classpath is empty. Please build the project first e.g. by running) 아파치 카프카를 설치한 후 실행시킬 때 아래와 같은 에러가 발생하는 경우가 있다. Classpath is empty. Please build the project first e.g. by running './gradlew jar -PscalaVersion=2.13.2' 위와 같은 에러가 발생하는 원인은 아파치 카프카 binary 파일을 다운받고 실행시킨 것이 아니라, source 파일을 다운받고 실행시켜서 그렇다. 카프카를 다운받을 때는 kafka.apache.org/downloads 에서 binary 파일을 다운받도록 하자. 참고 stackoverflow.com/questions/34081336/classpath-is-empty-please-build-the-project-first classpath .. 2020. 11. 22.
Oracle 테이블 컬럼 정보 조회 쿼리(컬럼명, PK, FK, Nullable) 프로젝트 진행 시 분석/설계를 진행할 때 기존에 등록되어 있는 Oracle 테이블 컬럼정보를 조회하는 경우가 많다(예를 들면 컬럼 물리명/논리명, PK, FK, Nullable, Data 기본값 등등) 그래서 해당 내용을 기억하기 위해 아래와 같이 컬럼 정보 조회 쿼리를 정리해 보았다. SELECT AA.COLUMN_ID, AA.COLUMN_NAME, BB.COMMENTS, AA.DATA_TYPE, AA.DATA_LENGTH, AA.DATA_DEFAULT, CC.PK, AA.NULLABLE, CC.FK FROM ALL_TAB_COLUMNS AA, ALL_COL_COMMENTS BB, (SELECT A.OWNER, A.TABLE_NAME, A.CONSTRAINT_TYPE, COLUMN_NAME, POSIT.. 2020. 11. 20.
리눅스에 주키퍼(zookeeper) 설치하기 지난 글에서는 아파치 카프카(Apache Kafka)의 정의에 대해서 알아보았다. 이번 글에서는 아파치 카프카를 관리하기 위해서는 반드시 필요한 코디네이션 애플리케이션인 주키퍼(Zookeeper)를 설치 실습을 진행해 보겠다(아파치 카프카 설치는 다음 글에서 진행할 것이다) 이 글의 진행 순서는 다음과 같다. 1. 서버 준비 2. 주키퍼 설치하기 3. 주키퍼 실행하기 1. 서버 준비 우선 주키퍼를 설치할 서버가 필요하다. 주키퍼는 서버 3대에 설치를 진행하도록 하겠다(다음 글에서 카프카는 서버 2대에 설치를 진행할 것이다) 사실 아파치 카프카 및 주키퍼 모두 각각 서버 1대에 설치를 진행해도 되지만, 클러스터 구성을 맛보기 위해서 주키퍼는 3대의 서버에 설치할 것이다. 또한 주키퍼는 클러스터로 구성할 경.. 2020. 11. 5.
리눅스 scp를 활용한 원격 파일 전송 리눅스를 사용하다보면 원격으로 파일을 전송해야 하는 경우가 있다. 이번 글에서는 리눅스 환경에서 scp를 사용하여 원격으로 파일을 전송하는 방법에 대해 알아볼 것이다. scp는 secure copy (remote file copy program)의 줄임말로 ssh를 이용해 네트워크로 연결된 호스트간에 파일을 주고 받는 명령어이다. 우선 scp를 사용하기 위해서는 다음과 같은 조건이 선행되어야 한다. 1. 리눅스 및 bash shell 2. 목적지 서버의 22번 포트(SSH포트) 개방 그럼 파일을 전송하는 방법에 대해 알아보자 1. 로컬서버(접속한 서버) -> 리모트서버로 파일 전송 scp [목적파일명(경로)] [유저명]@[IP주소]:[목적디렉토리] 2. 리모트서버 -> 로컬서버(접속한 서버)로 파일 전송.. 2020. 10. 25.