1. 程式人生 > >flume安裝以及應用

flume安裝以及應用

下載

//wget http://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.8.0/apache-flume-1.8.0-bin.tar.gz

wget http://mirrors.hust.edu.cn/apache/flume/1.8.0/apache-flume-1.8.0-bin.tar.gz 

解壓

tar –zxvf apache-flume-1.8.0-bin.tar.gz

mv apache-flume-1.8.0-bin /usr/local/flume

3)        設定環境變數

Vim /etc/profile.d/flume.sh

Source /etc/profile

 

4)        配置java_home

cp flume-env.sh.template flume-env.sh

vim flume-env.sh

視覺化:
--------------
    1.
    2.
    3.
    4.
    5.
package com.it18zhang.callloggen;

import java.util.HashMap;
import java.util.Map;

/**
 *
 */
public class App {
    public static Map<String,String> caller = new HashMap<String, String>();
    static{
        caller.put("15810092493", "史玉龍");
        caller.put("18000696806", "趙賀彪");
        caller.put("15151889601", "張倩 ");
        caller.put("13269361119", "王世昌");
        caller.put("15032293356", "張濤");
        caller.put("17731088562", "張陽");
        caller.put("15338595369", "李進全");
        caller.put("15733218050", "杜澤文");
        caller.put("15614201525", "任宗陽");
        caller.put("15778423030", "樑鵬");
        caller.put("18641241020", "郭美彤");
        caller.put("15732648446", "劉飛飛");
        caller.put("13341109505", "段光星");
        caller.put("13560190665", "唐會華");
        caller.put("18301589432", "楊力謀");
        caller.put("13520404983", "溫海英");
        caller.put("18332562075", "朱尚寬");
        caller.put("18620192711", "劉能宗");
    }

    public static void main(String[] args) {
        genCallLog();
    }

    public static void genCallLog(){
        
    }

生成jar包,部署到centos執行
--------------------------------
    1.使用maven生成jar檔案
        ...
    2.部署到centos
        
    3.執行
        $>mkdir /home/centos/calllog
        java -cp calllog.jar com.it18zhang.callloggen.App /home/logs/calllog/calllog.log

    4.建立centos上的執行指令碼
        [calllog.sh]
        #!/bin/bash
        java -cp calllog.jar com.it18zhang.callloggen.App /home/logs/calllog/calllog.log

    5.修改許可權
        $>chmod a+x calllog.sh
    
    6.執行指令碼
        $>cd ~/calllog
        $>./calllog.sh
    
手機號
---------------
    0755-67568979
    186----------

086+0755-67568979
固話
--------------
    0755-67568979
    0755-67568979

網路電話
-------------
    12358757575765656565


啟動zk叢集[s201 + s202 + s203]
-------------
    $>zkServer.sh start 

啟動kafka叢集[s202 + s203 + s204]
-----------------
    $>cd /soft/kafka/config
    $>kafka-server-start.sh -daemon server.properties

建立kafka主題
-----------------
    //建立主題
    $>kafka-topics.sh --zookeeper s202:2181 --topic calllog --create --replication-factor 3 --partitions 4

    //檢視主題列表
    $>kafka-topics.sh --zookeeper s202:2181 --list

    //啟動控制檯消費者,消費calllog主題,用於測試.
    $>kafka-console-consumer.sh --zookeeper s201:2181 --topic calllog

    topic consumer均在zookeeper上
    

s201上編寫flume配置檔案件,實時收集calllog.log日誌
--------------------------------------------
    1.配置檔案
        [/soft/flume/conf/calllog.conf]
a1.sources = r1
a1.sinks = k1
a1.channels = c1

a1.sources.r1.type=exec
#-F 最後10行,如果從頭開始收集 -c +0 -F:持續收集後續資料,否則程序停止。
a1.sources.r1.command=tail -F -c +0 /home/centos/calllog/calllog.log

a1.channels.c1.type=memory

a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.topic = calllog
a1.sinks.k1.kafka.bootstrap.servers = s202:9092 s203:9092 s204:9092
a1.sinks.k1.kafka.flumeBatchSize = 20
a1.sinks.k1.kafka.producer.acks = 1

a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1


    2.啟動flume收集程式
        $>./flume-ng agent -f /home/appinstall/installed/apache-flume-1.8.0-bin/conf/calllog.conf -n a1 &
        
        

在s202主機安裝flume軟體

 

 

 

flume例子: