Мы используем кластер emr на веб-сервисах Amazon «aws». Мы используем изображения Amazon Linux AMI по умолчанию без настройки. Мне кажется, что скрипт dhclient выбирает конфигурации от наших компаний dhcp (протокол динамической конфигурации хоста), особенно ntp (протокол сетевого времени)
В качестве примера на главном узле сценарий dhclient добавляет серверы ntp наших компаний в файл /etc/ntp.conf
.
[hadoop@ip-10-5-21-157 ~]$ grep ^server /etc/ntp.conf
server 0.amazon.pool.ntp.org iburst
server 1.amazon.pool.ntp.org iburst
server 2.amazon.pool.ntp.org iburst
server 3.amazon.pool.ntp.org iburst
server 10.2.78.21 # added by /sbin/dhclient-script
server 10.2.78.22 # added by /sbin/dhclient-script
server 10.2.78.23 # added by /sbin/dhclient-script
server 10.2.78.24 # added by /sbin/dhclient-script
IP-адреса 10.2.78.21-24 преобразуются в clockNN.ntp.mycompany.com
Как этого избежать, чтобы мы просто использовали настройки по умолчанию от Amazon?
РЕДАКТИРОВАТЬ У нас были проблемы при запуске свиноводства на кластере emr. Пример трассировки стека исключений:
18/01/07 13:50:23 INFO tez.TezJob: DAG Status: status=FAILED, progress=TotalTasks: 4737 Succeeded: 3777 Running: 0 Failed: 1 Killed: 959 FailedTaskAttempts: 428 KilledTaskAttempts: 309, diagnostics=Vertex failed, vertexName=scope-421, vertexId=vertex_1515326570070_0001_1_04, diagnostics=[Task failed, taskId=task_1515326570070_0001_1_04_002846, diagnostics=[TaskAttempt 0 failed, info=[Container launch failed for container_1515326570070_0001_01_000599 : org.apache.hadoop.yarn.exceptions.YarnException: Unauthorized request to start container.
This token is expired. current time is 1515332813920 found 1515330236564
Note: System times on machines may be out of sync. Check system time and time zones.
at sun.reflect.GeneratedConstructorAccessor51.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.apache.hadoop.yarn.api.records.impl.pb.SerializedExceptionPBImpl.instantiateException(SerializedExceptionPBImpl.java:168)
at org.apache.hadoop.yarn.api.records.impl.pb.SerializedExceptionPBImpl.deSerialize(SerializedExceptionPBImpl.java:106)
at org.apache.tez.dag.app.launcher.TezContainerLauncherImpl$Container.launch(TezContainerLauncherImpl.java:160)
at org.apache.tez.dag.app.launcher.TezContainerLauncherImpl$EventProcessor.run(TezContainerLauncherImpl.java:353)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Основная причина (некоторых) машин emr (виртуальных машин, изображений, узлов?) Системным временем отключения могли быть DNS-серверы нашей компании. (Но это дикое предположение.) Одна из идей удалить эту возможность - удалить эти ntp-серверы из файла /etc/ntp.conf и повторно инициализировать системное время.