Skip to main content

How to package

Software Requirement

SoftwareCommentVersionDownload Link
GitFetch branch name and hash of latest commitlatesthttps://git-scm.com/book/en/v2/Getting-Started-Installing-Git
Apache MavenBuild Java and Scala source code3.8.2 or latesthttps://maven.apache.org/download.cgi
Node.jsBuild front end12.14.0 is recommended ( or 12.x ~ 14.x)How to switch to older node.js
JDKJava Compiler and Development ToolsJDK 1.8.xhttps://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html

After installing the above software, please verify software requirements by following commands:

$ java -version
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)

$ mvn -v
Apache Maven 3.8.2 (ea98e05a04480131370aa0c110b8c54cf726c06f)
Maven home: /Users/xiaoxiang.yu/LacusDir/lib/apache-maven-3.8.2
Java version: 1.8.0_301, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home/jre
Default locale: en_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.16", arch: "x86_64", family: "mac"

$ node -v
v12.14.0

$ git version
git version 2.30.1 (Apple Git-130)

Options for Packaging Script

OptionComment
-officialIf adding this option, the package name won't contain the timestamp
-noThirdPartyIf adding this option, third-party binary won't be packaged into binary, current they are influxdb,grafana and PostgreSQL
-noSparkIf adding this option, spark won't be packaged into the Kylin binary
-noHive1By default Kylin 5.0 will support Hive 1.2, if add this option, this binary will support Hive 2.3+
-skipFrontIf add this option, the front-end won't be built and packaged
-skipCompileAdd this option will assume java source code no need to be compiled again

Other Options for Packaging Script

OptionComment
-P hadoop3Packaging a Kylin 5.0 software package for running on Hadoop 3.0 + platform.

Package Content

OptionComment
VERSIONApache Kylin ${release_version}
commit_SHA1${HASH_COMMIT}@${BRANCH_NAME}

Package Name convention

Package name is apache-kylin-${release_version}.tar.gz, while ${release_version} is {project.version}.YYYYmmDDHHMMSS by default. For example, an unofficial package could be apache-kylin-5.0.0-SNAPSHOT.20220812161045.tar.gz while an official package could be apache-kylin-5.0.0.tar.gz

Example for developer and release manager


## Case 1: For the developer who wants to package for testing purposes
./build/release/release.sh

## Case 2: Official apache release, Kylin binary for deployment on Hadoop3+ and Hive2.3+,
# and the third party cannot be distributed because of apache distribution policy(size and license)
./build/release/release.sh -noSpark -official

## Case 3: A package for Apache Hadoop 3 platform
./build/release/release.sh -P hadoop3

How to install older node.js

  1. Please visit https://nodejs.org/en/download/ to download and install the latest node.js. After installed, you may use the following command to verify if the latest node.js is in use:
$ node -v
v16.17.0
  1. Use some tools like https://github.com/nvm-sh/nvm to install a specific version of node.js
## Switch to specific version using nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install 12.14.0

## Before packaging, please switch to a specific version
nvm use 12.14.0

You may use the following command to verify if older node.js is in use:

$ node -v
v12.14.0
  1. Switch to the latest node.js
## switch to the original version
nvm use system