• 【Flink笔记】01.Flink笔记-编译、部署


    Flink开发环境部署配置

    Flink是一个以Java及Scala作为开发语言的开源大数据项目,代码开源在github上,并使用maven来编译和构建项目。所需工具:Java、maven、Git。

    本次操作是在windows环境下。

    一、工具安装

    Java配置(略)

    maven配置

    1. 下载安装
    2. 配置环境变量
    3. 修改settings.xml设置

    更改本地仓库目录,默认是C:用户.m2Respository,为了避免C盘空间不够,更改到其他盘目录

    <localRepository>D:Respository</localRepository>

    更改镜像仓库

    <mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*,!jeecg,!jeecg-snapshots,!mapr-releases</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
    <mirror>
    <id>mapr-public</id>
    <mirrorOf>mapr-releases</mirrorOf>
    <name>mapr-releases</name>
    <url>https://maven.aliyun.com/repository/mapr-public</url>
    </mirror>

    说明:第一个mirror使用的是aliyun提供的maven镜像仓库,能够为国内用户加速maven repository的访问

    第二个最重要。由于flink中的flink-filesystems/flink-mapr-fs模块依赖mapr-releases repository提供的jar包,然而由于国内访问mapr-releases repository比较慢,而且所依赖的maprfs-5.2.1-mapr.jar 这个jar包有48MB,flink依赖中最大的一个jar包,故初次编译flink时,往往会由于下载mapr相关依赖超时导致编译失败。因此,aliyun专门有一个镜像仓库代理mapr-releases repository,以期望能让用户更容易地下载mapr相关的jar包。

    aliyun提供的镜像仓库的meta信息:https://maven.aliyun.com/mvn/view

    git(安装略)

     

    二、下载Flink代码

     完成以上安装配置后,我们就可以从github上下载Flink代码了。github上flink的代码仓库是https://github.com/apache/flink

     (可选)国内的用户,下载github 上的代码可能比较慢,可以在hosts 中增加如下配置,可以显著提升github的下载速度:

    151.101.72.133 assets-cdn.github.com
    151.101.73.194 github.global.ssl.fastly.net
    192.30.253.113 github.com
    11.238.159.92 git.node5.mirror.et2sqa

    windows的hosts目录:C:WindowsSystem32driversetchosts

    linux/mac则为:/etc/hosts

    克隆flink原码到本地

    打开一个空文件夹,右击

    打开git bash,执行

    git clone https://github.com/apache/flink.git

    (可选)代码下载完后,默认是在master分支,一般选择合适的发布分支使用。

    git checkout release-1.7
    git checkout blink

    三、编译flink代码

    # 删除已有的build,编译flink binary
    # 接着把flink binary安装在maven的local repository(默认是~/.m2/repository)中
    mvn clean install -DskipTests
    # 另一种编译命令,相对于上面这个命令,主要的确保是:
    # 不编译tests、QA plugins和JavaDocs,因此编译要更快一些
    mvn clean install -DskipTests -Dfast

    另外,在一些情况下,我们可能并不想把编译后的flink binary安装在maven的local repository
    下,我们可以使用下面的命令:

    # 删除已有的build,编译flink binary
    mvn clean package -DskipTests
    # 另一种编译命令,相对于上面这个命令,主要的确保是:
    # 不编译tests、QA plugins和JavaDocs,因此编译要更快一些

    mvn clean package -DskipTests -Dfast

     

     如果你需要使用指定hadoop的版本,可以通过指定“-Dhadoop.version”来设置,编译命令如下:

    mvn clean install -DskipTests -Dhadoop.version=2.6.1
    # 或者
    mvn clean package -DskipTests -Dhadoop.version=2.6.1

    这次使用的编译命令为

    mvn clean package -DskipTests -Dfast

    成功截图

    当成功编译完成后,上述几种编译方式最终都能在当前flink的code path下编译出完整的flink binary,可以在flink-dist/target/目录中看到

    其中有三个文件可以留意一下(在之后的章节中,继续学习flink binary的用法):

    • flink binary目录,此处是flink-dist argetflink-1.7-SNAPSHOT-binflink-1.7-SNAPSHOT
    • flink binary目录的压缩包,此处没有压缩
    • 包含flink核心功能的jar包,此处是flink-dist/target/flink-dist_2.11-1.7-SNAPSHOT.jar

    遇到的问题

    问题1、编译失败,不能下载kafka-schema-registry-client-3.3.1.jar

     

    解决:

    手动下载kafka-schema-registry-client-3.3.1.jar包,下载地址如下:

    http://packages.confluent.io/maven/io/confluent/kafka-schema-registry-client/3.3.1/kafka-schema-registry-client-3.3.1.jar

    手动安装缺少的kafka-schema-registry-client-3.3.1.jar包 

    mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-schema-registry-client -Dversion=3.3.1 -Dpackaging=jar  -Dfile=E:igdata_flinkpackageskafka-schema-registry-client-3.3.1.jar

    问题2:flink-parent依赖包报错

    解决:

    删除本地仓库下已经下载的orgapacheflink 目录,关闭git bash重新打开窗口编译。

    问题3:Failed to execute goal org. apache. maven. plugins :maven-surefire-plugin:2.18.1:test

     解决:

     这个是单元测试的插件,编译不需要它,在pom文件中注释掉这个插件: maven-surefire-plugin

     

     

    参考

    https://blog.csdn.net/hxcaifly/article/details/86307213

    https://www.cnblogs.com/dajiangtai/p/10725249.html

     

  • 相关阅读:
    学习笔记81—matlab通过界面按钮查看回调函数
    学习笔记80—火狐设置
    学习笔记79—几个典型的距离
    学习笔记78—三大统计相关系数:Pearson、Spearman秩相关系数、kendall等级相关系数
    Xcode7修改模块生成网络权限(ATS配置)
    关于解决“No matching provisioning profiles found”问题-ios
    There was a problem parsing the package(android)
    SDK does not contain any platforms. error (android)
    Objective-C中的instancetype与id的区别
    iOS动画编程
  • 原文地址:https://www.cnblogs.com/qinglanmei/p/10943503.html
Copyright © 2020-2023  润新知