Flink單機版安裝與測試最易操作教程

本文主要是講述flink單機版的搭建及測試

前期準備jave要配置好,版本最好1,8以上

首先在官網下載需要的版本,網址在下面:
這次測試使用的是flink1.6.2,Hadoop2.7.2,scala2.11
https://flink.apache.org/downloads.html#all-stable-releases

在這裏插入圖片描述
下載完畢將安裝包上傳到linux,並安裝

tar -zxvf flink-1.6.2-bin-hadoop27-scala_2.11.tgz -C /usr/local/
在這裏插入圖片描述

爲了方便這裏給flink目錄改個名

mv flink-1.6.2 flink

進入flink目錄下輸入下面命令

vim conf/flink-conf.yaml

修改第33行的jobmanager.rpc.address 改成自己的主機名
同時將masters文件內容修改成主節點主機名

# > masters
# echo "spark01" >>masters

在這裏插入圖片描述
單機版現在已經搭建成功
啓動在flink目錄下輸入下面命令

# bin/start-cluster.sh

輸入後可以看到如下頁面
在這裏插入圖片描述
在用jps 看一下啓動的進程,紅色方框裏就是jobmanager進程
在這裏插入圖片描述
此時到web頁面查看,在網頁輸入
192.168.147.133:8081回車可以看到如下界面
在這裏插入圖片描述
這樣一個單機版就算成功了,下面我們來測試一下
先在遠程連接工具上開啓一個命令頁1輸入下面命令 製造數據

nc -lk 9000

再開一個命令頁2運行官方案例wordcount

./bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9000

在命令頁1輸入任意單詞,再開一個命令頁3來實時查看統計結果結果保存在log下的文件裏

tail -f log/flink-root-taskexecutor-spark01.out

在這裏插入圖片描述
測試完畢結束命令頁1,2,3的命令,此時在web頁面也可以看到任務的執行
在這裏插入圖片描述
接下來我們要在idea裏有scala API來實現這個wordcount並將結果輸出到控制檯
現在pom.xml裏添加依賴包:

 <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-java</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-java_2.11</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-scala_2.11</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-clients_2.11</artifactId>
            <version>1.6.2</version>
        </dependency>

然後在idea裏執行下面這段scala代碼

package flinktest
import org.apache.flink.streaming.api.scala._
import org.apache.flink.streaming.api.windowing.time.Time
object SocketWindowWordCount {
  def main(args: Array[String]) : Unit = {
    //設置連接的主機名和端口號
    var hostname: String = "192.168.147.133"
    var port: Int = 6666
    // 獲取執行環境
    val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
    // 獲取連接數據
    val text: DataStream[String] = env.socketTextStream(hostname, port, '\n')
    // 數據處理,每5秒計算打印一次
    val windowCounts = text
      .flatMap { w => w.split("\\s") }
      .map { w => WordWithCount(w, 1) }
      .keyBy("word")
      .timeWindow(Time.seconds(5))
      .sum("count")
    // 用單個線程打印結果,而不是並行打印結果
    windowCounts.print().setParallelism(1)
    env.execute("Socket Window WordCount")
  }
  /** 記錄的數據類型 */
  case class WordWithCount(word: String, count: Long)
}

在spark01命令頁輸入nc -lk 6666(代碼裏設置的端口)
在這裏插入圖片描述
結束進程

bin/stop-cluster.sh

相互學習,共勉!路過的大佬留個足跡

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章