一 前言
本文档主要介绍如何在挂载文件存储HDFS版的 Hadoop 集群上安装及使用 Flink。
二 准备工作
- 开通文件存储HDFS版服务并创建文件系统实例和挂载点,详情请参见:快速入门。
- 在 Hadoop 集群所有节点上安装JDK。版本不能低于1.8。
- 下载 Apache Hadoop 压缩包,下载地址:官方链接。建议您选用的Hadoop版本不低于2.7.2,本文档中使用的Hadoop版本为 Apache Hadoop 2.7.2。
- 下载 Apache Flink 压缩包,下载地址:官方链接。本文档中使用的版本为官方提供的预编译版本 Apache Flink 1.12.5。
三 配置 Hadoop
- 执行如下命令解压 Hadoop 压缩包到指定目录。
tar -zxf hadoop-2.7.2.tar.gz -C /usr/local/
- 修改 hadoop-env.sh 配置文件。
- 执行如下命令打开 hadoop-env.sh 配置文件。
vim /usr/local/hadoop-2.7.2/etc/hadoop/hadoop-env.sh
- 配置 JAVA_HOME 目录,如下所示。
exportJAVA_HOME=/usr/java/default
- 修改 core-site.xml 配置文件。
- 执行如下命令打开 core-site.xml 配置文件。
vim /usr/local/hadoop-2.7.2/etc/hadoop/core-site.xml
- 在 core-site.xml 配置文件中,配置如下信息,详情请参见挂载文件系统。
<configuration><property><name>fs.defaultFS</name><value>dfs://x-xxxxxxxx.cn-xxxxx.dfs.aliyuncs.com:10290</value><!-- 该地址填写您的挂载点地址 --></property><property><name>fs.dfs.impl</name><value>com.alibaba.dfs.DistributedFileSystem</value></property><property><name>fs.AbstractFileSystem.dfs.impl</name><value>com.alibaba.dfs.DFS</value></property></configuration>
- 修改 yarn-site.xml 配置文件。
- 执行如下命令打开 yarn-site.xml 配置文件。
vim /usr/local/hadoop-2.7.2/etc/hadoop/yarn-site.xml
- 在 yarn-site.xml 配置文件中,配置如下信息。
<configuration><property><name>yarn.resourcemanager.hostname</name><value>xxxx</value><!-- 该地址填写集群中resourcemanager的hostname --></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property><property><name>yarn.nodemanager.resource.memory-mb</name><value>16384</value><!-- 根据您当前的集群能力进行配置此项 --></property><property><name>yarn.nodemanager.resource.cpu-vcores</name><value>4</value><!-- 根据您当前的集群能力进行配置此项 --></property><property><name>yarn.scheduler.maximum-allocation-vcores</name><value>4</value><!-- 根据您当前的集群能力进行配置此项 --></property><property><name>yarn.scheduler.minimum-allocation-mb</name><value>3584</value><!-- 根据您当前的集群能力进行配置此项 --></property><property><name>yarn.scheduler.maximum-allocation-mb</name><value>14336</value><!-- 根据您当前的集群能力进行配置此项 --></property></configuration>
- 修改 slaves 配置文件。
- 执行如下命令打开 slaves 配置文件。
vim /usr/local/hadoop-2.7.2/etc/hadoop/slaves
- 在 slaves 配置文件中,配置集群计算节点的 hostname。
cluster-header-1 cluster-worker-1
- 配置环境变量。
- 执行如下命令打开 /etc/profile 配置文件。
vim /etc/profile
- 在 /etc/profile 配置文件中,配置如下信息。
exportHADOOP_HOME=/usr/local/hadoop-2.7.2 exportHADOOP_CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath)exportHADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop exportPATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
- 执行如下命令使配置生效。
source /etc/profile
- 配置文件存储HDFS版的Java SDK。
您可以单击此处,下载文件存储HDFS版最新的Java SDK,将其部署在Hadoop生态系统组件的CLASSPATH上,详情请参见挂载文件系统。
cp aliyun-sdk-dfs-x.y.z.jar /usr/local/hadoop-2.7.2/share/hadoop/hdfs
- 执行如下命令将${HADOOP_HOME}文件夹同步到集群的其他节点的相同目录下,并按照本章节步骤 6对集群其他节点配置Hadoop的环境变量。
scp -r hadoop-2.7.2/ root@cluster-worker-1:/usr/local/
四 验证 Hadoop 配置
完成 Hadoop 配置后,不需要格式化 NameNode,也不需要使用 start-dfs.sh 来启动HDFS相关服务。如需使用 YARN 服务,只需在 ResourceManager 节点启动 YARN 服务,验证 Hadoop 配置成功的方法请参见文档:验证安装。
五 配置 Flink
- 执行如下命令解压Flink压缩包到指定目录。
tar -zxf flink-1.12.5-bin-scala_2.11.tgz -C /usr/local/
- 注意事项
- 在使用 Flink 之前必须在您的集群环境变量中配置HADOOP_HOME,HADOOP_CLASSPATH和HADOOP_CONF_DIR,详情请参见本文档第三章节中的步骤 6。
- 如果您需要对 Flink 进行额外的配置,请参考官方文档:配置操作指南
六 验证 Flink 配置
## 在文件存储HDFS版上生成测试数据${HADOOP_HOME}/bin/hadoop jar ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar \ randomtextwriter \ -D mapreduce.randomtextwriter.totalbytes=10240 \ -D mapreduce.randomtextwriter.bytespermap=1024 \ dfs://f-xxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/input
## 使用Flink自带的WordCount.jar对文件存储HDFS版上的数据进行读取计算,并将结果写回到文件存储HDFS版## 检查环境变量中是否包含 HADOOP_CLASSPATHecho$HADOOP_CLASSPATH## 如果环境变量中不包含 HADOOP_CLASSPATHexportHADOOP_CLASSPATH=$HADOOP_CLASSPATH:$($HADOOP_HOME/bin/hadoop classpath)## 启动 yarn session./flink-1.12.5/bin/yarn-session.sh --detached## 执行WordCount.jar./flink-1.12.5/bin/flink run \ ./flink-1.12.5/examples/batch/WordCount.jar \ --input dfs://f-xxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/flink-test/input \ --output dfs://f-xxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/flink-test/output
## 查看输出在文件存储HDFS版实例上的部分结果${HADOOP_HOME}/bin/hadoop fs -cat dfs://f-xxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/flink-test/output | tail -20
了解更多关于文件存储HDFS版的产品信息,欢迎访问https://www.aliyun.com/product/alidfs
如果您对文件存储HDFS版有任何问题,欢迎钉钉扫描以下二维码加入文件存储HDFS版技术交流群。