提前准备
- java 版本 1.8.0_101
- flink 版本 flink-1.8.2-bin-scala_2.11.tgz
- hadoop 版本 hadoop-2.8.5.tar.gz
- flink-hadoop lib 版本 flink-shaded-hadoop-2-uber-2.6.5-7.0.jar
配置环境变量
JAVA_HOME=/usr/jdk1.8.0_101
FLINK_HOME=/home/iie4bu/app/flink-1.8.2
HADOOP_HOME=/home/iie4bu/app/hadoop-2.8.5
PATH=$JAVA_HOME/bin:$FLINK_HOME/bin:$HADOOP_HOME/bin:$PATH
export PATH=$PATH
Java安装
这里就不多说了,有很多资料,安装后,检查一下:
flink 1.8.2 安装
- 解压缩
tar -xvf flink-1.8.2-bin-scala_2.11.tgz
- 修改flink-1.8.2/conf/flink-conf.yaml文件
配置文件中常用的配置
jobmanager.rpc.address参数用来指向master节点的地址
jobmanager.heap.size 表示jobmanager节点可用的内存
taskmanager.heap.size表示taskmanager节点可用的内存
taskmanager.numberOfTaskSlots 每一个机器可用的CPU个数,决定了并行度
paraparallelism.default 表示任务的并行度 可以在代码层面覆盖
taskmanager.tmp.dirs taskmanager的临时数据存储目录
- 修改配置文件flink-1.8.2/conf/flink-conf.yaml内容如下:
jobmanager.rpc.address: swarm-manager (修改为本服务器的主机名) io.tmp.dirs: /home/iie4bu/app/tmp/flink-tmp
- 修改配置文件flink-1.8.2/conf/masters
swarm-manager:8081
- 修改配置文件flink-1.8.2/conf/slaves
swarm-manager
- 启动集群
./bin/start-cluster.sh
- 浏览器中输入地址
http://swarm-manager:8081
启动成功!
hadoop 2.8.5 安装
- 解压缩
hadoop-2.8.5.tar.gz
- 修改配置文件
etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/jdk1.8.0_101
- 修改配置文件
etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://swarm-manager:9000</value>
</property>
</configuration>
- 修改配置文件
etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/iie4bu/app/tmp/hadoop-tmp</value>
</property>
</configuration>
- 设置免密登录
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
- 测试hdfs
- 格式化文件系统:
$ bin/hdfs namenode -format
- 启动namenode和datanode:
sbin/start-dfs.sh
浏览器中输入地址:http://swarm-manager:50070
- 测试文件上传
成功!
Yarn安装配置
- 修改配置文件
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>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>10000</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>3000</value>
</property>
</configuration>
容器的最小内存和最大内存分别为:3000m和10000m
3. 启动ResourceManager 和NodeManager :sbin/start-yarn.sh
4. 浏览器中输入http://swarm-manager:8088
启动成功!
配置Flink on Yarn
- 首先在
https://flink.apache.org/downloads.html#apache-flink-182
下载对应的包
- 然后将
flink-shaded-hadoop-2-uber-2.6.5-7.0.jar
拷贝至flink-1.8.2/lib/ - 测试运行
./bin/yarn-session.sh -n 1 -jm 1024m -tm 1024m
提交Flink作业
wget -O LICENSE-2.0.txt http://www.apache.org/licenses/LICENSE-2.0.txt
./hdfs dfs -put ~/LICENSE-2.0.txt /
提交到hdfs中./bin/flink run ./examples/batch/WordCount.jar --input hdfs://swarm-manager:9000/LICENSE-2.0.txt --output hdfs://swarm-manager:9000/wordcount-result.txt
执行这个作业- 浏览器中查看
已经完成了一个作业了。 - 查看结果
./bin/hdfs dfs -ls /
./bin/hdfs dfs -text /wordcount-result.txt
可以查看文件结果。