[Error] Kafka Server Error :
java.io IOException : Map failed
Kafka server 실행 시 java.io IOException: Map failed 등 에러 날 때 해결 방법입니다.
.\bin\windows\kafka-server-start.bat .\config\server.properties 명령어 실행 후
java.io IOException : Map failed 오류
인터넷에 나와있는 여러 가지 방법을 다해보았지만 해결되지 않았다.
인터넷 검색 결과 " java.io IOException : Map failed "오류는 32bit Java로 인해 발생한 것이라는데,
나는 분명히 64bit 컴퓨터에 64bit Jdk를 깔았는데 해당 증상이 나타나서 몇 시간째 구글링을 하면서 시간을 허비했다.
결국...뭔가 문제가 있을까 싶어서 자바랑 Kafka 바이너리 파일 전부 다 삭제하고, 다시 깔았다. 그리고나서 JAVA 환경변수까지 다시 설정해주고 다시 시도하니까 서버가 정상 작동했다.
그런데... 이렇게 다시 다 삭제하고나서 재설치한 후 알게 됐다.
처음부터 Kafka 설정이나 Java자체 설치를 잘못한 것이 아니고 옛날에 설치해 놓았전 자바가 문제였다는 것을.....
분명, JDK설치 후 자바 버전 확인할 때는 최신버전이였는데, Kafka 서버 구동할 때는 환경변수에 의해서 옛날 버전 자바로 연결되어 실행 되면서 호환성 맞지 않으면서 위 같은 에러가 발생했다.
즉, 오류의 근본 원인이 Java 환경변수였다. 만약 새로 JDK를 설치하고 환경변수를 세팅했으면 이런 오류가 발생하지 않았을 것이다.
나란 녀석 바보..★
※ 해결 방법 : JAVA 환경 변수 새로 설정하기
JAVA 환경 변수 설정 방법입니다.
1. 윈도우키 누른 다음 > '시스템 환경 변수' 입력 > '시스템 속성' > '환경 변수' 버튼 클릭
2. 환경변수 설정해주기
* 환경변수 3가지 설정하기 *
1) JAVA_HOME > jdk 설치 위치 : C:\Program Files\Java\jdk1.8.0_301 (이거는 사용자마다 다를 수 있어서 확인 후 입력하세요!)
2) CLASSPATH > %JAVA_HOME%\lib
3) PATH > %JAVA_HOME%\bin
1), 2) 은 시스템 변수에서 새로 만들기로 추가하기
3) 은 시스템 변수에서 Path 찾아서 편집하기로 '새로만들기'
1) JAVA_HOME
2) CLASSPATH
3) PATH
3. JAVA 환경변수가 제대로 설정 됬는지 확인하기
cmd에 javac 명령어 입력해보기
위의 사진처럼 javac에 대한 설명이 나오면 java가 제대로 설치되고, 환경변수가 제대로 설정된 것
[ 참고 ]
자바환경 변수 설정 참고 블로그 : https://marobiana.tistory.com/163