专业的编程技术博客社区

网站首页 > 博客文章 正文

单机也能玩大数据,初探实时计算神器Flink及踩坑经历

baijin 2024-10-23 08:39:20 博客文章 7 ℃ 0 评论
大数据作为互联网领域的高配置代名词,让人感觉高不可攀。好像一触及,就需要好几十台机器,但实际上作为一个动手科目,在普通机器,甚至笔记本上都可以单机实践,学习其中精髓。本文从flink安装入手,到最后实践,踩坑,希望让大数据也平民化。

什么是flink?

Flink作为在大数据生态里实时处理的一个新框架,得到了阿里的大力支持,迅猛发展,阿里不仅投入大量人力和资金支持。还甚至购并了原来开发团队,并发展了自己的一个分支blink。

动手步骤

现在就谈谈在mac本上安装和运行的简单步骤,和flink遇到的一些坑和解决方法。

1. 在mac主机上安装intej idea,强烈推荐。

2. 用brew install apache-flink安装flink。

3. 安装后,启动flink ,

/usr/local/Cellar/apache-flink/1.8.1/libexec/libexec/start-cluster.sh

4. 在本地打开浏览器,输入127.0.0.1:8081就可以访问flink服务器界面,

5. 编译运行WordCount

6. 编译jar,提交到flink服务器运行。

当然,这只是很简单的说明,可以让你很快建立起对flink的一个运行周期概念。下面介绍要踩的几个坑。基本上知道了,就可以顺利在本地运行了。

踩坑及解决方案

1. 安装的坑mac本机安装

brew install apache-flink

mac本上的brew以慢著称。开始从国外apache站点上下载

flink-1.8.1-bin-scala_2.11.tgz,

大约2小时了,还才8%,开国外代理也不行。

find ../ -name "flink-1.8.1-bin-scala_2.11.tgz" –print

从清华的apache镜像站下到这个文件,然后复制到brew的临时安装目录

我本机是:

cp flink-1.8.1-bin-scala_2.11.tgz /Users/xxx /Library/Caches/Homebrew/downloads/981b3b6c4ff953dbd2db858294a1469485b0161160776c89bf57540ab1cad86a--flink-1.8.1-bin-scala_2.11.tgz

这样,就很快装上了flink。

2. 程序执行的坑

执行,出现错误:

bjc[26699]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/ (0x10a20b4c0) and /Library/Java/JavaVirtualMachines/ (0x10a28f4e0). One of the two will be used. Which one is undefined.
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/api/common/functions/FlatMapFunction
at java.lang.Class.getDeclaredMethods0(Native Method)

原因,是在ide里执行java的程序,需要对应的flink 支持,需要把pom.xml里的

<scope>provided</scope>去掉。

但要发布到服务器后,需要恢复本配置,这样能防止发布到服务器的jar包过大。当然,服务器的环境里要加上flink的jar包支持。

3. flink系统提交运行的坑

提交到flink的服务器运行后,出现如下错误:

We're sorry, something went wrong. The server responded with:

问题很简单,你猜猜是啥?

提示原因是jar包里没有执行的class,刚开始百思不得其解,甚至把打包的jar包也打开看过了,也都有的。

忽然,发现一个低级错误,原来需要输入全路径的class。

com.panda.WordCount

搞定。

结束语:

谢谢大家的阅读。作为一个具有10多年互联网,大数据的技术开发者。近十年工作,主要在从事大数据架构工作,涉及人工智能开发。有兴趣的同学可以关注v信公众号:python_dada来关注我的知识输出。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表