inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

카프카 설치 오류

해결된 질문

262

theplayer1003

작성한 질문수 3

0

카프카 설치 과정에서 뭔가 오류가 발생한거 같은데 해결이 어려워 글 남겨봅니다.

 

2025-02-05 20:04:47 ===> User

2025-02-05 20:04:47 uid=1000(appuser) gid=1000(appuser) groups=1000(appuser)

2025-02-05 20:04:47 ===> Setting default values of environment variables if not already set.

2025-02-05 20:04:47 CLUSTER_ID not set. Setting it to default value: "5L6g3nShT-eMCtK--X86sw"

2025-02-05 20:04:47 ===> Configuring ...

2025-02-05 20:04:47 ===> Launching ...

2025-02-05 20:04:47 ===> Using provided cluster id 5L6g3nShT-eMCtK--X86sw ...

2025-02-05 20:04:47 # # A fatal error has been detected by the Java Runtime Environment: # # SIGILL (0x4) at pc=0x0000ffff9513fc5c, pid=13, tid=390 # # JRE version: (21.0.4+7) (build ) # Java VM: OpenJDK 64-Bit Server VM (21.0.4+7-LTS, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-aarch64) # Problematic frame: # j java.lang.System.registerNatives()V+0 java.base # # No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again # # An error report file with more information is saved as: # /tmp/hs_err_pid13.log [0.016s][warning][os] Loading hsdis library failed # # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. #

 

오류 로그는 이렇구요.

대강.. 자바 버전? 제 로컬환경과 뭔가 문제가 있는거 같은데..

 

맥미니 M4 이구,

java -version

openjdk version "21.0.5" 2024-10-15

OpenJDK Runtime Environment Homebrew (build 21.0.5)

OpenJDK 64-Bit Server VM Homebrew (build 21.0.5, mixed mode, sharing)

 

검색해보니 M4에서만 일어나는 문제인거 같기도 하고..

sve 라는 옵션을 꺼보래서

docker run -d --name kuke-board-kafka -p 9092:9092 -e FAFKA_JVM_PERFORMANCE_OPTS="-XX:UseSVE=0" apache/kafka:3.8.0

 

이런식으로 설치 해봤는데 마찬가지네요.

뭘 시도해봐야할지 도움 좀 부탁드립니다.

java mysql spring-boot kafka redis

답변 3

0

쿠케

theplayer1003님, 안녕하세요!

FAFKA 오타 -> KAFKA 변경해도 안되실까요?

아니면, 도커 이미지를 3.8.1이나 3.9.0 버전으로 변경 해보시겠어요?

 

장비 환경 문제일지 싶은데, 해당 장비가 없어서 해결 방법 찾기에 어려움이 있네요.. ㅠㅠ

카프카 브로커 띄우고 토픽 생성 및 연결할 수만 있다면, 꼭 강의와 동일한 방식으로 세팅할 필요는 없습니다!

0

theplayer1003

일단 옵션을 꺼보면(오타 문제, 환경변수 명령어 문제는 아닌거 같습니다.) JVM에서 옵션이 인식이 안된다고 실행이 안되버리는거 같네요..

2025-02-05 22:12:39 Unrecognized VM option 'PrintGCDateStamps'

2025-02-05 22:12:39 Error: Could not create the Java Virtual Machine.

2025-02-05 22:12:39 Error: A fatal exception has occurred. Program will exit.

 

다른 버전도 질문의 오류가 반복됩니다. (3.7.0 3.8.1 3.9.0)

이런 것들을 처음 접해봐서 아예 해결의 실마리를 모르겠네요.. 뭘 시도해봐야하는건지..

hs_err_pid13.log 이 로그 파일을 열어보는 방법이 뭔지 알 수 있을까요..?

0

쿠케

docker cp 명령어 사용하셔서,

컨테이너 내의 /tmp 디렉토리에 저장되었다는 해당 파일 호스트로 옮겨온 후에 읽어보시겠어요?

0

쿠케

"-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:MaxInlineLevel=15 -Djava.awt.headless=true -XX:UseSVE=0"

컨테이너 실행할 때, 환경변수 KAFKA_JVM_PERFORMANCE_OPTS 위 값으로 실행해보시겠어요?

전체 명령어

docker run -d --name kuke-board-kafka -p 9092:9092 -e KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:MaxInlineLevel=15 -Djava.awt.headless=true -XX:UseSVE=0" apache/kafka:3.8.0

0

쿠케

아래 명령어로도 해보시겠어요?

docker run -d --name kuke-board-kafka -p 9092:9092 -e KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:MaxInlineLevel=15 -Djava.awt.headless=true -XX:-UseHSDis" apache/kafka:3.8.0

