Home 数据分析 Storm中使用PyPy解释器调用streamparse模块

        在Storm中可选用streamparse和pystorm模块来帮助我们用Python做业务开发,但是由于Python解释器性能的问题,在处理大量数据时就显的力不从心,因此我们考虑使用PyPy解释器来替代Python,具体步骤如下。
 
部署环境:
系统:Ubuntu 18.04 LTS
内核:4.15.0-22-generic
Storm:apache-storm-1.1.0
Zookeeper:zookeeper-3.4.11
Java-jdk:1.8.0_171
Python:2.7.15rc1
PyPy:6.0.0 with GCC 6.2.0 20160901
 
安装最新版pypy:
官网下载地址:https://pypy.org/download.html
这里我们选择已编译好的版本下载,解压后防止在/opt目录下,在/etc/profile设置环境变量为:export PATH=”$PATH:/opt/pypy2-v6.0.0-linux64/bin”
当然也可以选择自己编译,但是很漫长,而且编译过程需要至少5GB内存。
 
安装PyPy版的pip
$ wget https://bootstrap.pypa.io/get-pip.py
$ pypy get-pip.py
 
安装PyPy下的virtualenv环境
$ pypy -m pip install virtualenv
 
安装Python环境下的streamparse
之所以要安装Python下的streamparse是需要给Storm提交拓扑,最终达到的效果就是我们在Python环境下运行streamparse后把拓扑提交给Storm,让Storm中的streamparse调用PyPy来解释代码,还是使用pip来安装,不过使用的是Python的pip了。
$ pip install streamparse
 
修改拓扑配置,使用PyPy
在streamparse工程中,我们在拓扑定义脚本中加入以下配置:
class WordCount(Topology):
    config = {“virtualenv_flags”: “-p pypy”}
    word_spout = WordSpout.spec()
 
提交拓扑
最后所有其余配置完成后,使用以下命令提交至Storm。
$ sparse submit
 
查看运行状态
使用ps命令查看Storm节点中是否启动了pypy进程:
$ ps aux | grep pypy

打赏
0 comment

You may also like

Leave a Comment

*

code

error: 未经允许禁止转载!