zoukankan      html  css  js  c++  java
  • 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等。

    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
    
    

    参考

  • 相关阅读:
    Mybatis 原始dao CRUD方法
    JQuery的焦点事件focus() 与按键事件keydown() 及js判断当前页面是否为顶级页面 子页面刷新将顶级页面刷新 window.top.location
    使用actionerror做失败登录验证
    Java项目中的下载 与 上传
    shiro框架 4种授权方式 说明
    javascript 中数组的创建 添加 与将数组转换成字符串 页面三种提交请求的方式
    序列化表单为json对象,datagrid带额外参提交一次查询 后台用Spring data JPA 实现带条件的分页查询 多表关联查询
    Spring data JPA 理解(默认查询 自定义查询 分页查询)及no session 三种处理方法
    orcal 数据库 maven架构 ssh框架 的全注解环境模版 maven中央仓库批量删除lastupdated文件后依然是lastupdated解决方法 mirror aliyun中央仓库
    EasyUI加zTree使用解析 easyui修改操作的表单回显方法 验证框提交表单前验证 datagrid的load方法
  • 原文地址:https://www.cnblogs.com/lucky_hu/p/15316896.html
Copyright © 2011-2022 走看看