1. 程式人生 > >flink快速入門及採坑記錄

flink快速入門及採坑記錄

apache flink作為第四代mapreduce計算框架,已經得到越來越多的應用,這裡介紹如何快速入門,以及記錄一個記憶體錯誤的問題。

1、安裝jdk

2、下載flink,並解壓。

wget https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.3.2/flink-1.3.2-bin-hadoop27-scala_2.11.tgz

3、執行報錯,修改引數執行正常。(如果虛擬機器記憶體1G,會報記憶體不足的錯誤)

bin/start-local.sh

啟動之後發現沒有java程序,檢視日誌輸出,發現Cannot allocate memoery,可以確定是由於記憶體不足導致的。

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000aaaa0000, 1431699456, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1431699456 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /root/flink-1.3.2/hs_err_pid11115.log

檢視記憶體不足的錯誤日誌hs_err_pid11115.log,發現jvm引數設定超過虛擬機器最大記憶體。

jvm_args: -Xms2048m -Xmx2048m -Dlog.file=/root/flink-1.3.2/log/flink-root-jobmanager-0-buejee.log -Dlog4j.configuration=file:/root/flink-1.3.2/conf/log4j.properties -Dlogback.configurationFile=file:/root/flink-1.3.2/conf/logback.xml
java_command: org.apache.flink.runtime.jobmanager.JobManager --configDir /root/flink-1.3.2/conf --executionMode local
java_class_path (initial): /root/flink-1.3.2/lib/flink-python_2.11-1.3.2.jar:/root/flink-1.3.2/lib/flink-shaded-hadoop2-uber-1.3.2.jar:/root/flink-1.3.2/lib/log4j-1.2.17.jar:/root/flink-1.3.2/lib/slf4j-log4j12-1.7.7.jar:/root/flink-1.3.2/lib/flink-dist_2.11-1.3.2.jar:::
Launcher Type: SUN_STANDARD

看到jvm引數預設設定最小記憶體最大記憶體均是2g,需要修改conf/flink-conf.yml,預設job.manager.heap.mb: 1024,taskmanager.heap.mb: 1024,將他們均改為512。

# The heap size for the JobManager JVM
jobmanager.heap.mb: 512
# The heap size for the TaskManager JVM
taskmanager.heap.mb: 512

正常啟動的截圖

這時候可以通過訪問http://ip:8081,來檢視flink視覺化介面。

通過netcat工具監聽9000埠,如果系統沒有nc命令,可以通過yum install nc -y來安裝。

執行任務

檢視結果