Zeppelin 0.9 版本升级之源码编译
Zeppelin 0.9 升级之源码编译
首先可以参考官方文档:
https://zeppelin.apache.org/docs/latest/setup/basics/how_to_build.html#run-end-to-end-tests
最开始,如果是打一个完整的包含所有模块的可运行的 tar 包,用 maven 命令:
mvn clean package -Pbuild-distr -DskipTests
之后,如果只需要单独对某个模块编译可以使用命令:
mvn clean package -DskipTests -pl zeppelin-server
由于 Zeppelin 项目模块众多,整个编译打包过程较为耗时,中途也出现了不少问题:
1.部分依赖源下载慢的问题
spark flink 的包比较大,几百兆,可以将官方 apache 地址清华的源:
- rlang/pom.xml
- 标签 spark.src.download.url 替换
https://mirrors.tuna.tsinghua.edu.cn/apache/spark/{spark.archive}.tgz - spark.bin.download.url 替换
https://mirrors.tuna.tsinghua.edu.cn/apache/spark/{spark.archive}-bin-without-hadoop.tgz
- spark/pom.xml
- 替换 spark.src.download.ur
https://mirrors.tuna.tsinghua.edu.cn/apache/spark/{spark.archive}.tgz - 替换 spark.bin.download.url
https://mirrors.tuna.tsinghua.edu.cn/apache/spark/{spark.archive}-bin-without-hadoop.tgz
- flink/pom.xml
- flink.bin.download.url
https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-{flink.version}-bin-scala_${scala.binary.version}.tgz
当然如果有必要也可以使用科学上网,配置git npm IDEA 等组件的代理,配置方式具体参考官网文档,例如 git :
git config --global http.proxy http://localhost:1080
git config --global https.proxy http://localhost:1080
git config --global url."http://".insteadOf git://
npm 代理配置:
npm config set proxy http://localhost:1080
npm config set https-proxy http://localhost:1080
npm config set registry "http://registry.npmjs.org/"
npm config set strict-ssl false
2. maven git-commit-id-plugin 这步很慢
将以下参数改为 true:
<plugin.gitcommitid.useNativeGit>true</plugin.gitcommitid.useNativeGit>
Zeppeline 默认值 false, 改为 true 使用系统的 git,而不是内置的 jGit,具体还不清楚 jGit 慢的原因,修改之后就不会在这一步卡了,实在不行也可以把这个 git-commit-id-plugin plugin 注释掉。
这个是 maven git 插件,可以将包的 git 信息打到指定目录
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>${plugin.git.commit.id.version}</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<configuration>
<skipPoms>false</skipPoms>
<dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
<useNativeGit>${plugin.gitcommitid.useNativeGit}</useNativeGit>
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
<failOnNoGitDirectory>false</failOnNoGitDirectory>
<dateFormat>yyyy-MM-dd HH:mm:ss</dateFormat>
</configuration>
</plugin>
3. zeppelin-web 编译
建议参考官方文档:https://github.com/apache/zeppelin/tree/master/zeppelin-web
Zeppelin 前端编译耗时也很长,编译中途出现了不少报错,例如:
报错 1:error Expected linebreaks to be 'LF' but found 'CRLF' linebreak-style
修复:在 .eslintrc 文件 rules 里面 配置 "linebreak-style": [0 ,"error", "windows"],
报错 2:error Expected indentation of 10 spaces but found 8 indent
修复:修改 .eslintrc.js 文件 rules 字段下增加 "indent": ["off", 2]