Docker安装flink

导航

  • 无处不在的大数据
  • 安装flink
    • 拉取flink镜像
    • 编写docker-compose.yml
    • 生成启动
    • 查看安装效果
  • 常见坑及解决方案
    • 问题1
    • 问题2
  • 参考

  本节是《flink入门实战》的第4篇,感谢您的阅读,预计阅读时长3min。

“泰山不拒细壤,故能成其高,江海不择细流,故能就其深。”

flink作为第三代大数据处理方案,早已成为业内的共识,并且发展迅猛(即将发布的新特性可以查看《Flink1.14新特性抢鲜看~》),而打开这扇大门的第一步是搭建flink的环境,以便我们后续测试和项目实践。

无处不在的大数据

大数据早已不是什么新鲜事物,比如在国内一线互联网大厂早有应用。比如,我们熟知淘宝的双十一大屏数据,头条的个个性化推荐等应用。

但是,在很多二三线城市,中小型公司基本上没有处理大数据的能力。

自从提出大数据之后,软件行业产生了一些新兴的岗位,如算法工程师,大数据工程师。

大数据工程师可以从事对大量数据的采集、清洗、分析、治理、挖掘,并对这些数据加以利用、管理、维护和服务的相关技术工作。(百度百科)

大数据工程师更加偏向于算法和抽象数据的分析和处理。传统的软件工程师更加偏向于业务代码的实现。

物以稀为贵,大数据的工程师的价位不菲,几乎是传统工程师2~3倍。再加上大数据的门槛,比如要学习python,要学习很多数学公式,让很多传统软件工程师望而生畏。

笔者接触大数据也是基于一个工作上的契机。因为公司业务的需要,公司高层希望建立APP用户画像,并能有针对性的为顾客做一些智能化商品或者内容推荐。

因为部门研发人员基本上都是从事业务代码编写,对大数据这一套并没有实践经验。通过,一番学习打卡,再加上和阿里,亚马逊等技术大神多次交流,集合整个团队智慧,总算搭建了一套可以跑起来的推荐系统。

在这个过程中,其实涉及的语言和中间件很多,比如Java,python,embedding(特征抽取),tensorflow框架,离线和在线计算等。数据处理引擎涉及到Spark,flink等。

安装flink

Notes: 安装flink需要一些环境准备,前期准备可以参考相关文章《环境准备》《安装Docker》等文章,这里不再赘述。

(1) 拉取flink镜像

Note: 这里可以根据实际情况指定安装的版本

 docker pull flink:1.10.0-scala_2.12

(2) 编写docker-compose.yml

Note:flink使用8081等端口,要事先保证8081端口未被占用。

在opt下创建flink 目录

mkdir /opt/flink -p


编写docker-compose.yml,放在/opt/flink下面

Note: 会使用8081等端口,要事先保证8081端口未被占用。

version: "2.1"
services:
jobmanager:
image: ${FLINK_DOCKER_IMAGE_NAME:-flink}
expose:
- "6123"
ports:
- "8081:8081"
command: jobmanager
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager taskmanager:
image: ${FLINK_DOCKER_IMAGE_NAME:-flink}
expose:
- "6121"
- "6122"
depends_on:
- jobmanager
command: taskmanager
links:
- "jobmanager:jobmanager"
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager

(3) 生成启动

进入/opt/flink,依次执行以下命令

cd /opt/flink/
docker-compose build
docker-compose up -d --force-recreate
docker-compose down
docker-compose restart

(4) 查看安装效果

浏览器上查看页面dashboard

在浏览器输入地址:http://X.X.0.101:8081

Note: 以自己安装flink的IP地址来访问


大告成功。

常见坑及解决方案

尽管官方文档提供了标准安装文档,但是有时候在实际场景中,手气可能比较差,会遭遇各种坑。

这里将笔者在安装中遇到问题整理一下,希望给新手一些参考。

问题1

如果执行docker-compose 命令报错:

-bash: docker-compose: command not found

(1) 先检查pip是否已经安装:

pip -V 

如果出现提示

bash: pip: command not found

安装pip

yum -y install epel-release
yum -y install python-pip #升级
pip install --upgrade pi

安装Docker-Compose

pip install docker-compose

查看是否安装成功

docker-compose -version

返回版本号

docker-compose version 1.29.2, build unknown

问题2

如果出现如下

You are using pip version xxx; however, version xxx is available

这种字样,说明是pip版本过低,需要升级

可以尝试执行

python -m pip install --upgrade pip -i https://pypi.douban.com/simple

如果失败。有可能是因为本机安装的python版本过低。比如,本机可能是python2,实际上需要python3.

执行下面命令

python -V

Python 2.7.5

再次执行命令

python3 -V

Python 3.6.8

修改yum相关文件

vi /usr/bin/yum

修改首行

!/usr/bin/python 为 #!/usr/bin/python2


再次输入

python -V

Python 3.6.8

然后再次执行pip升级

python -m pip install --upgrade pip -i https://pypi.douban.com/simple

参考

