강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

theplayer1003님의 프로필 이미지
theplayer1003

작성한 질문수

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

카프카 설치 오류

해결된 질문

작성

·

218

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

 

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

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

답변 3

0

쿠케님의 프로필 이미지
쿠케
지식공유자

theplayer1003님, 안녕하세요!

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

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

 

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

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

theplayer1003님의 프로필 이미지
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 이 로그 파일을 열어보는 방법이 뭔지 알 수 있을까요..?

쿠케님의 프로필 이미지
쿠케
지식공유자

docker cp 명령어 사용하셔서,

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

쿠케님의 프로필 이미지
쿠케
지식공유자

"-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
쿠케님의 프로필 이미지
쿠케
지식공유자

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

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
theplayer1003님의 프로필 이미지
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.

쿠케님의 프로필 이미지
쿠케
지식공유자

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

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

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

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

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

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

0

theplayer1003님의 프로필 이미지
theplayer1003
질문자

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

>Docker 설정 확인:

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

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

 

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

0

안녕하세요, 인프런 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’ 파일에 기록된 내용을 추가로 제공해 주신다면, 더 구체적인 진단이 가능할 수 있습니다.

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

theplayer1003님의 프로필 이미지
theplayer1003

작성한 질문수

질문하기