一:組件
? ? ?1逆屡、hadoop(包含了yarn和hdfs)圾旨,hadoop 2.8.5版本
? ? ?2、flink魏蔗,版本 flink-1.7.2-bin-hadoop28-scala_2.11.tgz
? ? 3砍的、centos7? ?
二:步驟。
? ? ?1莺治、自行安裝hadoop集群廓鞠,很多帖子,隨意找谣旁。
? ? ?1)關(guān)于配置? core-site.xml
<configuration>
<property>
? <name>fs.defaultFS</name>
? <value>hdfs://master:8020</value>
</property>
<!-- 指定tmp文件夾路徑 -->
<property>
? <name>hadoop.tmp.dir</name>
? <value>/data/hadoop/data/tmp</value>
</property>
</configuration>
2)關(guān)于配置hadoop-env.sh
export JAVA_HOME=/data/soft/jdk1.8.0_181
3)關(guān)于配置hdfs-site.xml
<configuration>
<!--副本數(shù) -->
<property>
? <name>dfs.replication</name>
? <value>1</value>
</property>
<!--指定 secondaryNamenode地址及啟動(dòng)機(jī)器-->
<property>
? <name>dfs.namenode.secondary.http-address</name>
? <value>slave2:50090</value>
</property>
<property>
? <name>dfs.namenode.name.dir</name>
? <value>/data/hadoop/data/dfs/namenode</value>
</property>
<property>
? <name>dfs.datanode.data.dir</name>
? <value>/data/hadoop/data/dfs/datanode</value>
</property>
</configuration>
4)關(guān)于配置mapred-env.sh
export JAVA_HOME=/data/soft/jdk1.8.0_181
5)關(guān)于配置?mapred-site.xml
mapred-site.xml文件默認(rèn)是沒有的床佳,需要cp??mapred-site.xml.template??mapred-site.xml
<configuration>
<!--設(shè)置mapreduce任務(wù)運(yùn)行在yarn上-->
<property>
? ? <name>mapreduce.framework.name</name>
? ? <value>yarn</value>
</property>
<!--是設(shè)置mapreduce的歷史服務(wù)器安裝在master機(jī)器上(可設(shè)置可不設(shè)置)-->
<property>
? ? <name>mapreduce.jobhistory.address</name>
? ? <value>master:10020</value>
</property>
<!--是設(shè)置歷史服務(wù)器的web頁面地址和端口號(可設(shè)置可不設(shè)置)-->
<property>
? ? <name>mapreduce.jobhistory.webapp.address</name>
? ? <value>master:19888</value>
</property>
<!--設(shè)置map階段內(nèi)存,默認(rèn)是1024榄审,此設(shè)置可解決一個(gè)啟動(dòng)報(bào)錯(cuò)問題-->
<property>
? ? <name>mapreduce.map.memory.mb</name>
? ? <value>2048</value>
</property>
</configuration>
報(bào)錯(cuò)如下:
Diagnostics: Container [pid=16377,containerID=container_1533988876407_0004_02_000001] is running beyond virtual memory limits. Current usage: 59.9 MB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing container.
6)關(guān)于配置slaves(此時(shí)把master也當(dāng)做一個(gè)slave了)
vim??slaves? ?
master
slave1
slave2
7)關(guān)于配置 yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
? ? <name>yarn.nodemanager.aux-services</name>
? ? <value>mapreduce_shuffle</value>
</property>
<!--指定resourcemanager服務(wù)器-->
<property>
? ? <name>yarn.resourcemanager.hostname</name>
? ? <value>master</value>
</property>
<!--配置是否啟用日志聚集功能-->
<property>
? ? <name>yarn.log-aggregation-enable</name>
? ? <value>true</value>
</property>
<!--配置聚集的日志在HDFS上最多保存多長時(shí)間-->
<property>
? ? <name>yarn.log-aggregation.retain-seconds</name>
? ? <value>106800</value>
</property>
<!--NodeManager總的可用虛擬CPU個(gè)數(shù)-->
<property>
? ? <name>yarn.nodemanager.resource.cpu-vcores</name>
? ? <value>8</value>
</property>
<property>
? <name>yarn.log-aggregation-enable</name>
? <value>true</value>
</property>
<property>
? <name>yarn.log.server.url</name>
? <value>http://master:19888/jobhistory/logs/</value>
</property>
<!--此配置為了解決上文說的報(bào)錯(cuò)-->
<property>
? ? <name>yarn.nodemanager.vmem-pmem-ratio</name>
? ? <value>5</value>
</property>
</configuration>
注:日志聚集功能不配置
這點(diǎn)點(diǎn)進(jìn)去會(huì)報(bào)錯(cuò)砌们。
三:flink部署
下載flink包
1)配置flink-conf.yaml
#Jobmanager的IP地址,即master地址搁进。
jobmanager.rpc.address: master
#每一個(gè)TaskManager的堆大欣烁小(單位是MB),由于每個(gè)taskmanager要運(yùn)行operator的各種函數(shù)(Map饼问、Reduce影兽、CoGroup等,包含sorting莱革、hashing峻堰、caching),因此這個(gè)值應(yīng)該盡可能的大驮吱。如果集群僅僅跑Flink的程序茧妒,建議此值等于機(jī)器的內(nèi)存大小減去1、2G左冬,剩余的1桐筏、2GB用于操作系統(tǒng)。如果是Yarn模式拇砰,這個(gè)值通過指定tm參數(shù)來分配給container梅忌,同樣要減去操作系統(tǒng)可以容忍的大姓纭(1、2GB)牧氮。
#本地方設(shè)置6G
taskmanager.heap.size: 6144
#每個(gè)TaskManager的并行度琼腔。一個(gè)slot對應(yīng)一個(gè)core,默認(rèn)值是1.一個(gè)并行度對應(yīng)一個(gè)線程踱葛〉ち總的內(nèi)存大小要且分給不同的線程使用。
taskmanager.numberOfTaskSlots: 4
#啟動(dòng)job默認(rèn)用的parallelism數(shù)量
parallelism.default:8
#臨時(shí)目錄
taskmanager.tmp.dirs: /tmp
#JobManager的堆大惺獭(單位是MB)甥材。當(dāng)長時(shí)間運(yùn)行operator非常多的程序時(shí),需要增加此值性含。具體設(shè)置多少只能通過測試不斷調(diào)整洲赵。
jobmanager.heap.size: 2048
#jobmanager.web.port: 8081
#JobMamanger的端口,默認(rèn)是6123商蕴。
jobmanager.rpc.port: 6123
state.backend: filesystem
state.backend.fs.checkpointdir: hdfs:///flink/checkpoints
fs.hdfs.hadoopconf: /var/apps/hadoop285/etc/hadoop
注:如果配置高可用叠萍,這里面少了zookeeper的配置
2)配置master
vim masters
master:8081
3)配置slaves
vim slaves
slave1
slave2
三:啟動(dòng)yarn? 和flink
四:提交任務(wù)。
./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 -d -c com.xxxxx.flink.app.xxxxxFlinkData? /var/apps/xxxx-xxxxx.jar
頁面如下:
完成绪商!