프로젝트/Pinpoint, Scouter 구축(APM)

flink - java.net.UnknownHostException / 이름 혹은 서비스를 알 수 없습니다.

블랑v 2024. 1. 30. 14:20

 

 

오류

 

 

2024-01-30 13:20:21,373 INFO  org.apache.flink.runtime.metrics.MetricRegistryImpl           - No metrics reporter configured, no metrics will be exposed/reported.
2024-01-30 13:20:21,379 INFO  org.apache.flink.runtime.blob.PermanentBlobCache              - Created BLOB cache storage directory /tmp/blobStore-72b3400e-84af-4cf4-819b-f7518e863576
2024-01-30 13:20:21,382 INFO  org.apache.flink.runtime.blob.TransientBlobCache              - Created BLOB cache storage directory /tmp/blobStore-8ce5bf40-62cf-4c5d-b389-12fb6f1d120d
2024-01-30 13:20:21,382 INFO  org.apache.flink.runtime.taskexecutor.TaskManagerRunner       - Starting TaskManager with ResourceID: 21837821a65e069fc63cfa85ac0cc77a
2024-01-30 13:20:21,384 ERROR org.apache.flink.runtime.taskexecutor.TaskManagerRunner       - TaskManager initialization failed.
java.net.UnknownHostException: dev: 이름 혹은 서비스를 알 수 없습니다
	at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
	at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:867)
	at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1302)
	at java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:815)
	at java.net.InetAddress.getAllByName0(InetAddress.java:1291)
	at java.net.InetAddress.getAllByName(InetAddress.java:1144)
	at java.net.InetAddress.getAllByName(InetAddress.java:1065)
	at java.net.InetAddress.getByName(InetAddress.java:1015)
	at org.apache.flink.runtime.taskexecutor.TaskManagerRunner.startTaskManager(TaskManagerRunner.java:353)
	at org.apache.flink.runtime.taskexecutor.TaskManagerRunner.<init>(TaskManagerRunner.java:147)
	at org.apache.flink.runtime.taskexecutor.TaskManagerRunner.runTaskManager(TaskManagerRunner.java:326)
	at org.apache.flink.runtime.taskexecutor.TaskManagerRunner$1.call(TaskManagerRunner.java:298)
	at org.apache.flink.runtime.taskexecutor.TaskManagerRunner$1.call(TaskManagerRunner.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556)
	at org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
	at org.apache.flink.runtime.taskexecutor.TaskManagerRunner.main(TaskManagerRunner.java:295)
2024-01-30 13:20:21,386 INFO  org.apache.flink.runtime.blob.PermanentBlobCache              - Shutting down BLOB cache
2024-01-30 13:20:21,387 INFO  org.apache.flink.runtime.blob.TransientBlobCache              - Shutting down BLOB cache

 

 

java.net.UnknownHostException: 

dev라는 메시지가 나타나고 있어 이는 dev라는 호스트를 시스템이 식별할 수 없음을 의미한다.

이 오류의 주 원인은 시스템 DNS 설정 또는 /etc/hosts 파일에 dev라는 호스트 이름이 없거나, 잘못 설정되었기 때문일 가능성이 크다.

 

따라서 문제를 해결하려면 host 파일을 수정하거나, 실행 시 명확한 host를 지정해주어야 한다.

 

1. /etc/hosts 에 호스트 추가

 

https://dowhiletrue.tistory.com/entry/HOSTS-javanetUnknownHostException-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95

 

[HOSTS] java.net.UnknownHostException 에러 해결 방법

- 원인 인천 데이터 포탈에서 OpenAPI 연결하는데 윈도우 로컬 환경에서는 잘 되던 부분이 리눅스 서버에서 java.net.UnknownHostException 에러가 발생함 - 이유 리눅스에서는 hosts 에서 ip,도메인 주소를

dowhiletrue.tistory.com

 

가장 편한 방법. host 설정을 지정하는 방법이다.

 

2. Flink 구성 파일이나 실행 명령어에서 호스트 이름을 지정

 

https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/config/

 

Configuration

Configuration # All configuration is done in conf/flink-conf.yaml, which is expected to be a flat collection of YAML key value pairs with format key: value. The configuration is parsed and evaluated when the Flink processes are started. Changes to the conf

nightlies.apache.org

 

만약 host 부분이 민감하다면, Flink가 사용하는 Akka 시스템에 올바른 호스트 이름 또는 IP 주소를 명시적으로 지정할 수도 있다.

Flink의 conf/flink-conf.yaml 파일에서 다음과 같은 설정을 조정할 수 있다.

 

  • jobmanager.rpc.address: <올바른 호스트 이름 또는 IP 주소>
  • taskmanager.host: <올바른 호스트 이름 또는 IP 주소>

또는 실행 시 다음과 같이 명령어 옵션을 사용할 수 있다.

 

flink bin 내부에 존재하는 daemon을 시작

./flink-daemon.sh start taskmanager -Dtaskmanager.host=10.50.10.114
혹은
./start-cluster.sh -Dtaskmanager.host=10.50.10.114

 

 

이 방법이 적용되지 않는다면, flink.conf를 통해 taskmanager를 직접 지정해줄 수도 있다.

 

flink-conf.yaml. 주소는 직접 받을 주소로 변경

..

jobmanager.rpc.address: 127.0.0.1
(추가)taskmanager.host: 127.0.0.1

..