0

theplayer1003

둘 다 안되네요.

첫번째는 PrintGCDateStamps 문제가 반복되고
두번째는 UseHSDis 옵션에 대해 에러가 나옵니다.

 

UseHSDis 옵션을 지워봤더니 다시 최초 질문 오류의

# j java.lang.System.registerNatives()V+0 java.base 로 돌아왔네요.

 

오류 로그 파일을 열어보긴 했는데, JVM 관련 온갖 것들이 쏟아져나오는데.. 텍스트가 길어서 올리기도 뭐하고..

지식이 없는 상태에서 증상이랑 명령어만 쫓아다니면서 해결하려니 쉽지가 않네요

 

 

docker run -d --name kuke-board-kafka -p 9092:9092 -e KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:MaxInlineLevel=15 -Djava.awt.headless=true -XX:UseSVE=0" apache/kafka:3.8.0

 

2025-02-06 07:16:05 ===> User

2025-02-06 07:16:05 uid=1000(appuser) gid=1000(appuser) groups=1000(appuser)

2025-02-06 07:16:05 ===> Setting default values of environment variables if not already set.

2025-02-06 07:16:05 CLUSTER_ID not set. Setting it to default value: "5L6g3nShT-eMCtK--X86sw"

2025-02-06 07:16:05 ===> Configuring ...

2025-02-06 07:16:05 ===> Launching ...

2025-02-06 07:16:05 ===> Using provided cluster id 5L6g3nShT-eMCtK--X86sw ...

2025-02-06 07:16:06 Log directory /tmp/kraft-combined-logs is already formatted. Use --ignore-formatted to ignore this directory and format the others.

