好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 淺談實時計算框架Flink集群搭建與運行機制

淺談實時計算框架Flink集群搭建與運行機制

熱門標簽:打400電話怎么辦理收費 麗江真人語音電話外呼系統 宿城區電話機器人找哪家 上海申請高400開頭的電話 400電話辦理介紹信 福州企業電銷機器人排名 怎么找到沒有地圖標注的店 10086外包用的什么外呼系統 河南防封號電銷機器人是什么

一、Flink概述

1.1、基礎簡介

主要特性包括:批流一體化、精密的狀態管理、事件時間支持以及精確一次的狀態一致性保障等。Flink不僅可以運行在包括YARN、Mesos、Kubernetes在內的多種資源管理框架上,還支持在裸機集群上獨立部署。在啟用高可用選項的情況下,它不存在單點失效問題。

這里要說明兩個概念:

  • 邊界:無邊界和有邊界數據流,可以理解為數據的聚合策略或者條件;
  • 狀態:即執行順序上是否存在依賴關系,即下次執行是否依賴上次結果;

1.2、應用場景

Data Driven

事件驅動型應用無須查詢遠程數據庫,本地數據訪問使得它具有更高的吞吐和更低的延遲,以反欺詐案例來看,DataDriven把處理的規則模型寫到DatastreamAPI中,然后將整個邏輯抽象到Flink引擎,當事件或者數據流入就會觸發相應的規則模型,一旦觸發規則中的條件后,DataDriven會快速處理并對業務應用進行通知。

Data Analytics

和批量分析相比,由于流式分析省掉了周期性的數據導入和查詢過程,因此從事件中獲取指標的延遲更低。不僅如此,批量查詢必須處理那些由定期導入和輸入有界性導致的人工數據邊界,而流式查詢則無須考慮該問題,Flink為持續流式分析和批量分析都提供了良好的支持,實時處理分析數據,應用較多的場景如實時大屏、實時報表。

Data Pipeline

與周期性的ETL作業任務相比,持續數據管道可以明顯降低將數據移動到目的端的延遲,例如基于上游的StreamETL進行實時清洗或擴展數據,可以在下游構建實時數倉,確保數據查詢的時效性,形成高時效的數據查詢鏈路,這種場景在媒體流的推薦或者搜索引擎中十分常見。

二、環境部署

2.1、安裝包管理

[root@hop01 opt]# tar -zxvf flink-1.7.0-bin-hadoop27-scala_2.11.tgz

[root@hop02 opt]# mv flink-1.7.0 flink1.7

2.2、集群配置

管理節點

[root@hop01 opt]# cd /opt/flink1.7/conf

[root@hop01 conf]# vim flink-conf.yaml

jobmanager.rpc.address: hop01

分布節點

[root@hop01 conf]# vim slaves

hop02

hop03

兩個配置同步到所有集群節點下面。

2.3、啟動與停止

/opt/flink1.7/bin/start-cluster.sh

/opt/flink1.7/bin/stop-cluster.sh

啟動日志:

[root@hop01 conf]# /opt/flink1.7/bin/start-cluster.sh

Starting cluster.

Starting standalonesession daemon on host hop01.

Starting taskexecutor daemon on host hop02.

Starting taskexecutor daemon on host hop03.

2.4、Web界面

訪問:http://hop01:8081/

三、開發入門案例

3.1、數據腳本

分發一個數據腳本到各個節點:

/var/flink/test/word.txt

3.2、引入基礎依賴

這里基于Java寫的基礎案例。

<dependencies>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-java</artifactId>
        <version>1.7.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-streaming-java_2.11</artifactId>
        <version>1.7.0</version>
    </dependency>
</dependencies>

3.3、讀取文件數據

這里直接讀取文件中的數據,經過程序流程分析出每個單詞出現的次數。

public class WordCount {
    public static void main(String[] args) throws Exception {
        // 讀取文件數據
        readFile () ;
    }

    public static void readFile () throws Exception {
        // 1、執行環境創建
        ExecutionEnvironment environment = ExecutionEnvironment.getExecutionEnvironment();

        // 2、讀取數據文件
        String filePath = "/var/flink/test/word.txt" ;
        DataSet<String> inputFile = environment.readTextFile(filePath);

        // 3、分組并求和
        DataSet<Tuple2<String, Integer>> wordDataSet = inputFile.flatMap(new WordFlatMapFunction(
        )).groupBy(0).sum(1);

        // 4、打印處理結果
        wordDataSet.print();
    }

