Compile And Package
1. Preparation#
Environment requirements: Version of JDK must be higher then JDK8, Oracle/Sun and OpenJDK are both supported.
After obtaining the project code from github repository https://github.com/apache/incubator-linkis, use maven to compile the project installation package.
1.1 Source code acquisition#
- Method 1: Obtain the source code of the project from github repository https://github.com/apache/incubator-linkis.
- Method 2: Download the source code package of the required version from the linkis official download page https://linkis.apache.org/download/main.
Notice : The official recommended versions for compiling Linkis are hadoop-2.7.2, hive-1.2.1, spark-2.4.3, and Scala-2.11.12.
If you want to compile Linkis with another version of Hadoop, Hive, Spark, please refer to: How to Modify Linkis dependency of Hadoop, Hive, Spark
1.2 Modify dependency configuration#
Note
Because the mysql-connector-java driver is under the GPL2.0 agreement and does not meet the license policy of the Apache open source agreement, starting from version 1.0.3, the scope of the dependency on mysql-connector-java is test by default. If you compile by yourself , You can modify the scope scope that the mysql-connector-java of the top-level pom.xml depends on (just comment it out)
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.connector.version}</version> <!--<scope>test</scope>--></dependency>2. Fully compile Linkis#
step1 Compile for the first time (not the first time you can skip this step)#
If you are compiling and using it locally for the first time, you must first execute the following command in the root directory of the Linkis source code package:
cd incubator-linkis-x.x.x mvn -N installstep2 Execute compilation#
Execute the following commands in the root directory of the Linkis source code package:
cd incubator-linkis-x.x.x mvn clean install
step3 Obtain the installation package#
The compiled complete installation package is in the linkis-dist->target directory of the project:
#Detailed path is as follows incubator-linkis-x.x.x/linkis-dist/target/apache-linkis-x.x.x-incubating-bin.tar.gz3. Compile a single module#
step1 Compile for the first time (skip this step for non-first time)#
If you are compiling and using it locally for the first time, you must first execute the following command in the root directory of the Linkis source code package:
cd incubator-linkis-x.x.x mvn -N installstep2 Enter the corresponding module to compile#
Enter the corresponding module to compile, for example, if you want to recompile Entrance, the command is as follows:
cd incubator-linkis-x.x.x/linkis-computation-governance/linkis-entrance mvn clean installstep3 Obtain the installation package#
Get the installation package, there will be a compiled package in the ->target directory of the corresponding module:
incubator-linkis-x.x.x/linkis-computation-governance/linkis-entrance/target/linkis-entrance.x.x.x.jar4. Compile an engine#
Here's an example of the Spark engine that builds Linkis:
step1 Compile for the first time (skip this step for non-first time)#
If you are using it locally for the first time, you must first execute the following command in the root directory of the Linkis source code package:
cd incubator-linkis-x.x.x mvn -N installstep2 Enter the corresponding module to compile#
Enter the directory where the Spark engine is located to compile and package, the command is as follows:
cd incubator-linkis-x.x.x/linkis-engineconn-pluginsspark mvn clean installstep3 Obtain the installation package#
Get the installation package, there will be a compiled package in the ->target directory of the corresponding module:
incubator-linkis-x.x.x/linkis-engineconn-pluginsspark/target/linkis-engineplugin-spark-x.x.x.jarHow to install Spark engine separately? Please refer to Linkis Engine Plugin Installation Document
5. How to modify the Hadoop, Hive, and Spark versions that Linkis depends on#
Please note: Hadoop is a big data basic service, Linkis must rely on Hadoop for compilation; If you don't want to use an engine, you don't need to set the version of the engine or compile the engine plug-in.
Specifically, the version of Hadoop can be modified in a different way than Spark, Hive, and other computing engines, as described below:
5.1 How to modify the Hadoop version that Linkis depends on#
Enter the source package root directory of Linkis, and manually modify the Hadoop version information of the pom.xml file, as follows:
cd incubator-linkis-x.x.x vim pom.xml <properties> <hadoop.version>2.7.2</hadoop.version> <!--> Modify the Hadoop version number here <--> <scala.version>2.11.12</scala.version> <jdk.compile.version>1.8</jdk.compile.version> </properties>Please note: If your hadoop version is hadoop3, you need to modify the pom file of linkis-hadoop-common Because under hadoop2.8, hdfs-related classes are in the hadoop-hdfs module, but in hadoop 3.X the corresponding classes are moved to the module hadoop-hdfs-client, you need to modify this file: pom:Linkis/linkis-commons/linkis-hadoop-common/pom.xml Modify the dependency hadoop-hdfs to hadoop-hdfs-client:
<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <!-- Just replace this line with <artifactId>hadoop-hdfs-client</artifactId>--> <version>${hadoop.version}</version></dependency> Modify hadoop-hdfs to: <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs-client</artifactId> <version>${hadoop.version}</version></dependency>5.2 How to modify the Spark and Hive versions that Linkis depends on#
Here's an example of changing the version of Spark. Go to the directory where the Spark engine is located and manually modify the Spark version information of the pom.xml file as follows:
cd incubator-linkis-x.x.x/linkis-engineconn-pluginsspark vim pom.xml <properties> <spark.version>2.4.3</spark.version> <!--> Modify the Spark version number here <--> </properties>Modifying the version of other engines is similar to modifying the Spark version. First, enter the directory where the relevant engine is located, and manually modify the engine version information in the pom.xml file.
Then please refer to 4. Compile an engine
6. How to exclude the specified engines during fully compile#
You can use the -pl option of mvn command, please refer below for details
-pl,--projects <arg> Comma-delimited list of specified reactor projects to build instead of all projects. A project can be specified by [groupId]:artifactId or by its relative path.Implement the reverse selection by using ! to exclude the given engines so that shorten the consumed time for fully compile.
Here we take flink, sqoop and hive as an example, and exclude them during fully compile:
mvn clean install -Dmaven.test.skip=true \-pl '!linkis-engineconn-plugins/flink,!linkis-engineconn-plugins/sqoop,!linkis-engineconn-plugins/hive'