大資料應用-Flume+HBase+Kafka整合資料採集/儲存/分發完整流程測試03.

x.1000001000發表於2020-12-17

系列文章目錄

Flume+HBase+Kafka整合資料採集/儲存/分發完整流程測試


一、說明

兩個flume節點採集slave1,slave2應用伺服器,彙總在master上的flume,然後master上flume分為兩端傳遞資料,一端是傳遞給Kafka,一端是傳遞給HBase,之前各個元件的配置我都已經總結好,詳細請看上面的幾篇文章,這一篇文章主要是對整個資料採集儲存、分發做一個詳細的測試。

二、應用服務模擬器程式開發

新建一個普通專案編寫程式碼
將這個程式碼打包上傳到master

package com.builddata.jar;

import java.io.*;

public class LogReadAndWriter {


    private static String readFileName;
    private static String writeFileName;

    public static void main(String[] args) {
        readFileName = args[0];
        writeFileName = args[1];

        try {
            // readInput()
            readFileByLines(readFileName);
        }catch (Exception e){

        }
    }
    public static void readFileByLines(String filename){
        FileInputStream fis = null;
        InputStreamReader isr = null;
        BufferedReader br = null;
        String tempString = null;

        try{
            System.out.println("以行為單位讀取檔案內容,一次讀一整行:");
            fis = new FileInputStream(filename);
            // 從檔案系統中的某個檔案中獲取位元組
            isr = new InputStreamReader(fis,"GBK");
            br = new BufferedReader(isr);
            int count = 0;
            while ((tempString = br.readLine()) != null){
                count++;
                // 顯示符號
                Thread.sleep(100);
                String str = new String(tempString.getBytes("UTF8"),"GBK");
                System.out.println("row:"+count+">>>>>>>>>>"+tempString);
                method1(writeFileName,tempString);
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } finally {
            if (isr != null){
                try{
                    isr.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public static void method1(String file, String content){
        BufferedWriter out = null;
        try {
            out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file,true)));
            out.write("\n");
            out.write(content);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

在usr新建jars包

mkdir -p jars

在這裡插入圖片描述
將檔案拷貝到jars目錄下面

cp weblogs.jar /usr/jars

在這裡插入圖片描述
分發到其他兩臺伺服器上去:

scp -r weblogs.jar  slave1: /usr/jars

scp -r weblogs.jar  slave2: /usr/jars

回到master中編寫啟動指令碼:

相關文章