pyflink的安装和测试
pyflink安装
安装前提:python3.6-3.8
参考:Installation | Apache Flink
Python version (3.6, 3.7 or 3.8) is required for PyFlink. Please run the following command to make sure that it meets the requirements:
$ python --version
# the version printed here must be 3.6, 3.7 or 3.8
这里你可以安装python3或者Anaconda3,最后通过python -V命令查看版本信息
两种安装方式:
本次安装基于flink1.13.2版本
- 如果你有网络:可以直接通过命令安装
python -m pip install apache-flink==1.13.2
- 源码编译方式
In addition you need Maven 3 and a JDK (Java Development Kit). Flink requires at least Java 8 to build.
maven选择3.2.5版本,java选择高一点的java8版本
参考:Building Flink from Source | Apache Flink
下载源码:(这里我从其他网址下载的1.13.2的源码)
git clone https://github.com/apache/flink.git
编译:编译的过程中可能会报错,具体解决就好
mvn clean install -DskipTests
#To speed up the build you can skip tests, QA plugins, and JavaDocs:
或者:mvn clean install -DskipTests -Dfast
编译完成后开始处理pyflink的事情
安装gcc【可选】
yum install -y gcc gcc-c++
安装依赖(flink-python目录在flink编译目录下面)
python -m pip install -r flink-python/dev/dev-requirements.txt
然后转到 flink 源代码的根目录并运行此命令来构建 和 的 sdist 包和 wheel 包:apache-flink,apache-flink-libraries的 sdist 包可以在 下找到。它可以按如下方式安装:apache-flink-libraries``./flink-python/apache-flink-libraries/dist/
cd flink-python; python setup.py sdist bdist_wheel; cd apache-flink-libraries; python setup.py sdist; cd ..;
如果是公司内网,这里需要配置pip源,安装的时候有依赖,因为我编译的时候使用的是虚拟机,可以上网的
python -m pip install apache-flink-libraries/dist/*.tar.gz
python -m pip install dist/*.tar.gz
通过pip list | grep flink命令查看安装效果

测试
Local-SingleJVM 模式部署
该模式多用于开发测试阶段,简单的利用 Python pyflink_job.py 命令,PyFlink 就会默认启动一个 Local-SingleJVM 的 Flink 环境来执行作业,如下:
写一个脚本:wordcount.py
from pyflink.table import DataTypes, TableEnvironment, EnvironmentSettings
from pyflink.table.descriptors import Schema, OldCsv, FileSystem
from pyflink.table.expressions import lit
settings = EnvironmentSettings.new_instance().in_batch_mode().use_blink_planner().build()
t_env = TableEnvironment.create(settings)
# write all the data to one file
t_env.get_config().get_configuration().set_string("parallelism.default", "1")
t_env.connect(FileSystem().path('/tmp/input')) \
.with_format(OldCsv().field('word', DataTypes.STRING())) \
.with_schema(Schema().field('word', DataTypes.STRING())) \
.create_temporary_table('mySource')
t_env.connect(FileSystem().path('/tmp/output')) \
.with_format(OldCsv().field_delimiter('\t') \
.field('word', DataTypes.STRING()) \
.field('count', DataTypes.BIGINT())) \
.with_schema(Schema() \
.field('word', DataTypes.STRING()) \
.field('count', DataTypes.BIGINT())) \
.create_temporary_table('mySink')
tab = t_env.from_path('mySource')
tab.group_by(tab.word).select(tab.word, lit(1).count).execute_insert('mySink').wait()
在shell 命令行执行:
echo -e "flink\npyflink\nflink" > /tmp/input
python wordcount.py
cat /tmp/output

Local-SingleNode 模式部署
这种模式一般用在单机环境中进行部署,如 IoT 设备中,我们从 0 开始进行该模式的部署操作。我们进入到 flink/build-target 目录,执行如下命令:
cd /root/flink-1.13.2/build-target/bin/
./start-cluster.sh

登陆http://ip:8081查看

提交作业:
/root/flink-1.13.2/build-target/bin/flink run -m localhost:8081 -py /root/wordcount.py


pyflink的安装和测试的更多相关文章
- my SQL下载安装,环境配置,以及密码忘记的解决,以及navicat for mysql下载,安装,测试连接
一.下载 在百度上搜索"mysql-5.6.24-winx64下载" 二.安装 选择安装路径,我的路径“C:\Soft\mysql-5.6.24-winx64” 三.环境配置 计算 ...
- OpenCV2+入门系列(一):OpenCV2.4.9的安装与测试
这里假设看到这篇文章的人都已经对OpenCV以及机器视觉等最基础的概念有了一定的认识,因此本文不会对OpenCV做任何的介绍,而是直接介绍OpenCV2.4.9的安装与测试.此外本文只是简单的介绍如何 ...
- 决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试
决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试 [TOC] Apache ZooKeeper 单机模式安装 创建hadoop用户&赋予sudo权限, ...
- coreseek实战(一):windows下coreseek的安装与测试
coreseek实战(一):windows下coreseek的安装与测试 网上关于 coreseek 在 windows 下安装与使用的教程有很多,官方也有详细的教程,这里我也只是按着官方提供的教程详 ...
- Window下memcached安装与测试步骤
如何在Window下memcached安装与测试步骤 工具/原料 电脑 memcached 软件 方法/步骤 软件包下载 下载Memercached For Windows:http://downlo ...
- 【MySql】5.6.14版本的安装和测试
当前状态:apache2.4.6和php5.5.6已经安装成功: mysql的安装和测试: 一.安装mysql5.6.14,参考http://wenku.baidu.com/link?url=_0jk ...
- jdbc_odbc SQLserver 驱动安装及测试
有2次被问到同一个问题,尽管博客园是.net的园子,我还是分享下吧.PS:我现在做的.net,以前学过点java.献丑了. ------------------ 原始邮件 -------------- ...
- mosquitto在Linux环境下的部署/安装/使用/测试
mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. ...
- http_load安装与测试参数分析 - 追求自由自在的编程 - ITeye技术网站
http_load安装与测试参数分析 - 追求自由自在的编程 - ITeye技术网站 http_load -p 50 -s 120 urls
随机推荐
- jmeter元件分析
jmeter元件分析 一.脚本通用性 1.性能测试脚本改动一下,加入断言等元件,就可以作为接口测试脚本来使用 2.但是接口测试的脚本不可以作为性能测试脚本来使用 3.原因:因为性能测试考虑更多的性能, ...
- Linux编译安装-软件
编译源码的项目工具 C.C++的源码编译:使用make项目管理器 configure脚本 --> Makefile.in --> Makefile 相关开发工具: autoconf: 生成 ...
- vue - Vue组件化编程
今天是对vue组件化的一个理解,最主要的单文件组件,然后就可以脚手架的学习了,本来昨晚就该上传的,但是用的那个上传博客园的Python脚本不行了,换了一个新的. 组件化让我越来越感觉到框架的力量了 一 ...
- Linux 常见必备
一.学习Linux须知常识 1.Linux 是什么? Linux 是一个操作系统. 我们的 Linux 主要是系统调用和内核那两层. 当然直观地看,我们使用的操作系统还包含一些在其上运行的应用程序,比 ...
- CVE-2021-35042
CVE-2021-35042 漏洞介绍 Django 是 Python 语言驱动的一个开源模型-视图-控制器(MVC)风格的 Web 应用程序框架. 漏洞影响版本:django 3.1.3.2 202 ...
- DOM0级同DOM2级
DOM0级分为两个:一是写在标签内的onclick事件: <button id="btn" onclick="alert('happy')">按钮& ...
- GDB调试小白教程
1.GDB是什么? 想必很多人都用过windows下各种编译器软件的调试功能,例如Visio Studio里面"断点"."开始调试"."逐语句&quo ...
- 基于 range 的 for 循环和 auto
基于 range 的 for 循环和 auto C++11 引入一种循环的新形式,叫基于 range 的 for 循环,它允许我们用更简单易读的形式遍历容器中的所有元素 vector<int&g ...
- 被迫开始学习Typescript —— interface
一开始以为,需要使用 class 来定义呢,学习之后才发现,一般都是使用 interface 来定义的. 这个嘛,倒是挺适合 js 环境的. 参考:https://typescript.bootcss ...
- 关于扑克牌的一些讨论——《Fluent Python 2》读书笔记
一.说明 参考资料为维基百科的 Playing Card 词条,非严肃性论证,只是对代码为什么这么写做讨论. 二.扑克牌的起源 import collections Card = collection ...