Задание искры развернуто в режиме кластера пряжи. После установки spark.ui.port в sparkConf sparkConf.setProperty("spark.ui.port", "12345")
пользовательский интерфейс по-прежнему создается в произвольном порту.
*19/10/10 14:15:46 INFO Utils: Successfully started service 'SparkUI' on port 37303.
19/10/10 14:15:46 INFO SparkUI: Started SparkUI at http://10.65.170.98:37303*
Из журналов приложения spark свойство spark.ui.port имеет видпереопределяется, хотя я никогда не устанавливал свойство JVm '- Dspark.ui.port = 0' .
команда: LD_LIBRARY_PATH = "/ usr / hdp / 2.6.4.0-91/ hadoop / lib / native: $ LD_LIBRARY_PATH "{{JAVA_HOME}} / bin / java -server -XX: OnOutOfMemoryError = 'kill% p' -Xms4096m -Xmx4096m -Djava.io.tmpdir = {{PWD}} / tmp '-Dspark.blockManager.port = 9900 '' -Dspark.driver.port = 9904 '' -Dspark.port.maxRetries = 20 '' - Dspark.ui.port = 0 '
Заменяет ли ApplicationMaster порт на интерфейс искры?
Здесь-> https://github.com/apache/spark/blob/master/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala
Я вижу, что метод run () устанавливает системное свойство UI_PORT , будет ли это переопределять значениеустановить в sparkConf.
final def run(): Int = {
try {
val attemptID = if (isClusterMode) {
// Set the web ui port to be ephemeral for yarn so we don't conflict with
// other spark processes running on the same box
System.setProperty(UI_PORT.key, "0")
// Set the master and deploy mode property to match the requested mode.
System.setProperty("spark.master", "yarn")
Требуется ограничить порты, используемые искровым заданием, поскольку не все порты могут быть открыты. Все остальные порты, используемые в искровом задании, могут быть настроены с соответствующим свойством, установленным в sparkConf.
Также см. https://github.com/cloudera/spark/blob/master/yarn/alpha/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala, где метод run () устанавливает spark.ui.port
def run() {
// Setup the directories so things go to yarn approved directories rather
// then user specified and /tmp.
System.setProperty("spark.local.dir", getLocalDirs())
// set the web ui port to be ephemeral for yarn so we don't conflict with
// other spark processes running on the same box
System.setProperty("spark.ui.port", "0")
Howограничить порт пользовательского интерфейса для работы с искрой, запущенной в режиме пряжи?