You are viewing the RapidMiner Server documentation for version 9.3 - Check here for latest version
Using JBoss EAP 6.4 GA version
RapidMiner Server is bundled with JBoss EAP Alpha versions due to licensing restrictions. If you have the necessary license to run the JBoss EAP 6.4 GA version then you can also use it to run RapidMiner Server. The following steps are required to use the JBoss EAP 6.4 GA version:
Setting up the application server
RapidMiner Server requires configuration changes to the default JBoss EAP configuration. Normally the RapidMiner Server installer takes care of these changes but because of licensing restrictions the installer is shipped with the JBoss EAP Alpha version. As a result to run RapidMiner Server on a JBoss EAP GA instance you will need to manually perform the necessary configurations. The following sections will guide you step by step how to do so.
JBoss boot modules
Regardless of whether you are running the JBoss EAP under Windows, OS X or Linux the respective bootstrap scripts located
in the bin
folder need to be modified by adding the jboss-modules
jar to the bootstrap class path with the following
JVM option: -Xbootclasspath/a:\"$JBOSS_HOME/jboss-modules.jar\"
if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then # Execute the JVM in the foreground eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \ \"-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log\" \ \"-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties\" \
-Xbootclasspath/a:\"$JBOSS_HOME/jboss-modules.jar\" \
-jar \""$JBOSS_HOME"/jboss-modules.jar\" \ $MODULE_OPTS \ -mp \""${JBOSS_MODULEPATH}"\" \ -jaxpmodule "javax.xml.jaxp-provider" \ org.jboss.as.standalone \ -Djboss.home.dir=\""$JBOSS_HOME"\" \ -Djboss.server.base.dir=\""$JBOSS_BASE_DIR"\" \ "$SERVER_OPTS" JBOSS_STATUS=$? else # Execute the JVM in the background eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \ \"-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log\" \ \"-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties\" \
-Xbootclasspath/a:\"$JBOSS_HOME/jboss-modules.jar\" \
-jar \""$JBOSS_HOME"/jboss-modules.jar\" \ $MODULE_OPTS \ -mp \""${JBOSS_MODULEPATH}"\" \ -jaxpmodule "javax.xml.jaxp-provider" \ org.jboss.as.standalone \ -Djboss.home.dir=\""$JBOSS_HOME"\" \ -Djboss.server.base.dir=\""$JBOSS_BASE_DIR"\" \ "$SERVER_OPTS" "&" JBOSS_PID=$!
:RESTART if x%XLOGGC% == x ( "%JAVA%" %JAVA_OPTS% ^ "-Dorg.jboss.boot.log.file=%JBOSS_LOG_DIR%\server.log" ^ "-Dlogging.configuration=file:%JBOSS_CONFIG_DIR%/logging.properties" ^
-Xbootclasspath/a:"%JBOSS_HOME%\jboss-modules.jar" ^
-jar "%JBOSS_HOME%\jboss-modules.jar" ^ %MODULE_OPTS% ^ -mp "%JBOSS_MODULEPATH%" ^ -jaxpmodule "javax.xml.jaxp-provider" ^ org.jboss.as.standalone ^ "-Djboss.home.dir=%JBOSS_HOME%" ^ %SERVER_OPTS% ) else ( "%JAVA%" -Xloggc:%XLOGGC% %JAVA_OPTS% ^ "-Dorg.jboss.boot.log.file=%JBOSS_LOG_DIR%\server.log" ^ "-Dlogging.configuration=file:%JBOSS_CONFIG_DIR%/logging.properties" ^
-Xbootclasspath/a:"%JBOSS_HOME%\jboss-modules.jar" ^
-jar "%JBOSS_HOME%\jboss-modules.jar" ^ %MODULE_OPTS% ^ -mp "%JBOSS_MODULEPATH%" ^ -jaxpmodule "javax.xml.jaxp-provider" ^ org.jboss.as.standalone ^ "-Djboss.home.dir=%JBOSS_HOME%" ^ %SERVER_OPTS% )
RapidMiner Server home directory
The RapidMiner Server home directory is where your RapidMiner Server
configuration and data are stored. The folder needs to be created manually and we recommend to choose a location outside
of the application server structure. In the following article the RapidMiner Server home is referred to RM_HOME
and
should not be confused with the JBoss home directory JBOSS_HOME
. As every configuration should be stored within RM_HOME
move
the folder JBOSS_HOME/standalone/configuation
to RM_HOME/configuration
. Please also make sure to create the following
directories:
RM_HOME/data
RM_HOME/log
RM_HOME/resources/licenses
JBoss JVM options configuration
JBoss EAP needs to be started with specific JVM options for RapidMiner Server to work as expected. Apply the highlighted
changes to bin/standalone.conf.bat
file for Windows platforms or the /bin/standalone.conf
file in the case of Linux
and OS X platforms. The JVM maximum memory can be adjusted by creating the RM_HOME/configuration/max-memory.conf
file.
8192M
The expected value in the file is a number followed by letter ‘M’ which signifies the size of memory in MB. In this example the maximum amount of memory that RapidMiner Server may allocate is 8192 MB.
The amount set in the max-memory.conf
file MUST be greater than the Xms
option specified in
/bin/standalone.conf
or /bin/standalone.conf.bat
depending on your platform.
Change place holder "%%%%%JAVA_LOCATION%%%%%"
to the path of your jre/jdk installation and make sure that it’s version
is compatible with the RapidMiner Server version you want to install.
Change place holder "%%%%%RM_HOME_LOCATION%%%%%"
to a path of your choice.
We recommend a location outside of the application server.
## -*- shell-script -*- ###################################################### ## ## ## JBoss Bootstrap Script Configuration ## ## ## ############################################################################## # # This file is optional; it may be removed if not needed. # # # Specify the maximum file descriptor limit, use "max" or "maximum" to use # the default, as queried by the system. # # Defaults to "maximum" # #MAX_FD="maximum" # # Specify the profiler configuration file to load. # # Default is to not load profiler configuration file. # #PROFILER="" # # Specify the location of the Java home directory. If set then $JAVA will # be defined to $JAVA_HOME/bin/java, else $JAVA will be "java". #
JAVA_HOME="%%%%%JAVA_LOCATION%%%%%"
# # Specify the exact Java VM executable to use. # #JAVA="" if [ "x$JBOSS_MODULES_SYSTEM_PKGS" = "x" ]; then JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman" fi # Uncomment the following line to prevent manipulation of JVM options # by shell scripts. # #PRESERVE_JAVA_OPTS=true # # Use Xmx settings file introduced in RapidMiner Server 7.2 # MAX_MEMORY_CONFIG_FILE="$DIRNAME/../standalone/configuration/max-memory.conf" if [ -r "$MAX_MEMORY_CONFIG_FILE" ]; then MAX_MEMORY_CONFIG=$(cat "$MAX_MEMORY_CONFIG_FILE") else MAX_MEMORY_CONFIG="2048m" fi # # Specify options to pass to the Java VM. # if [ "x$JAVA_OPTS" = "x" ]; then JAVA_OPTS="-Xms1303m -Xmx$MAX_MEMORY_CONFIG -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true" JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:MaxGCPauseMillis=50" JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true" JAVA_OPTS="$JAVA_OPTS -Djboss.modules.policy-permissions=true" JAVA_OPTS="$JAVA_OPTS -Duser.country=US -Duser.language=en"
# Set pooled JNDI connection timeout in milliseconds JAVA_OPTS="$JAVA_OPTS -Dcom.sun.jndi.ldap.connect.pool.timeout=300000"
else echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS" fi # Sample JPDA settings for remote socket debugging #JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n" # Sample JPDA settings for shared memory debugging #JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_shmem,server=y,suspend=n,address=jboss" # Uncomment to not use JBoss Modules lockless mode #JAVA_OPTS="$JAVA_OPTS -Djboss.modules.lockless=false" # Uncomment to gather JBoss Modules metrics #JAVA_OPTS="$JAVA_OPTS -Djboss.modules.metrics=true" # Uncomment this to run with a security manager enabled # SECMGR="true"
# Specify the RapidMiner Server home directory. RAPIDMINER_SERVER_HOME="%%%%%RM_HOME_LOCATION%%%%%" JAVA_OPTS="$JAVA_OPTS -Drmserver.home.dir=$RAPIDMINER_SERVER_HOME" JAVA_OPTS="$JAVA_OPTS -Djboss.server.log.dir=$RAPIDMINER_SERVER_HOME/log" JAVA_OPTS="$JAVA_OPTS -Djboss.server.config.dir=$RAPIDMINER_SERVER_HOME/configuration" JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"
Change place holder "%%%%%JAVA_LOCATION%%%%%"
to the path of your jre/jdk installation and make sure that it’s version
is compatible with the RapidMiner Server version you want to install.
Change place holder "%%%%%RM_HOME_LOCATION%%%%%"
to a path of your choice.
We recommend a location outside of the application server.
rem ### -*- batch file -*- ###################################################### rem # ## rem # JBoss Bootstrap Script Configuration ## rem # ## rem ############################################################################# rem # $Id: run.conf.bat 88820 2009-05-13 15:25:44Z dimitris@jboss.org $ rem # rem # This batch file is executed by run.bat to initialize the environment rem # variables that run.bat uses. It is recommended to use this file to rem # configure these variables, rather than modifying run.bat itself. rem # rem Uncomment the following line to disable manipulation of JAVA_OPTS (JVM parameters) rem set PRESERVE_JAVA_OPTS=true rem # removed because when installing RA necessary options are defined; -xrs parameter of service would trigger skip rem if not "x%JAVA_OPTS%" == "x" ( rem echo "JAVA_OPTS already set in environment; overriding default settings with values: %JAVA_OPTS%" rem goto JAVA_OPTS_SET rem ) rem # rem # Specify the JBoss Profiler configuration file to load. rem # rem # Default is to not load a JBoss Profiler configuration file. rem # rem set "PROFILER=%JBOSS_HOME%\bin\jboss-profiler.properties" rem # rem # Specify the location of the Java home directory (it is recommended that rem # this always be set). If set, then "%JAVA_HOME%\bin\java" will be used as rem # the Java VM executable; otherwise, "%JAVA%" will be used (see below). rem #
set "JAVA_HOME=%%%%%JAVA_LOCATION%%%%%"
rem # rem # Specify the exact Java VM executable to use - only used if JAVA_HOME is rem # not set. Default is "java". rem # rem set "JAVA=C:\opt\jdk1.6.0_23\bin\java" rem # rem # Specify options to pass to the Java VM. Note, there are some additional rem # options that are always passed by run.bat. rem # rem # Use Xmx settings file introduced in RapidMiner Server 7.2 if exist %DIRNAME%\..\standalone\configuration\max-memory.conf ( set /p MAX_MEMORY_CONFIG=<%DIRNAME%\..\standalone\configuration\max-memory.conf ) else ( set MAX_MEMORY_CONFIG=2048m ) rem # JVM memory allocation pool parameters - modify as appropriate. set "JAVA_OPTS=%JAVA_OPTS% -Xms1303M -Xmx%MAX_MEMORY_CONFIG% -XX:MaxPermSize=256M" set "JAVA_OPTS=%JAVA_OPTS% -XX:+UseG1GC -XX:MaxGCPauseMillis=50" rem # Prefer IPv4 set "JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true"
rem # Set pooled JNDI connection timeout in milliseconds set "JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.jndi.ldap.connect.pool.timeout=300000"
rem # Set the jboss.modules.policy-permissions property to true by default. set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.policy-permissions=true " rem # Make Byteman classes visible in all module loaders rem # This is necessary to inject Byteman rules into AS7 deployments set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.system.pkgs=org.jboss.byteman" rem # Set to english logging set "JAVA_OPTS=%JAVA_OPTS% -Duser.country=US -Duser.language=en" rem # Sample JPDA settings for remote socket debugging rem set "JAVA_OPTS=%JAVA_OPTS% -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n" rem # Sample JPDA settings for shared memory debugging rem set "JAVA_OPTS=%JAVA_OPTS% -agentlib:jdwp=transport=dt_shmem,address=jboss,server=y,suspend=n" rem # Use JBoss Modules lockless mode rem set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.lockless=true" rem # Uncomment this to run with a security manager enabled rem set "SECMGR=true" :JAVA_OPTS_SET
rem # Set home folder set "JAVA_OPTS=%JAVA_OPTS% -Drmserver.home.dir=%%%%%RM_HOME_LOCATION%%%%%" rem # Set log folder set "JAVA_OPTS=%JAVA_OPTS% -Djboss.server.log.dir=%%%%%RM_HOME_LOCATION%%%%%\log" rem # Set configuration folder set "JAVA_OPTS=%JAVA_OPTS% -Djboss.server.config.dir=%%%%%RM_HOME_LOCATION%%%%%\configuration" rem # Set UTF-8 file encoding set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8"
JDBC driver configuration
Configure the JDBC driver to allow connection to your repository database. JBoss GA does not come with bundled JDBC
drivers so you will need to download the driver and store it to the appropriate location under modules/system/layers/base
folder. Depending on the underlying database you are using the full path will differ:
- Microsoft SQL Server: create the
com/mssql/main
subfolder structure inside the base folder and copy the driver library (for examplemssql-jdbc-6.4.0.jre8.jar
) into it. - MySQL: create the
com/mysql/main
subfolder structure inside the base folder and copy the driver library (for examplemysql-connector-java-8.0.11.jar
) into it. - Oracle: create the
oracle/main
subfolder structure inside the base folder and copy the driver library (for exampleojdbc7-12.1.0.2.jar
) into it. - PostgreSQL: create the
org/postgresql/main
subfolder structure inside the base folder and copy the driver library (for examplepostgresql-42.2.2.jar
) into it.
You also need to register the JDBC driver library by creating a module.xml
file in the same folder the driver is stored.
Depending on the driver and version you will need to modify the name="..."
and path="..."
attributes.
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com/mssql">
<resources>
<resource-root path="mssql-jdbc-6.4.0.jre8.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.xml.bind.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com/mysql">
<resources>
<resource-root path="mysql-connector-java-8.0.11.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="oracle">
<resources>
<resource-root path="ojdbc7-12.1.0.2.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="org/postgresql">
<resources>
<resource-root path="postgresql-42.2.2.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
Modify JBoss database configuration
Now that JBoss is able to use the JDBC driver you need to add a data source and register the JDBC driver in
standalone/configuration/standalone.xml
.
The data source describes the connection to the RapidMiner Server repository database while the driver defines the Java class that implements the JDBC driver class. Data source and driver definition may vary depending on the type of database you use.
You need to add the datasource
and the driver
tags under datasources
tag. Also do not forget to change:
- the
<connection-url>...<connection-url>
according to your JDBC driver, - the
<driver-class>...</driver-class>
and<xa-datasource-class>...</xa-datasource-class>
depending on the JDBC driver class, - the
<driver>...</driver>
, the<driver name="..." module="...">
depending on the JDBC driver library you configured. - within the new
datasource
element, update thesecurity
element with the correctuser-name
andpassword
.
<datasource jta="true" jndi-name="java:/jdbc/RapidAnalyticsDS"
pool-name="RapidAnalyticsDS" enabled="true" use-java-context="false"
use-ccm="true">
<connection-url>jdbc:sqlserver://dbhost:1433;databaseName=dbschema;SelectMethod=cursor;</connection-url>
<driver>mssql-jdbc-6.4.0.jre8.jar</driver>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
<prefill>false</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>dbuser</user-name>
<password>dbpassword</password>
</security>
<validation>
<!-- Ensure that a DB outage is detected and Server is able to restore DB connections afterwards again -->
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>5000</background-validation-millis>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"></valid-connection-checker>
</validation>
</datasource>
<drivers>
<driver name="mssql-jdbc-6.4.0.jre8.jar" module="com/mssql">
<xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</xa-datasource-class>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
</driver>
</drivers>
<datasource jta="true" jndi-name="java:/jdbc/RapidAnalyticsDS"
pool-name="RapidAnalyticsDS" enabled="true" use-java-context="false"
use-ccm="true">
<connection-url>jdbc:mysql://dbhost:3306/dbschema</connection-url>
<connection-property name="rewriteBatchedStatements">true</connection-property>
<driver>mysql-connector-java-8.0.11.jar</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<min-pool-size>0</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>dbuser</user-name>
<password>dbpassword</password>
</security>
<validation>
<!-- Ensure that a DB outage is detected and Server is able to restore DB connections afterwards again -->
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>5000</background-validation-millis>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"></valid-connection-checker>
</validation>
<statement>
<prepared-statement-cache-size>0</prepared-statement-cache-size>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<drivers>
<driver name="mysql-connector-java-8.0.11.jar" module="com/mysql">
<xa-datasource-class>com.mysql.jdbc.Driver</xa-datasource-class>
<driver-class>com.mysql.jdbc.Driver</driver-class>
</driver>
</drivers>
<datasource jta="true" jndi-name="java:/jdbc/RapidAnalyticsDS"
pool-name="RapidAnalyticsDS" enabled="true" use-java-context="false"
use-ccm="true">
<connection-url>jdbc:oracle:thin:@dbhost:1521:dbschema</connection-url>
<driver>ojdbc7-12.1.0.2.jar</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>dbuser</user-name>
<password>dbpassword</password>
</security>
<validation>
<!-- Ensure that a DB outage is detected and Server is able to restore DB connections afterwards again -->
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>5000</background-validation-millis>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"></valid-connection-checker>
</validation>
</datasource>
<drivers>
<driver name="ojdbc7-12.1.0.2.jar" module="oracle">
<xa-datasource-class>oracle.jdbc.driver.OracleDriver</xa-datasource-class>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
</drivers>
</driver>
<datasource jta="true" jndi-name="java:/jdbc/RapidAnalyticsDS"
pool-name="RapidAnalyticsDS" enabled="true" use-java-context="false"
use-ccm="true">
<connection-url>jdbc:postgresql://dbhost:5432/dbschema</connection-url>
<driver>postgresql-42.2.2</driver>
<security>
<user-name>dbuser</user-name>
<password>dbpassword</password>
</security>
<validation>
<!-- Ensure that a DB outage is detected and Server is able to restore DB connections afterwards again -->
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>5000</background-validation-millis>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"></valid-connection-checker>
</validation>
</datasource>
<drivers>
<driver name="postgresql-42.2.2" module="org/postgresql">
<xa-datasource-class>org.postgresql.Driver</xa-datasource-class>
<driver-class>org.postgresql.Driver</driver-class>
</driver>
</drivers>
Disable Subdeployment Class Loader Isolation
To disable Subdeployment class loader Isolation within an ear file locate the <subsystem xmlns="urn:jboss:domain:ee:1.2">
element within the standalone/configuration/standalone.xml
and replace the
<jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>
element with
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>
.
Modify JBoss security configuration
The standalone/configuration/standalone.xml
file needs to be adjusted with an additional security-domain
element
with attribute name="RapidAnalyticsEJBDomain"
that defines the security domain used by RapidMiner Server for
authentication and access control. This element needs to be placed within the security-domains
element:
<security-domains>
<security-domain name="other" cache-type="default">
<authentication>
<login-module code="Remoting" flag="optional">
<module-option name="password-stacking" value="useFirstPass"/>
</login-module>
<login-module code="RealmDirect" flag="required">
<module-option name="password-stacking" value="useFirstPass"/>
</login-module>
</authentication>
</security-domain>
<security-domain name="RapidAnalyticsEJBDomain" cache-type="default">
<authorization>
<policy-module code="Delegating" flag="required"/>
</authorization>
</security-domain>
<security-domain name="jboss-web-policy" cache-type="default">
<authorization>
<policy-module code="Delegating" flag="required"/>
</authorization>
</security-domain>
<security-domain name="jboss-ejb-policy" cache-type="default">
<authorization>
<policy-module code="Delegating" flag="required"/>
</authorization>
</security-domain>
</security-domains>
If you want to use Radoop on RapidMiner Server as well, you will also need to add the security group radoop-kerberos
to the security-domains
element. The security domains hadoop_default
, Client_simple
and Client
are only necessary
if you want to connect to a MapR cluster.
<security-domain name="radoop-kerberos" cache-type="default">
<authentication>
<login-module code="com.sun.security.auth.module.Krb5LoginModule" flag="required">
<module-option name="storeKey" value="true"/>
</login-module>
</authentication>
</security-domain>
<security-domain name="hadoop_default" cache-type="default">
<authentication>
<login-module code="org.apache.hadoop.security.login.GenericOSLoginModule" flag="required">
</login-module>
<login-module code="com.mapr.security.maprsasl.MaprSecurityLoginModule" flag="required">
<module-option name="checkUGI" value="false"/>
</login-module>
<login-module code="org.apache.hadoop.security.login.HadoopLoginModule" flag="required">
<module-option name="principalPriority" value="com.mapr.security.MapRPrincipal"/>
</login-module>
</authentication>
</security-domain>
<security-domain name="Client_simple" cache-type="default">
<authentication>
<login-module code="com.mapr.security.simplesasl.GenericLoginModule" flag="required">
<module-option name="authMech" value="SIMPLE-SECURITY"/>
</login-module>
</authentication>
</security-domain>
<security-domain name="Client" cache-type="default">
<authentication>
<login-module code="com.mapr.security.maprsasl.MaprSecurityLoginModule" flag="required">
<module-option name="checkUGI" value="false"/>
<module-option name="authMech" value="MAPR-SECURITY"/>
<module-option name="debug" value="true"/>
</login-module>
</authentication>
</security-domain>
In order to enable LDAP authentication you will need to create the local-security.properties
and store it in the
/standalone/configuration
folder. Then follow the steps as explained in
Changing LDAP settings guide
JBoss virtual server configuration
RapidMiner Server additionally requires changes to virtual server configuration in standalone/configuration/standalone.xml
file. Locate the virtual server subsystem with attribute xmlns="urn:jboss:domain:web:2.2"
. There be sure to make the
following changes:
- change
default-virtual-server
attribute to have the value"ra-host"
- add a
virtual-server
element with the following attributes and its values:name="ra-host"
,enable-welcome-root="false"
anddefault-web-module="ROOT"
- inside the
virtual-server
element create analias
element with an attributename
whose value is the host name RapidMiner server will be accessible, for example<alias name="www.rapidminer.com"/>
"%%%%%SERVER_HOST%%%%%"
to the address RapidMiner Server should be accessible from.
<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="ra-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<virtual-server name="default-host" enable-welcome-root="false">
<alias name="example.com"/>
</virtual-server>
<virtual-server name="ra-host" enable-welcome-root="false" default-web-module="ROOT">
<alias name="%%%%%SERVER_HOST%%%%%"/>
</virtual-server>
</subsystem>
JBoss interface configuration
The JBoss application server needs to be configured on which address the application as well as the management endpoints
of the server should be accessed. To do this the interfaces
and <socket-binding-group>
elements need to be adapted
in the standalone/configuration/standalone.xml
configuration file. Specifically:
- adjust the nested
interface
elements with name attribute valuesmanagement
,public
,unsecure
to contain aninet-address
element as follows:<inet-address value="${jboss.bind.address.management:%%%%%SERVER_HOST%%%%%}"/>
.Be sure to change
%%%%%SERVER_HOST%%%%%
placeholder to the address you set previously asalias
name when configuring the virtual server element - add an additional
interface
element of which the attributename
isany
and has a nested<any-ipv4-address/>
element - locate the
<socket-binding-group>
element and change it'sdefault-interface
attribute value to"any"
.
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:%%%%%SERVER_HOST%%%%%}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:%%%%%SERVER_HOST%%%%%}"/>
</interface>
<interface name="unsecure">
<inet-address value="${jboss.bind.address.unsecure:%%%%%SERVER_HOST%%%%%}"/>
</interface>
<interface name="any">
<any-ipv4-address/>
</interface>
</interfaces>
Configure the WSDL SOAP address
To configure the soap:address
element which the RapidMiner Server WSDL lists you will need to update the
<wsdl-host>
element in the standalone/configuration/standalone.xml
with the address %%%%%SERVER_HOST%%%%%
you set
during the JBoss interface configuration step.
Bind RapidMiner Server to a specific address (Optional)
It is possible to bind the Rapidminer Server access to specific address. To do this you need first to configure a
virtual server address and assign it to an interface. Once you have completed
these steps locate the <socket-binding-group>
element in the standalone/configuration/standalone.xml
file and change
it's default-interface
attribute value to "public"
.
Change the default http port (Optional)
The default port for the http requests directed to RapidMiner Server (currently 8080) can be changed via the
standalone/configuration/standalone.xml
. Locate the <socket-binding-group>
and the nested <socket-binding>
element
of which the attribute name
has "http"
value. Change the port
attribute accordingly.
JBoss virtual SMTP configuration (Optional)
To be able to send automated e-mails from RadpidMiner Server, the JBoss virtual SMTP configuration needs to be adjusted. This step is optional and can be skipped if you do not require the e-mail functionality of RapidMiner Server.
Locate the mail-session
tag within standalone/configuration/standalone.xml
and change the following:
- update the
jndi-name
attribute to value"java:/Mail"
- add the
debug
attribute with value"false"
- add the
from
attribute with the value you want to appear as the sender of the e-mail, for example no-reply@rapidminer.com - change the nested
smtp-server
element from empty element tag to an element with start and end tags. Within the element add alogin-name
element with the attributesname
andpassword
for the smtp server user that will be used to send the e-mail.
"%%%%%MAIL_SENDER%%%%%"
to the email address you want to appear as the sender of the e-mail, and placeholders
%%%%%MAIL_USER%%%%%
,%%%%%MAIL_PASSWORD%%%%%
to the credentials of the user that will be used to send the e-mail by the smtp server.
<mail-session jndi-name="java:/Mail" debug="false" from="%%%%%MAIL_SENDER%%%%%">
<custom-server name="smtp" outbound-socket-binding-ref="mail-smtp">
<login name="%%%%%MAIL_USER%%%%%" password="%%%%%MAIL_PASSWORD%%%%%"/>
</custom-server>
</mail-session>
"%%%%%MAIL_SENDER%%%%%"
to the email address you want to appear as the sender of the e-mail, and placeholders
%%%%%MAIL_USER%%%%%
,%%%%%MAIL_PASSWORD%%%%%
to the credentials of the user that will be used to send the e-mail by the smtp server.
<mail-session jndi-name="java:/Mail" debug="false" from="%%%%%MAIL_SENDER%%%%%">
<custom-server name="smtp" outbound-socket-binding-ref="mail-smtp">
<login name="%%%%%MAIL_USER%%%%%" password="%%%%%MAIL_PASSWORD%%%%%"/>
<property name="mail.smtp.starttls.enable" value="true"/>
</custom-server>
</mail-session>
"%%%%%MAIL_SENDER%%%%%"
to the email address you want to appear as the sender of the e-mail, and placeholders
%%%%%MAIL_USER%%%%%
,%%%%%MAIL_PASSWORD%%%%%
to the credentials of the user that will be used to send the e-mail by the smtp server.
<mail-session jndi-name="java:/Mail" debug="false" from="%%%%%MAIL_SENDER%%%%%">
<custom-server name="smtp" outbound-socket-binding-ref="mail-smtp">
<login name="%%%%%MAIL_USER%%%%%" password="%%%%%MAIL_PASSWORD%%%%%"/>
<property name="mail.smtp.starttls.enable" value="true"/>
<property name="mail.smtp.starttls.required" value="true"/>
</custom-server>
</mail-session>
"%%%%%MAIL_SENDER%%%%%"
to the email address you want to appear as the sender of the e-mail, and placeholders
%%%%%MAIL_USER%%%%%
,%%%%%MAIL_PASSWORD%%%%%
to the credentials of the user that will be used to send the e-mail by the smtp server.
<mail-session jndi-name="java:/Mail" debug="false" from="%%%%%MAIL_SENDER%%%%%">
<custom-server name="smtp" outbound-socket-binding-ref="mail-smtp">
<login name="%%%%%MAIL_USER%%%%%" password="%%%%%MAIL_PASSWORD%%%%%"/>
<property name="mail.smtp.starttls.enable" value="true"/>
<property name="mail.smtp.starttls.required" value="true"/>
<property name="mail.smtp.ssl.protocols" value="TLSv1.2"/>
<property name="mail.smtp.ssl.ciphersuites" value="TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"/>
<property name="mail.smtp.ssl.checkserveridentity" value="true"/>
</custom-server>
</mail-session>
"%%%%%MAIL_SENDER%%%%%"
to the email address you want to appear as the sender of the e-mail, and placeholders
%%%%%MAIL_USER%%%%%
,%%%%%MAIL_PASSWORD%%%%%
to the credentials of the user that will be used to send the e-mail by the smtp server.
<mail-session jndi-name="java:/Mail" debug="false" from="%%%%%MAIL_SENDER%%%%%">
<custom-server name="smtp" outbound-socket-binding-ref="mail-smtp">
<login name="%%%%%MAIL_USER%%%%%" password="%%%%%MAIL_PASSWORD%%%%%"/>
<property name="mail.smtp.ssl.enable" value="true"/>
<property name="mail.smtp.ssl.protocols" value="TLSv1 TLSv1.1 TLSv1.2"/>
</custom-server>
</mail-session>
"%%%%%MAIL_SENDER%%%%%"
to the email address you want to appear as the sender of the e-mail, and placeholders
%%%%%MAIL_USER%%%%%
,%%%%%MAIL_PASSWORD%%%%%
to the credentials of the user that will be used to send the e-mail by the smtp server.
<mail-session jndi-name="java:/Mail" debug="false" from="%%%%%MAIL_SENDER%%%%%">
<custom-server name="smtp" outbound-socket-binding-ref="mail-smtp">
<login name="%%%%%MAIL_USER%%%%%" password="%%%%%MAIL_PASSWORD%%%%%"/>
<property name="mail.smtp.ssl.enable" value="true"/>
<property name="mail.smtp.ssl.protocols" value="TLSv1.2"/>
<property name="mail.smtp.ssl.ciphersuites" value="TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"/>
<property name="mail.smtp.ssl.checkserveridentity" value="true"/>
</custom-server>
</mail-session>
Deploying the application
Check the Downloading RapidMiner Server section on how you can download the latest RapidMiner Server installer and follow the instructions as described in the Installing the full server package section. After the installation is completed, copy the files from the recently installed RapidMiner Server instance to the JBoss GA version:
RM_HOME/configuration/execution.properties
JBOSS_HOME/standalone/deployments/rapidminer-server-*.ear
JBOSS_HOME/standalone/deployments/rapidminer-execution-jobservice-*.war
The next step is to startup RapidMiner Server.
After the successful login you may be prompted to take a series of configuration steps
and finally to add a RapidMiner Server license. Copy your RapidMiner Server license key
and click on Submit. The installation is now completed and the RapidMiner Server home page should be displayed.