Я думаю, что вы используете Cloudera Hadoop. В версиях Spark 2.x произошли значительные изменения по сравнению с версиями 1.x. В некотором смысле, есть проблемы совместимости. Поэтому, когда ваши существующие производственные задания, которые использовали версию 1.x, работают на 2.x, есть больше шансов, что ваша работа может потерпеть неудачу.
Просто для обеспечения обратной совместимости, Cloudera добавил «spark2-submit» и попросил пользователей использовать его для всех заданий «go-forward». И "spark-submit" все равно будет использовать версию 1.x, и вам не нужно трогать какие-либо рабочие задания.
Так что это просто из соображений совместимости.
Почему не просто пробуют что-то вроде этого:
[Files]
Source: ClientSetup.msi; DestDir: {tmp}; Flags: deleteafterinstall; Components: Client
Source: ServerSetup.msi; DestDir: {tmp}; Flags: deleteafterinstall; Components: Server
[Run]
Filename: msiexec.exe; Parameters: /i "{tmp}\ClientSetup.msi" /qb INSTALLDIR="{code:GetInstallPath}\Client\" ALLUSERS=2; WorkingDir: {tmp}; StatusMsg: Installing client; Components: Client
Filename: msiexec.exe; Parameters: /i "{tmp}\ServerSetup.msi" /qb INSTALLDIR="{code:GetInstallPath}\Server\" ALLUSERS=2; WorkingDir: {tmp}; StatusMsg: Installing server; Components: Server
[Components]
Name: Client; Description: Client Installation
Name: Server; Description: Server Installation
Конечно, необходимо не обязательно использовать Components
. Вы не записали, как Вы решаете который установщик работать. При необходимости в более сложной логике, Вы могли бы также использовать Check
функции как в:
[Files]
Source: ClientSetup.msi; DestDir: {tmp}; Flags: deleteafterinstall; Check: CheckClient
Source: ServerSetup.msi; DestDir: {tmp}; Flags: deleteafterinstall; Check: CheckServer
[Run]
Filename: msiexec.exe; Parameters: /i "{tmp}\ClientSetup.msi" /qb INSTALLDIR="{code:GetInstallPath}\Client\" ALLUSERS=2; WorkingDir: {tmp}; StatusMsg: Installing client; Check: CheckClient
Filename: msiexec.exe; Parameters: /i "{tmp}\ServerSetup.msi" /qb INSTALLDIR="{code:GetInstallPath}\Server\" ALLUSERS=2; WorkingDir: {tmp}; StatusMsg: Installing server; Check: CheckServer
[Code]
function CheckClient: Boolean;
begin
Result := WhateverCondition;
end;
function CheckServer: Boolean;
begin
Result := WhateverOtherCondition;
end;