Flink是目前在國(guó)內(nèi)非常流行的大數(shù)據(jù)的計(jì)算框架,其設(shè)計(jì)理念可以完美的實(shí)現(xiàn)數(shù)據(jù)的批流計(jì)算一體化。Flink的集群,如果要使用到JobManager的HA,以及Yarn的資源調(diào)度的話,整體的部署過(guò)程還是比較復(fù)雜的。本系列文章將完整介紹Hadoop,Kerberos,SASL,Yarn,以及Flink集群的搭建過(guò)程,一步步完成整個(gè)系統(tǒng)環(huán)境的部署。
Hadoop集群的搭建
Hadoop的HDFS在Flink中用作JobManager的HA,Yarn可以用于Flink任務(wù)的資源調(diào)度,因此是必不可少的。下面我們先搭建好一個(gè)Hadoop的集群。
偽分布式集群
對(duì)于一些不熟悉Hadoop集群的搭建的同學(xué),我們先來(lái)看下偽分布式集群的搭建,可以快速的熟悉簡(jiǎn)化的配置過(guò)程,以及Hadoop的各配置文件等。
以下是我用于部署該服務(wù)的機(jī)器:
| hostname | ip |
|---|---|
| master | 10.16.. |
1. ssh免密碼登錄
在偽分布式集群中,所有的服務(wù)都在同一節(jié)點(diǎn)啟動(dòng),但它們之間也同樣通過(guò)ssh的方式訪問(wèn),所以需要配置ssh免密碼登錄,配置的方式如下:
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
測(cè)試以下命令,成功跳轉(zhuǎn)即可:
$ ssh localhost
2. 下載并解壓Hadoop的jar包
Hadoop下載鏡像站的地址,選擇Hadoop2.8.5版本:http://www.apache.org/dyn/closer.cgi/hadoop/common/
將jar包下載在/data目錄,然后解壓縮:
$ tar -xvf hadoop-2.8.5.tar.gz
3. 配置文件修改
- 配置HDFS相關(guān)配置文件:
- 配置etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
- 配置etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
- 配置Yarn相關(guān)配置文件:
- 配置etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- 配置etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
4. 啟動(dòng)服務(wù)
- 啟動(dòng)HDFS:先進(jìn)行HDFS Namenode格式化,然后啟動(dòng)NameNode和DataNode。訪問(wèn)NameNode的Web頁(yè)面:http://localhost:50070/,可以看到NameNode和1個(gè)DataNode,HDFS啟動(dòng)成功。
$ bin/hdfs namenode -format
$ sbin/start-dfs.sh

- 啟動(dòng)Yarn:直接啟動(dòng)ResourceManager和NodeManager。訪問(wèn)Yarn的Web頁(yè)面:http://localhost:8088/,可以看到一個(gè)Active Nodes,Yarn啟動(dòng)成功。
$ sbin/start-yarn.sh
5. 運(yùn)行Hadoop任務(wù)
在集群搭建完成后,可以運(yùn)行Hadoop的示例任務(wù),檢查集群是否能夠正常工作,命令如下:
$ ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar pi 3 3
該程序會(huì)打印PI的值,則執(zhí)行成功。在Yarn的Web頁(yè)面,可以看到有一個(gè)成功的Application。

下一節(jié)我們會(huì)介紹Hadoop的分布式集群,Kerberos和SASL等的部署。