阿里巴巴在2019年1月27日左右开源了Blink,Blink目前的版本是基于Flink1.5.1修改的,然后增加了一些比较好的特性。github地址为:https://github.com/apache/flink/tree/blink

1.Blink的编译

下面记录一下编译和使用的过程:

1.使用mvn clean package打包,遇到报错:

BlobServerPutTest.testPutBufferFailsIncomingForJobHa 
Expected: (an instance of java.io.IOException and exception with message a string containing " (Permission denied)")
     but: exception with message a string containing " (Permission denied)" message was "/tmp/junit7676625048359236107/junit6945675010342658265/blobStore-9db30c78-585e-45aa-9e55-78b255a14b8f/incoming/temp-00000001 (权限不够)"

全局搜索一下,可以看到BlobServerPutTest是位于flink-runtime_2.11中的。

从代码来看,应该测试的预期结果就是permission denied:

而test之所以会失败是因为一个中文环境,即预期是“Permission denied”而其实报错出的结果是中文的“权限不够”,导致test失败。

所以,我们用mvn clean package -Dmaven.test.skip=true -Dhadoop.version=2.7.2 忽略测试项进行打包即可。

2.[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.6:install-node-and-npm (install node and npm) on project flink-runtime-web_2.11: The plugin com.github.eirslett:frontend-maven-plugin:1.6 requires Maven version 3.1.0 -> [Help 1]

需要用maven 3.1.0打包

这是我的一个编译好的版本(基于hadoop2.7.2):flink-blink-bin.tar.gz

blink与flink1.7使用有出入之处:

1.taskmanager memory 不支持5g这样的写法,单位为m,故5g只能写成5120

2.报错:
java.lang.NoSuchMethodError: org.apache.flink.table.api.java.StreamTableEnvironment.registerFunction(Ljava/lang/String;Lorg/apache/flink/table/functions/ScalarFunction;)V

需要将blink中打包好的flink-table_2.11-1.5.1.jar部署到私有仓库,或者安装到本地仓库。

其中部署到私有仓库的写法为:

mvn deploy:deploy-file -DgroupId=com.alibaba.blink -DartifactId=flink-table_2.11 -Dversion=1.5.1 -Dpackaging=jar -Dfile=路径\flink-table_2.11-1.5.1.jar -Durl=http://私有仓库ip/nexus/content/repositories/releases/ -DrepositoryId=releases

然后将pom依赖改为:

com.alibaba.blinkflink-table_2.111.5.1

修改完依赖之后就可以发现项目的registerFunction在报错,原因是blink里将ScalarFunction,AggregateFunction等移动到了api包下。根据IDEA的报错重新修改一下import即可。

例如,把

import org.apache.flink.table.functions.AggregateFunction;

修改为:

import org.apache.flink.table.api.functions.AggregateFunction;

其余依赖的修改方式与之类似。

启动之后的监控界面,已经与原版的flink有了很大区别:

2.Blink帮助文档生成

1.安装ruby,注意需要在非root用户下操作

ruby2.4下载:https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.5.tar.gz

./configure --prefix=/home/xxxuser/ruby2.4

make

make install

2.安装完成后,运行ruby -v可以看到还是旧版本的ruby,此时需要建立软链

mv /usr/bin/ruby /usr/bin/ruby.bak

sudo ln -s /home/xxxuser/ruby2.4/bin/ruby /usr/bin/ruby

这时就可以看到ruby -v的版本已经变为了2.4

3.运行

gem install bundler

cd flinkpath/docs/

bundler install

注意,需要把gem的源和bundler的源都改成国内的,要不然会出现卡死的现象:

gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/ --remove https://rubygems.org/

bundle config mirror.https://rubygems.org https://mirrors.tuna.tsinghua.edu.cn/rubygems

4.安装完毕后,运行flinkpath/docs下的./build_doc.sh

链接是我生成的一份blink帮助文档:blink帮助文档。在本站点可以在线访问的链接为:blink帮助文档

使用方法:

0.解压缩

1.将文件里10.67.1.174:8080全局替换成你的tomcat的ip和端口

2.将文件夹放到tomcat的webapp目录下,即可以访问

其中一个页面:

Blink编译及使用相关推荐

  1. Blink 源码编译

    参考:http://fetching118.com/article/5.html 帮助文档:http://fetching118.com/blink_doc/quickstart/scala_shel ...

  2. 阿里巴巴开源的 Blink 实时计算框架真香

    Blink 开源了有一段时间了,竟然没发现有人写相关的博客,其实我已经在我的知识星球里开始写了,今天来看看 Blink 为什么香? 我们先看看 Blink 黑色版本: 对比下 Flink 版本你就知道 ...

  3. android 编译 oserror,Android-4.4.2 编译出错 OSError: [Errno 2] No such file or directory

    在Ubuntu14.04下编译sama5d44 Android-4.4.2 版本时出错: File "scripts/make_css_property_names.py", li ...

  4. 在Developerkit开发板上运行blink例程

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 本文将介绍怎么样在VScode环境下,将AliOS Tings提供的blink例程在Developerkit开发板上运 ...

  5. 从源码编译Chrome(chromium)

    转自:http://www.udpwork.com/item/13827.html 官网描述 http://www.chromium.org/developers/how-tos/build-inst ...

  6. 使用Blink SQL+UDAF实现差值聚合计算

    本案例根据某电网公司的真实业务需求,通过Blink SQL+UDAF实现实时流上的差值聚合计算,通过本案例,让读者熟悉UDAF编写,并理解UDAF中的方法调用关系和顺序. 感谢@军长在实现过程中的指导 ...

  7. 揭秘 Flink 1.9 新架构,Blink Planner 你会用了吗?

    本文为 Apache Flink 新版本重大功能特性解读之 Flink SQL 系列文章的开篇,Flink SQL 系列文章由其核心贡献者们分享,涵盖基础知识.实践.调优.内部实现等各个方面,带你由浅 ...

  8. 基于Blink构建亲听项目以及全链路debug项目实时响应能力

    案例与解决方案汇总页: 阿里云实时计算产品案例&解决方案汇总 本文全面总结了大数据项目组在亲听项目以及全链路debug项目上进行的实时流处理需求梳理,架构选型,以及达成效果 一.背景介绍 1. ...

  9. 基于Blink构建亲听项目以及全链路debug项目实时响应能力 1

    案例与解决方案汇总页: 阿里云实时计算产品案例&解决方案汇总 本文全面总结了大数据项目组在亲听项目以及全链路debug项目上进行的实时流处理需求梳理,架构选型,以及达成效果 一.背景介绍 1. ...

最新文章

  1. 摄像头ISP系统原理(上)
  2. 手动配置 ESXi 主机挂载 NFS 的最大值
  3. HTTP/3 未来可期?
  4. 【excrt】屠龙勇士(luogu 4774)
  5. Linux 把文件内容发送给用户,linux上给其他在线用户发送信息(wall, write, talk, mesg)...
  6. css选择器的应用的实验,HTMLCSS实验(3)---掌握CSS选择器的使用方法
  7. # android开发:4-1、Activity启动方式、生命周期、不同activity的数据传递
  8. linux编译内核的步骤
  9. python排序问题_Python简单处理坐标排序问题示例
  10. 服务器电源输出电压稳定,服务器电源选购指南
  11. editplus查找文件中的字符串
  12. 最新mysql数据库源码编译安装。
  13. cydia红字解决方法(cydia安装软件时出现红字怎么解决)
  14. 实验四 使用CANVAS API画图
  15. vista激活失败,无限重启
  16. Flutter 开源社交电商项目Flutter_Mycommunity_App
  17. 雅典娜暴利烹饪系列(下)
  18. AD(altium designer)15原理图与PCB设计教程(十)——信号完整性分析
  19. 几何分布期望与方差推导
  20. 【网络模拟】网络环境模拟搭建

热门文章

  1. 【tgowt】cmake转ninja vs构建
  2. 京东云重磅发布 JDStack 5.0 , 打造行业最轻量专有云
  3. STM32 脉宽调制 (PWM):控制直流风扇的速度
  4. 扫码点餐小程序源码 多商户外卖点餐自助扫码预约源码
  5. php eclipse 断点调试,在Eclipse中使用XDebug调试代码 | Using XDebug debug code in eclipse
  6. U盟windows phone统计分析SDK使用文档
  7. ROS新手教程【一】ROS开源机器人操作系统简介
  8. Compute Express Link CXL 3.0 是令人兴奋的分解构建块
  9. [linux]:对于linux新手常用的20个命令
  10. ECL/PECL/LVPECL电平学习笔记