Blink编译及使用
阿里巴巴在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编译及使用相关推荐
- Blink 源码编译
参考:http://fetching118.com/article/5.html 帮助文档:http://fetching118.com/blink_doc/quickstart/scala_shel ...
- 阿里巴巴开源的 Blink 实时计算框架真香
Blink 开源了有一段时间了,竟然没发现有人写相关的博客,其实我已经在我的知识星球里开始写了,今天来看看 Blink 为什么香? 我们先看看 Blink 黑色版本: 对比下 Flink 版本你就知道 ...
- 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 ...
- 在Developerkit开发板上运行blink例程
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 本文将介绍怎么样在VScode环境下,将AliOS Tings提供的blink例程在Developerkit开发板上运 ...
- 从源码编译Chrome(chromium)
转自:http://www.udpwork.com/item/13827.html 官网描述 http://www.chromium.org/developers/how-tos/build-inst ...
- 使用Blink SQL+UDAF实现差值聚合计算
本案例根据某电网公司的真实业务需求,通过Blink SQL+UDAF实现实时流上的差值聚合计算,通过本案例,让读者熟悉UDAF编写,并理解UDAF中的方法调用关系和顺序. 感谢@军长在实现过程中的指导 ...
- 揭秘 Flink 1.9 新架构,Blink Planner 你会用了吗?
本文为 Apache Flink 新版本重大功能特性解读之 Flink SQL 系列文章的开篇,Flink SQL 系列文章由其核心贡献者们分享,涵盖基础知识.实践.调优.内部实现等各个方面,带你由浅 ...
- 基于Blink构建亲听项目以及全链路debug项目实时响应能力
案例与解决方案汇总页: 阿里云实时计算产品案例&解决方案汇总 本文全面总结了大数据项目组在亲听项目以及全链路debug项目上进行的实时流处理需求梳理,架构选型,以及达成效果 一.背景介绍 1. ...
- 基于Blink构建亲听项目以及全链路debug项目实时响应能力 1
案例与解决方案汇总页: 阿里云实时计算产品案例&解决方案汇总 本文全面总结了大数据项目组在亲听项目以及全链路debug项目上进行的实时流处理需求梳理,架构选型,以及达成效果 一.背景介绍 1. ...
最新文章
- 摄像头ISP系统原理(上)
- 手动配置 ESXi 主机挂载 NFS 的最大值
- HTTP/3 未来可期?
- 【excrt】屠龙勇士(luogu 4774)
- Linux 把文件内容发送给用户,linux上给其他在线用户发送信息(wall, write, talk, mesg)...
- css选择器的应用的实验,HTMLCSS实验(3)---掌握CSS选择器的使用方法
- # android开发:4-1、Activity启动方式、生命周期、不同activity的数据传递
- linux编译内核的步骤
- python排序问题_Python简单处理坐标排序问题示例
- 服务器电源输出电压稳定,服务器电源选购指南
- editplus查找文件中的字符串
- 最新mysql数据库源码编译安装。
- cydia红字解决方法(cydia安装软件时出现红字怎么解决)
- 实验四 使用CANVAS API画图
- vista激活失败,无限重启
- Flutter 开源社交电商项目Flutter_Mycommunity_App
- 雅典娜暴利烹饪系列(下)
- AD(altium designer)15原理图与PCB设计教程(十)——信号完整性分析
- 几何分布期望与方差推导
- 【网络模拟】网络环境模拟搭建
热门文章
- 【tgowt】cmake转ninja vs构建
- 京东云重磅发布 JDStack 5.0 , 打造行业最轻量专有云
- STM32 脉宽调制 (PWM):控制直流风扇的速度
- 扫码点餐小程序源码 多商户外卖点餐自助扫码预约源码
- php eclipse 断点调试,在Eclipse中使用XDebug调试代码 | Using XDebug debug code in eclipse
- U盟windows phone统计分析SDK使用文档
- ROS新手教程【一】ROS开源机器人操作系统简介
- Compute Express Link CXL 3.0 是令人兴奋的分解构建块
- [linux]:对于linux新手常用的20个命令
- ECL/PECL/LVPECL电平学习笔记