2025-02-06 07:16:06 [0.000s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:/opt/kafka/bin/../logs/kafkaServer-gc.log instead.

2025-02-06 07:16:01 Unrecognized VM option 'PrintGCDateStamps'

2025-02-06 07:16:01 Error: Could not create the Java Virtual Machine.

2025-02-06 07:16:01 Error: A fatal exception has occurred. Program will exit.

2025-02-06 07:16:06 Unrecognized VM option 'PrintGCDateStamps'

2025-02-06 07:16:06 Error: Could not create the Java Virtual Machine.

2025-02-06 07:16:06 Error: A fatal exception has occurred. Program will exit.


docker run -d --name kuke-board-kafka -p 9092:9092 -e KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:MaxInlineLevel=15 -Djava.awt.headless=true -XX:-UseHSDis" apache/kafka:3.8.0

 

2025-02-06 07:17:35 ===> User

2025-02-06 07:17:35 uid=1000(appuser) gid=1000(appuser) groups=1000(appuser)

2025-02-06 07:17:35 ===> Setting default values of environment variables if not already set.

2025-02-06 07:17:35 CLUSTER_ID not set. Setting it to default value: "5L6g3nShT-eMCtK--X86sw"

2025-02-06 07:17:35 ===> Configuring ...

2025-02-06 07:17:35 ===> Launching ...

2025-02-06 07:17:35 ===> Using provided cluster id 5L6g3nShT-eMCtK--X86sw ...

2025-02-06 07:17:35 Unrecognized VM option 'UseHSDis' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.

2025-02-06 07:17:39 ===> User

2025-02-06 07:17:39 uid=1000(appuser) gid=1000(appuser) groups=1000(appuser)

2025-02-06 07:17:39 ===> Setting default values of environment variables if not already set.

2025-02-06 07:17:39 CLUSTER_ID not set. Setting it to default value: "5L6g3nShT-eMCtK--X86sw"

2025-02-06 07:17:39 ===> Configuring ...

2025-02-06 07:17:39 ===> Launching ...

2025-02-06 07:17:39 ===> Using provided cluster id 5L6g3nShT-eMCtK--X86sw ...

2025-02-06 07:17:39 Unrecognized VM option 'UseHSDis' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.

0

쿠케

앗.. 저것도 안되는군요..!

제가 이것저것 시도해볼 수도 없어서 환경에 대한 문제는 해결해드리기가 어렵네요 ㅠㅠ

꼭 동일한 카프카 이미지를 사용할 필요는 없어서, 다른 이미지(apache kafka 이미지 말고)를 활용하셔서 설치해보시겠어요?

검색해보시면 다른 이미지 설치 방법도 많이 나옵니다!

아니면 로컬에 직접 설치해보셔도 됩니다!

설치하고 토픽 만들어서 브로커 띄울 수만 있으면 애플리케이션에서 연동 방식은 동일합니다.

0

theplayer1003

아, 증상은 kafka 설치 후 컨테이너 실행시 바로 다운되어버리는 증상입니다.

>Docker 설정 확인:

  • Docker 명령어에서 환경 변수를 설정할 때 오류가 있을 수 있습니다. -e 옵션을 사용하여 환경 변수를 전달할 때 오타나 잘못된 옵션 사용 여부를 확인해 보세요.

  • FAFKA_JVM_PERFORMANCE_OPTS 대신 올바른 환경 변수 명령어를 확인해 보세요. 보통 JVM 옵션을 설정할 때는 KAFKA_OPTS를 사용합니다.

 

이걸로는 해결이 안되네요.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. theplayer1003님.

Mac Mini M4 환경에서 Apache Kafka 설치 중 발생한 오류로 인해 불편을 겪고 계신 것 같습니다. 주어진 로그를 기반으로 몇 가지 해결 방안을 제시해 드리겠습니다.

문제 분석 및 해결 방안

  1. Java 버전 호환성:

    • 현재 사용 중인 Java Runtime Environment (JRE)와 Kafka 간의 호환성 문제일 수 있습니다. Mac M4는 ARM 아키텍처 기반으로 일반 x86 아키텍처와 다소 차이가 있을 수 있습니다.
    • 가능한 경우, JDK 11 혹은 JDK 17과 같은 다른 LTS(Long Term Support) 버전으로 전환하여 테스트해 보세요.
  2. Docker 설정 확인:

    • Docker 명령어에서 환경 변수를 설정할 때 오류가 있을 수 있습니다. -e 옵션을 사용하여 환경 변수를 전달할 때 오타나 잘못된 옵션 사용 여부를 확인해 보세요.
    • FAFKA_JVM_PERFORMANCE_OPTS 대신 올바른 환경 변수 명령어를 확인해 보세요. 보통 JVM 옵션을 설정할 때는 KAFKA_OPTS를 사용합니다.
   docker run -d --name kuke-board-kafka -p 9092:9092 -e KAFKA_OPTS="-XX:UseSVE=0" apache/kafka:3.8.0
  1. 호환성 옵션 사용:

    • JVM의 ‘SIGILL’ 오류는 하드웨어 호환성 문제이므로 SVE(SIMD Vector Extension)를 비활성화하는 옵션은 유효할 수 있지만, 옵션 명령어가 정확한지 확인해주세요.
  2. M4 칩셋 관련 논의 및 패치 확인:

    • M4와 같은 최신 ARM 칩셋의 경우 특정 오류가 존재할 수 있으며, 이는 관련 패치가 존재할 가능성이 있습니다. Kafka 커뮤니티나 해당 버그 리포팅 사이트에서 최신 정보를 확인해 보시기 바랍니다.

추가 리소스

동일한 이슈에 대한 유용한 정보를 찾기 위해 인프런 커뮤니티에서 관련 글을 찾아보는 것도 권장드립니다. 예를 들어, Kafka 설치 시 ARM 아키텍처에서의 문제 해결 (게시글 제목) 과 같은 글이 도움이 될 수 있습니다.

최종 조언

만약 위 방법으로 해결되지 않을 경우, 가장 확실한 방법은 추가 로그나 오류 메시지를 분석하는 것입니다. 오류 로그의 끝부분이나 ‘hs_err_pid13.log’ 파일에 기록된 내용을 추가로 제공해 주신다면, 더 구체적인 진단이 가능할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

consumer에서 에러가 발생할 경우 데이터 유실 문의

0

42

2

게시글 테스트 데이터 삽입

0

47

2

정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?

0

100

2

좋아요 기능 정합성 보장 방법

0

93

2

좋아요 동시성처리 최적의 선택?

1

121

2

프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해

0

88

2

안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.

0

57

1

조회수 조회 로직 질문

1

67

2

비로그인 유저도 어뷰징 방지 정책

1

66

2

CommentServiceTest의 테스트 로직 질문

0

53

2

무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문

1

72

2

path 쿼리 관련 질문드립니다!

0

59

2

antigravity 에디터를 쓰신다면 종료해주세요

1

122

0

프로젝트 구조

0

85

2

article_like_count api test

0

76

2

이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.

0

103

2

[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제

0

89

2

findByPath에서 articleId로도 검색을 해야 할 것 같아요.

0

89

3

jpa ddl-auto none을 하는 이유와 join 방법

0

96

2

팩터리 메소드와 response 객체 사용 이유가 궁금합니다!

0

90

2

커서 기반 페이지네이션 과 무한 스크롤링

0

103

2

게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기

0

96

2

멀티 모듈이 아닌 MSA 환경에서 common

0

150

2

2Depth 강의 도중 궁금한 점 있어요!!

0

73

2