    // 數據讀取個切割方式
    static class WordFlatMapFunction implements FlatMapFunction<String, Tuple2<String, Integer>> {
        @Override
        public void flatMap(String input, Collector<Tuple2<String, Integer>> collector){
            String[] wordArr = input.split(",");
            for (String word : wordArr) {
                collector.collect(new Tuple2<>(word, 1));
            }
        }
    }
}

3.4、讀取端口數據

在hop01服務上創建一個端口,并模擬一些數據發送到該端口:

[root@hop01 ~]# nc -lk 5566

c++,java

通過Flink程序讀取并分析該端口的數據內容:

public class WordCount {
    public static void main(String[] args) throws Exception {
        // 讀取端口數據
        readPort ();
    }

    public static void readPort () throws Exception {
        // 1、執行環境創建
        StreamExecutionEnvironment environment = StreamExecutionEnvironment.getExecutionEnvironment();

        // 2、讀取Socket數據端口
        DataStreamSource<String> inputStream = environment.socketTextStream("hop01", 5566);

        // 3、數據讀取個切割方式
        SingleOutputStreamOperator<Tuple2<String, Integer>> resultDataStream = inputStream.flatMap(
                new FlatMapFunction<String, Tuple2<String, Integer>>()
        {
            @Override
            public void flatMap(String input, Collector<Tuple2<String, Integer>> collector) {
                String[] wordArr = input.split(",");
                for (String word : wordArr) {
                    collector.collect(new Tuple2<>(word, 1));
                }
            }
        }).keyBy(0).sum(1);

        // 4、打印分析結果
        resultDataStream.print();

        // 5、環境啟動
        environment.execute();
    }
}

四、運行機制

4.1、FlinkClient

客戶端用來準備和發送數據流到JobManager節點,之后根據具體需求,客戶端可以直接斷開連接,或者維持連接狀態等待任務處理結果。

4.2、JobManager

在Flink集群中,會啟動一個JobManger節點和至少一個TaskManager節點,JobManager收到客戶端提交的任務后,JobManager會把任務協調下發到具體的TaskManager節點去執行,TaskManager節點將心跳和處理信息發送給JobManager。

4.3、TaskManager

任務槽(slot)是TaskManager中最小的資源調度單位,在啟動的時候就設置好了槽位數,每個槽位能啟動一個Task,接收JobManager節點部署的任務,并進行具體的分析處理。

五、源代碼地址

GitHub·地址

https://github.com/cicadasmile/big-data-parent

GitEE·地址

https://gitee.com/cicadasmile/big-data-parent

以上就是淺談實時計算框架Flink集群搭建與運行機制的詳細內容,更多關于實時計算框架 Flink集群搭建與運行機制的資料請關注腳本之家其它相關文章!

標簽:運城 雞西 朝陽 遵義 荊門 連云港 隴南 面試通知

巨人網絡通訊聲明:本文標題《淺談實時計算框架Flink集群搭建與運行機制》,本文關鍵詞  淺談,實時,計算,框架,Flink,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談實時計算框架Flink集群搭建與運行機制》相關的同類信息!
  • 本頁收集關于淺談實時計算框架Flink集群搭建與運行機制的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 大杳蕉精品视频在线观看| 巜漂亮的女邻居又紧又爽三级 | 日本xxxxx18护士xxx| 高潮颤抖迎合H| 国产午夜88色A片视频| 肉动漫在线播放免费高清| 国产成人精品一区二区不卡| 亚洲国产欧美在线看片XXOO| 中年熟妇戴阿?的屁股眼| 调教电钻炮机嗯啊| 久久久久久青草大香综合精品| 91久久国产口精品久久久久| Chinese中国人妻4video| 高中生小喜公车厕所| 女的被到爽的羞羞视频| 电梯里他挺进我的身体| 国产成人精品久久久久大片| 尤果网福利视频在线观看| 91九色丨porny丨制服| 夫妇交换性3| 共夫(总攻NP)海棠| 免费看美女下部隐私的软件| 黄三级高清在线30分钟播放| 毛片国产| 2012免费高清完整版在线播放| 香蕉久久夜色精品国产app小说| 美女裸体秘?直播| 人人鲁交zzo| 成人H秘?小说在线阅读老师| 91k频道在线精品| chinese国产hdfree中文| 草莓永久地域网名入2022| 先生我可以上你吗日剧高清| 丰满岳跪趴高撅肥臀尤物在线观看| 成人毛片18女人毛片真水| 国产农村野战胖女人8毛片| 今天躁天天躁天天躁2022| 免费??无码进口动漫人物破解版| 一级a一级a爱片免费兔兔软件丶| 纯黄性大片段| 天天舔天天舔|