Docker安装flink及避坑指南

摘要:
Docker安装Flink导航无处不在的大数据安装Flink拉动Flink映像来编写Docker-compose.yml生成启动检查安装效果常见陷阱和解决方案1问题2参考本节是Flink简介练习的第四章。(百度百科)大数据工程师更喜欢分析和处理算法和抽象数据,传统软件工程师更喜欢实现业务代码。初步准备请参考《环境准备》、《Docker安装》等相关文章

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安装flink及避坑指南第1张

编写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

Docker安装flink及避坑指南第2张

(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地址来访问


Docker安装flink及避坑指南第3张

大告成功。

常见坑及解决方案

尽管官方文档提供了标准安装文档,但是有时候在实际场景中,手气可能比较差,会遭遇各种坑。
这里将笔者在安装中遇到问题整理一下,希望给新手一些参考。

问题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

Docker安装flink及避坑指南第4张

再次输入

python -V

Python 3.6.8

然后再次执行pip升级

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

参考

免责声明:文章转载自《Docker安装flink及避坑指南》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue中使用v-chart改变柱状图颜色以及X轴Y轴的文字颜色和大小以及标题CyberPlayer 使用教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

无法为数据库中的对象分配空间,因为'PRIMARY'文件组已满

用SQL Server2012,做数据保存时出错,错误信息:无法为数据库'***'中的对象'***'分配空间,因为'PRIMARY'文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘空间。 解决办法:打开SQL Server Management Studio,右键报错的数据库,选...

Pytorch:transforms二十二种数据预处理方法及自定义transforms方法

数据增强 transforms是pytorch中用于数据增强的模块,首先再简单描述下数据增强的概念: 数据增强又称为数据增广,数据扩增,它是对训练集进行变换,使训练集更丰富,从而让模型根据泛化能力 举个非常生动形象的例子,五年高考三年模拟相信大家都知道,其实这就是一个学习模型,其中的三年模拟试题就是数据增强 具体的各类方法 裁剪 crop transfo...

项目版本与分支管理之阿里AoneFlow模式分析

前言 在我前期的项目管理的经验中,一个项目需要维护多个产品及多个版本,这给版本与分支的管理增加了难度。前期没有重视,使得分支太多太乱,版本也没记录好,引发了很多的问题。在多种分支与版本的管理模式下,最终参考阿里的AoneBased模式来管理分支。在此做个总结并分享给大家,希望可以帮助大家找到适合自己项目的版本管理方式。 背景 碰到一个较复杂的自研项目,既要...

C# 解决串口接收数据不完整

方法1:使 用缓存机制完成。首先通过定义一个成员变量List<byte> buffer = new List<byte> (4096);用来存放所有的数据,在接收函数里,通过buffer.AddRange()方法不断地将接收到的数据加入到buffer中,并同时对 buffer中的数据进行检验,如果达到一定的长度并且校验结果正确(校验...

ODBC连接EXCEL的一些问题

http://liweibird.blog.51cto.com/631764/274434 由于 ODBC 驱动程序中存在错误,目前指定 FirstRowHasNames 设置不起作用。换句话说,Excel ODBC 驱动程序(MDAC 2.1 和更高版本)始终把指定数据源中的第一行作为字段名。 由于 ODBC 驱动程序中存在一个错误,所以目前指定...

AS3的数据类型和定义

AS3的数据类型分: 基元数据类型:Boolean  int(整数)  Number(长的浮点数)  unit(很大的正整数)  String 复杂数据类型:Arrary  Date  Error  Function  RegExp  XML  XMLList 声明变量的格式: var 变量名:数据类型=值; var i:int=2;...