本文介绍如何在挂载文件存储HDFS版的Hadoop集群上安装及使用Apache Flink。
前提条件
- 已开通文件存储HDFS版服务并创建文件系统实例和挂载点。具体操作,请参见文件存储HDFS版快速入门。
- 已为Hadoop集群所有节点安装JDK,且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配置文件。
- 修改core-site.xml配置文件。
- 修改yarn-site.xml配置文件。
- 修改slaves配置文件。
- 配置环境变量。
- 配置文件存储HDFS版的Java SDK。
您可以下载最新的文件存储HDFS版的Java SDK,将其部署在Hadoop生态系统组件的CLASSPATH上,具体操作,请参见使用ECS挂载HDFS文件系统。
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/ hadoop@cluster-worker-1:/usr/local/
步骤二:验证Hadoop配置
完成Hadoop配置后,不需要格式化NameNode,也不需要使用start-dfs.sh来启动HDFS相关服务。如需使用YARN服务,只需在ResourceManager节点启动YARN服务。具体验证Hadoop配置成功的方法,请参见验证安装。
步骤三:配置Flink
步骤四:验证Flink配置
使用Flink自带的WordCount.jar对文件存储HDFS版上的数据进行读取,并将计算结果写入到文件存储HDFS版。
- 在文件存储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
其中,
f-xxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com
为您的文件存储HDFS版的挂载点,请根据实际情况替换。 - 执行以下命令,检查环境变量中是否包含HADOOP_CLASSPATH。
echo $HADOOP_CLASSPATH
如果环境变量中不包含HADOOP_CLASSPATH,执行以下命令,配置HADOOP_CLASSPATH。export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$($HADOOP_HOME/bin/hadoop classpath)
- 执行以下命,启动Flink Session on YARN。
./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
其中,
f-xxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com
为您的文件存储HDFS版的挂载点地址,请根据实际情况替换。 - 查看输出在文件存储HDFS版实例上的部分结果。
${HADOOP_HOME}/bin/hadoop fs -cat dfs://f-xxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/flink-test/output | tail -20
如果返回以下类似信息,则表示Flink配置成功。