flink快速入門及採坑記錄
阿新 • • 發佈:2019-01-24
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來安裝。
執行任務
檢視結果