30万奖金等你拿!Apache Flink 极客挑战赛入门指南(附Demo)

最近在参加第二届 Apache Flink 极客挑战赛,比赛要求各队利用大数据 + AI 技术来帮助解决疫情防控的挑战,官方提供的计算框架是 Apache Flink + Analytics Zoo。

由于本次大赛既要用到大数据技术,又要用到 AI 技术,这使得只有单一技术背景的同学在搭建本地调试环境时遇到了不少问题。所以我把自己配置本地环境的流程和需要注意的地方记录下来,以供各位参赛同学参考,希望大家能将自己的精力更多集中在算法开发和迭代上。

注:希望大家在参考环境搭建流程时,不要直接照搬照抄;多理解其中的原理,针对自己的机器,要能做出一些细节上的调整。

环境搭建

Linux 18.04

官方要求的操作系统是 Linux 18.04,我本地配置环境用的是 Linux 16.04,亲测也能成功。

注:千万不要在 macOS 或者 windows 上直接配置环境,因为本次比赛依赖的 pyproxima 只提供了 linux 的安装包。如果只有 macOS 或者 windows,可以搭一个 linux 18.04 的虚拟机,或者使用 docker。

Java 1.8+

建议安装 java1.8 (java 8)。

java 1.8+ 包括 java 8,java 9,······,java 14,我开始装的是 java 14,出现了 kafka 2.3 不能启动等异常,最后换成了 java 8。

  • 从 java 官网下载 jdk-8u261-linux-x64.tar.gz

  • 解压上面下载的压缩包:tar xzf jdk-8u261-linux-x64.tar.gz

  • 配置环境变量:



export JAVA_HOME=/data/gaohongjie1/usr/local/jdk1.8.0_261  # jdk-8u261-linux-x64.tar.gz 解压后的路径export PATH=$JAVA_HOME/bin:$PATH


  • 运行 java -version 测试是否安装成功


Python 3.7

如果系统中的 Python 恰好为 3.7,直接使用系统中的 Python 即可。

如果系统默认 Python 不是 3.7,则需要搭建自己的 Python 环境。我这里用的是 Anaconda。

  • 安装 Anaconda:

    https://docs.anaconda.com/anaconda/install/linux/

  • 创建一个名为 Flink 的 Python 虚拟环境:

    conda create -n flink python=3.7 -y

  • 激活虚拟环境:

    conda activate flink

  • 运行 which python 测试是否激活成功

Flink 1.11.0

  • 下载压缩包并解压



wget https://archive.apache.org/dist/flink/flink-1.11.0/flink-1.11.0-bin-scala_2.11.tgztar xzf flink-1.11.0-bin-scala_2.11.tgz


  • 配置环境变量



export FLINK_HOME=/data/gaohongjie1/usr/local/flink-1.11.0export PATH=$PATH:$FLINK_HOME/bin


  • 根据本机的资源(CPU、内存大小)修改 flink-1.11.0/conf/flink-conf.yaml



taskmanager.numberOfTaskSlots: 120jobmanager.memory.process.size: 4096mtaskmanager.memory.process.size: 409600m taskmanager.memory.task.off-heap.size: 204800m


  • 测试

    • Start: 运行 start-cluster.sh

    • Stop: 运行 stop-cluster.sh


Pyflink 1.11.0

pip install apache-flink==1.11.0

如果下载速度太慢,可以考虑使用清华源或者阿里源等。

使用清华源安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple apache-flink==1.11.0

Kafka 2.x

  • 下载压缩包并解压



wget https://archive.apache.org/dist/kafka/2.3.0/kafka_2.11-2.3.0.tgztar xzf kafka_2.11-2.3.0.tgz


  • 配置环境变量



export KAFKA_HOME=/data/gaohongjie1/usr/local/kafka_2.11-2.3.0export PATH=$PATH:$KAFKA_HOME/bin


  • 测试

    • 启动 zookeeper

    • 选做:修改 kafka_2.11-2.3.0/config/zookeeper.properties 中的 dataDir

    • 运行 zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties


  • 启动 Kafka

    • 不要关闭 Zookeeper,另开一个 terminal 进行以下操作

    • 选做:修改 kafka_2.11-2.3.0/config/server.properties 中的 log.dirs

    • 运行:

      kafka-server-start.sh $KAFKA_HOME/config/server.properties


AI Flow

wget https://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531800/ai_flow/ai_flow-0.1-py3-none-any.whlpip install ai_flow-0.1-py3-none-any.whl # pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ai_flow-0.1-py3-none-any.whl


Pyproxima

wget https://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531800/proxima-tianchi-master-668a0a87cb2a4aa1c68443b1ab05ee5a80008cb4.zip
unzip proxima-tianchi-master-668a0a87cb2a4aa1c68443b1ab05ee5a80008cb4.zip
pip install proxima-tianchi-master-668a0a87cb2a4aa1c68443b1ab05ee5a80008cb4/python/pyproxima2-2.2.0_lite-cp37-cp37m-linux_x86_64.whl


