美文网首页
Docker 构建 Flume 1.7.0 集群

Docker 构建 Flume 1.7.0 集群

作者: 孙瑞锴 | 来源:发表于2020-06-13 22:20 被阅读0次

    1. 借鉴

    Flume 1.7.0 User Guide
    Flume 1.8用户手册中文版

    2. 开始

    我们的集群规划如下:

    flume01[172.173.16.16] flume02[172.173.16.17] flume03[172.173.16.18]
    作用 日志采集 日志采集 消费MQ数据

    镜像准备

    1. docker hub 下载
      docker pull caiserkaiser/centos-ssh
    
    1. 构建
      caiser/centos-ssh:7.8 镜像

    创建自定义网络

    Docker 网络操作

    docker network create -d bridge --subnet "172.173.16.0/24" --gateway "172.173.16.1"  datastore_net
    

    启动容器

    docker run -it -d --network datastore_net --ip 172.173.16.16 --name flume01 caiser/centos-ssh:7.8
    

    下载flume

    1. 下载flume

    2. 拷贝到容器内

      docker cp ~/Downloads/apache-flume-1.7.0-bin.tar.gz 6c41e6d8a348:/opt/envs
      
    3. 解压

      tar -zxvf apache-flume-1.7.0-bin.tar.gz
      

    配置

    flume-env.sh

    • a. 备份

      cp /opt/envs/apache-flume-1.7.0-bin/conf/flume-env.sh.template /opt/envs/apache-flume-1.7.0-bin/conf/flume-env.sh
      
    • b. 编辑flume-env.sh

       vi /opt/envs/apache-flume-1.7.0-bin/conf/flume-env.sh
      
    • c. 配置java home

      ①. 找到下面这一行

       # export JAVA_HOME=/usr/lib/jvm/java-6-sun
      

      ②. 然后替换为以下

       export JAVA_HOME=/opt/envs/jdk1.8.0_251
      
    • d. 配置JVM

      ①. 找到下面这两行

       # Give Flume more memory and pre-allocate, enable remote monitoring via JMX
       # export JAVA_OPTS="-Xms100m -Xmx2000m -Dcom.sun.management.jmxremote"
      

      ②. 然后替换为以下

       export JAVA_OPTS="-Xms4096m -Xmx4096m -Dcom.sun.management.jmxremote"
      

    flume-节点配置

    1. 编辑/etc/hosts,并添加以下hostname

      172.173.16.16   flume01
      172.173.16.17   flume02
      172.173.16.18   flume03
      

    保存为镜像并移除容器

    docker commit 6c41e6d8a348 caiser/flume:1.7.0
    docker rm 6c41e6d8a348
    

    启动容器

    docker run -it -d --network datastore_net --ip 172.173.16.16 --name flume01 caiser/flume:1.7.0 bin/bash
    
    docker run -it -d --network datastore_net --ip 172.173.16.17 --name flume02 caiser/flume:1.7.0 bin/bash
    
    docker run -it -d --network datastore_net --ip 172.173.16.18 --name flume03 caiser/flume:1.7.0 bin/bash
    

    配置ssh免密登录

    1. 进入容器

      docker exec -it flume01 /bin/bash
      
    2. 到~/.ssh目录下生成秘钥

      ssh-keygen -t rsa
      
    3. 拷贝秘钥到flume01,flume02和flume03

      a.[如果没开启]三个容器没有开启ssh服务[ps -ef | grep ssh],需要依次执行

      /usr/sbin/sshd -D &
      

      b. 拷贝秘钥

      ssh-copy-id flume01
      ssh-copy-id flume02
      ssh-copy-id flume03
      
    4. flume02和flume03依次执行上述1-3步骤

    收集日志

     /opt/envs/apache-flume-1.7.0-bin/bin/flume-ng agent --conf /opt/envs/apache-flume-1.7.0-bin/conf --conf-file /opt/envs/apache-flume-1.7.0-bin/conf/file-flume-kafka.conf --name a1 -Dflume.root.logger=INFO,console
    

    可以看到这里指定了--conf 和--conf-file,这里不指定没法运行,这个老头子坏得很-_-

    3. 大功告成

    相关文章

      网友评论

          本文标题:Docker 构建 Flume 1.7.0 集群

          本文链接:https://www.haomeiwen.com/subject/kakztktx.html