Flink 是一个以 Java 及 Scala 作为开发语言的开源大数据项目,代码开源在 GitHub 上,并使用 Maven 来编译和构建项目。
Java、Maven 和 Git 这三个工具是必不可少的,另外一个强大的 IDE 有助于我们更快的阅读代码、开发新功能以及修复 Bug。
环境:centos7.6,maven 3.6.1,flink1.10
创建新目录:
mkdir /opt/app/maven
cd /opt/app/maven
运行wget http://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
,下载maven安装文件
运行tar zvxf apache-maven-3.6.1-bin.tar.gz
,解压
Maven是绿色版,解压就行
编辑文件/opt/app/maven/apache-maven-3.6.1/conf/settings.xml
在mirrors(镜像)节点添加以下内容
<mirror>
<id>alimavenid>
<name>aliyun mavenname>
<url>http://maven.aliyun.com/nexus/content/groups/public/url>
<mirrorOf>centralmirrorOf>
mirror>
设置maven的local repository目录
开始配置环境变量,编辑文件/etc/profile
在最下面添加以下内容(MAVEN_HOME是刚才解压maven的路径)
export MAVEN_HOME=/opt/app/maven/apache-maven-3.6.1
export PATH=$MAVEN_HOME/bin:$PATH
运行source /etc/profile
,刷新环境变量
到此安装完成,运行mvn –v可以看到maven信息说明安装成功
yum安装 yum -y install git
输入 git --version查看Git是否安装完成以及查看其版本号
顺便说一下,yum安装git被安装在/usr/libexec/git-core目录下
至此,yum安装git完成。
yum安装这么简单,为什么还要学从github上下载最新的源码编译后安装呢?
刚才输入git --version命令的时候相信大家也看到了,是1.8.3.1版本,这个版本还是蛮旧的。
yum安装就是这个缺点,版本你不好控制。如果想要使用最新版的git,那还是得自己下载源码安装。
1、进入git在GitHub上发布版本页面https://github.com/git/git/releases,这个页面我们可以找到所有git已发布的版本。这里我们选择最新版的tar.gz包。
wget https://github.com/git/git/archive/v2.26.2.tar.gz
外网下载数据的确是很慢
可以用https://d.serctl.com/?dl_start
这个网站下载
解压tar -zxvf v2.26.2.tar.gz
进入到解压后的文件夹cd git-2.26.2
拿到解压后的源码以后我们需要编译源码了,不过在此之前需要安装编译所需要的依赖。
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
耐心等待安装完成,中途出现提示的时候输入y并按回车
提示,安装编译源码所需依赖的时候,yum自动帮你安装了git,这时候你需要先卸载这个旧版的gityum -y remove git
编译git源码
make prefix=/usr/local/git all
安装git至/usr/local/git路径
make prefix=/usr/local/git install
配置环境变量
vi /etc/profile
在底部加上
export PATH=$PATH:/usr/local/git/bin
( 输入 :wq! 保存修改)
刷新环境变量source /etc/profile
查看Git是否安装完成
git --version
开源的DTStack 提供了在不改变Flink源码的基础上的steamSQL1.10.1版本。
工具 | 注释 |
---|---|
Java | Java 版本至少是Java 8,且最好选用 Java 8u51 及以上版本 |
Maven | 必须使用 Maven 3,建议使用 Maven 3.2.5。Maven 3.3.x 能够编译成功,但是在 Shade 一些 Dependencies 的过程中有些问题 |
Git | Flink 的代码仓库是: https://github.com/apache/flink\ 这里我们用的是开源的DTStack 提供的flinkStreamsql 1.10。1版本](https://github.com/DTStack/flinkStreamSQL/archive/r1.10.1.tar.gz) |
创建flink目录:mkdir /opt/app/flink
跳转到cd /opt/app/flink
获取源码
使用git安装:git clone https://github.com/DTStack/flinkStreamSQL.git
进行编译
cd flinkStreamSQL
默认会在该工程目录下生产.git 目录。
选择对应Hadoop 版本编译
mvn clean package -DskipTests -Dhadoop.version=2.7.2
不编译test javaDoc QA plugins 编译会快些 mvn clean package -DskipTests -Dhadoop.version=2.7.2 -Dfast
常用编译参数:
-Dfast 主要是忽略QA plugins和JavaDocs的编译
-Dhadoop.version=2.7.2 指定hadoop版本
--settings=${maven_file_path} 显式指定maven settings.xml配置文件
编译flinkStreamSQL遇到的问题:
[WARNING] The POM for com.aiweiergou:tools-logger:jar:1.0.0-SNAPSHOT is missing, no dependency information available
缺少一个日志包:tools-logger-1.0.0-SNAPSHOT.jar
点击下载:
https://download.csdn.net/download/weixin_42993799/12368337
并上传到maven的本地repo目录中并付777权限
chmod 777 ./tools-logger-1.0.0-SNAPSHOT.jar
在./local/repo目录下执行install操作,将依赖加到maven的pom.xml文件中
mvn install:install-file -Dfile=tools-logger-1.0.0-SNAPSHOT.jar -DgroupId=com.aiweiergou -DartifactId=tools-logger -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar
安装成功
[ERROR] Failed to execute goal on project sql.sink.elasticsearch5: Could not resolve dependencies for project com.dtstack.flink:sql.sink.elasticsearch5:jar:1.0-SNAPSHOT: Could not find artifact org.elasticsearch.client:x-pack-transport:jar:5.3.3 in central (https://repo.maven.apache.org/maven2) -> [Help 1]
安装impala 驱动:
mvn install:install-file -Dfile=ImpalaJDBC41-2.6.3.jar -DgroupId=com.cloudera -DartifactId=ImpalaJDBC41 -Dversion=2.6.3 -Dpackaging=jar
Maven 仓库镜像
`
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
`