■ Redis 5.0.5
  • 安装



wget http://download.redis.io/releases/redis-5.0.5.tar.gztar xzf redis-5.0.5.tar.gzcd redis-5.0.5make


  • 选做:make test 运行 redis 的单元测试

  • 配置环境变量



export REDIS_HOME=/data/gaohongjie1/usr/local/redis-5.0.5export PATH=$PATH:$REDIS_HOME/src


  • 测试:运行 redis-server


■ Flink 1.11.0

见上文「Flink 1.11.0」。


■ cluster serving
  • 安装



wget https://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531800/analytics_zoo_serving-0.9.0.dev0-py3-none-any.whlpip install analytics_zoo_serving-0.9.0.dev0-py3-none-any.whl # pip install -i https://pypi.tuna.tsinghua.edu.cn/simple analytics_zoo_serving-0.9.0.dev0-py3-none-any.whlmkdir cluster-servingcd cluster-servingcluster-serving-init # 这里会下载两个jar文件,生成config.yaml


  • 修改 config.yaml



# 修改cluster-serving/config.yamlmodel:    path: /data/gaohongjie1/projects/tianchi-flink/package/python_codes/model


  • 配置环境变量



export CS_PATH=/data/gaohongjie1/usr/local/cluster-servingexport SERVING_HTTP_PATH=$CS_PATH/analytics-zoo-bigdl_0.10.0-spark_2.4.3-0.9.0-20200812.210515-69-http.jarexport CLUSTER_SERVING_PATH=/tmp/cluster_serving
Kafka-python
pip install kafka-python

运行 Demo

  • 下载官方提供的 demo

    我的 demo 存放路径:/data/gaohongjie1/projects/tianchi_ai_flow)

  • 下载数据集 train_data.csv 和 label_file.csv 文件到 data_set 目录(/data/gaohongjie1/projects/tianchi_ai_flow/data_set)
    https://tianchi.aliyun.com/competition/entrance/531800/information 

  • 配置环境变量



export PYTHONPATH=/data/gaohongjie1/projects/tianchi_ai_flow/package/python_codesexport ENV_HOME=/data/gaohongjie1/projects/tianchi_ai_flowexport TASK_ID=000


  • 修改 source.yaml



dataset_uri: /data/gaohongjie1/projects/tianchi_ai_flow/data_set/second_test_data.csv


  • 修改 demo 代码

    • tianchi_main.py: job_1_cluster_serving_channel = af.cluster_serving(model_info=train_model_meta, parallelism=4)

    • tianchi_executor.py: stream_env.set_parallelism(20)

    • demo中出现的所有 /usr/bin/python3 都改成自己的python路径

  • 启动依赖的服务



redis-server --daemonize yesstart-cluster.shzookeeper-server-start.sh -daemon $KAFKA_HOME/config/zookeeper.propertieskafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties


  • python /data/gaohongjie1/projects/tianchi_ai_flow/ai_flow_master.py

  • python /data/gaohongjie1/projects/tianchi_ai_flow/kafka-source.py

    • 这里可能会报错,报错信息包含 return '<SimpleProducer batch=%s>' % self.async 字样。这是因为前面在执行 pip install ai_flow-0.1-py3-none-any.whl 的时候,AI Flow 的依赖包有kafka-1.3.5。而 kafka-1.3.5 与 python 3.7 是不兼容的。

    • 解决方案:先执行 pip uninstall kafka kafka-python,再执行

      pip install kafka-python

  • python/data/gaohongjie1/projects/tianchi_ai_flow/package/python_codes/tianchi_main.py


总结

本文主要记录了我搭建本地调试环境的流程,介绍了如何跑通 Demo。希望本文对大家能有所帮助,让大家早日投入到算法的开发和迭代中去。

# 征文活动 #

第二届 Apache Flink 极客挑战赛已正式开赛,大家在参赛过程中有任何心得体会或更高效实用的技能分享欢迎投稿 Flink 社区,一经征用,即可获得 Flink 社区周边大礼包!

  • 如何投稿:微信联系小松鼠(ID:Ververica2019)

  • 活动时间:即日起至11月28日(大赛答辩结束)

(酷炫周边展示)

Tips:周边大礼包奖品以 Flink 社区最终公布的内容为准,可能因库存稍微进行调整,特此声明!


  30 万奖金等你拿!  

Apache Flink 极客挑战赛

万众瞩目的第二届 Apache Flink 极客挑战赛来啦!本次大赛全面升级,重量级助阵嘉宾专业指导,强大的资源配置供你发挥创意,还有 30w 丰厚奖金等你带走~聚焦  Flink 与 AI 技术的应用实践,挑战疫情防控的世界级难题,你准备好了么?

(点击图片可了解更多大赛信息)

▼ 钉钉扫码,进群交流 ▼  

(Flink 极客挑战赛选手交流群)

戳我报名!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值