Docker安装flink及避坑指南的更多相关文章

  1. Windows环境下Anaconda安装TensorFlow的避坑指南

    最近群里聊天时经常会提到DL的东西,也有群友在学习mxnet,但听说坑比较多.为了赶上潮流顺便避坑,我果断选择了TensorFlow,然而谁知一上来就掉坑里了…… 我根据网上的安装教程,默认安装了最新 ...

  2. MySQL 在 Windows 下安装教程、避坑指南

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,2008 年被 SUN 公司收购,后 SUN 公司又被 Oracle 公司收购. 一.下载 MySQL 官网 https:/ ...

  3. Linux下Python3.6的安装及避坑指南

    Python3的安装 1.安装依赖环境 Python3在安装的过程中可能会用到各种依赖库,所以在正式安装Python3之前,需要将这些依赖库先行安装好. yum -y install zlib-dev ...

  4. electron 编译 sqlite3避坑指南---尾部链接有已经编译成功的sqlite3

    electron 编译 sqlite3避坑指南(尾部链接有已经编译成功的sqlite3) sqlite很好用,不需要安装,使用electron开发桌面程序,sqlite自然是存储数据的不二之选,奈何编 ...

  5. Harmony OS 开发避坑指南——源码下载和编译

    Harmony OS 开发避坑指南--源码下载和编译 本文介绍了如何下载鸿蒙系统源码,如何一次性配置可以编译三个目标平台(Hi3516,Hi3518和Hi3861)的编译环境,以及如何将源码编译为三个 ...

  6. 今天 1024,为了不 996,Lombok 用起来以及避坑指南

    Lombok简介.使用.工作原理.优缺点 Lombok 项目是一个 Java 库,它会自动插入编辑器和构建工具中,Lombok 提供了一组有用的注解,用来消除 Java 类中的大量样板代码. 目录 L ...

  7. CEF避坑指南(一)——下载并编译第一个示例

    CEF即Chromium Embedded Framework,Chrome浏览器嵌入式框架.它提供了接口供程序员们把Chrome放到自己的程序中.许多大型公司,如网易.腾讯都开始使用CEF进行前端开 ...

  8. Canal v1.1.4版本避坑指南

    前提 在忍耐了很久之后,忍不住爆发了,在掘金发了条沸点(下班时发的): 这是一个令人悲伤的故事,这条情感爆发的沸点好像被屏蔽了,另外小水渠(Canal意为水道.管道)上线一段时间,不出坑的时候风平浪静 ...

  9. Hive改表结构的两个坑|避坑指南

    Hive在大数据中可能是数据工程师使用的最多的组件,常见的数据仓库一般都是基于Hive搭建的,在使用Hive时候,遇到了两个奇怪的现象,今天给大家聊一下,以后遇到此类问题知道如何避坑! 坑一:改变字段 ...

随机推荐

  1. dubbo学习实践(1)之管理控制台Dubbo-admin部署

    1.Docker拉取现有镜像,构建Dubbo-admin 拉取镜像,这里使用chenchuxin/dubbo-admin docker pull chenchuxin/dubbo-admin 注册中心 ...

  2. 在Linux系统上查找文件

    Find命令 格式:find <指定搜索范围> <指定条件> <指定动作> 其中搜索范围是一个目录名,指定条件包括文件名.文件属性(修改时间所属用户等).所在位置特 ...

  3. 用SamInside破解Windows登录密码

    用小马PE的USB-HDD+格式制作启动优盘: 笔记本启动时按ESC键,选择USB启动: 进入WinPE后,将%SystemRoot%/system32/config全部拷贝出来(WinXP这个文件夹 ...

  4. C++小知识——显示VS大括号/花括号折叠按钮

    这个功能默认是关闭的,打开路径如下: 将大纲语句块改为"True" 这个功能其实很有必要真不知道为啥默认要关闭这个功能. 站在巨人的肩膀上的思想,其实已经在互联网程序员之间深入人心 ...

  5. 终极蛇皮上帝视角之铁头娃之鲁迅之暑假闲的慌之bilibili看尚学堂网课的非洲酋长java小复习

    转自https://www.sxt.cn/Java_jQuery_in_action/eight-cache-problem.html 第一个点 自动装箱与拆箱的功能是所谓的"编译器蜜糖(C ...

  6. PHP变量覆盖漏洞整理

    昨天群里HW的大佬们都在传某某服终端检测响应平台edr存在大量RCE的洞 官网上关于EDR的介绍是这么写的 终端检测响应平台EDR,围绕终端资产安全生命周期,通过预防.防御.检测.响应赋予终端更为细致 ...

  7. SQL 练习31

    查询任何一门课程成绩在 70 分以上的姓名.课程名称和分数 SELECT Sname,cname,Course.CId,SC.score from Student,Course,sc WHERE St ...

  8. 题解 Strange Housing

    传送门 首先想了黑白染色,发现不会染 其实可以考虑如何动态地维护出这个点集 发现题面里对不在点集之中的点之间的连边没有要求 所以考虑不断向图中加点,为了满足要求,每次取一个与当前新图中相连的点 若它与 ...

  9. 简陋的Excel到MYSQL的数据传输JAVA实现

    实现从excel读取数据,使用的是jxl.jar(到处都有,请大家随意下载),其中封装好了通过excel提供的接口,对excel中的数据库进行读取的实现: 先为了熟悉其中的方法使用,做了以下的测试: ...

  10. JDBC中级篇(MYSQL)——在JDBC中如何获得表中的,自增长的字段值

    注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接: package c_increment; import java.sql.Connection; import java.sql.P ...