Docker 构建 Flume 1.7.0 集群

2020-06-13  本文已影响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

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. 大功告成

上一篇下一篇

猜你喜欢

热点阅读