• 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
    
    

    参考

  • 相关阅读:
    $(this)的意思
    Springmvc框架文件上传单文件上传
    保险业务知识价税分离
    SpringMVC框架,json
    使用springmvc框架实现多文件上传
    oracle数据库中的绑定变量
    使用Springmvc框架实现多文件上传(二)
    Springmvc框架json对象的处理
    Springmvc框架json数据传递处理,解决方案2
    [算法] 6 种排序的重写,很熟练!
  • 原文地址:https://www.cnblogs.com/lucky_hu/p/15316896.html
Copyright © 2020-2023  润新知