ContOS7安装Python3&替换DataX的pPthon2脚本为Python3脚本


前言

DataX用了3个Python脚本来启动调度,官方版本是依赖Python2的,但是Python2已经不维护升级,刚写了个解析DataX日志的脚本也是用Python3,上次部署DataX-Web的时候发现已经有人用Python3重写了DataX的那三个Python脚本,因此决定把现在的ETL服务器Python环境升级到Python3。

CentOS7安装配置Python3

CentOS7自带Python2版本,按网上教程一步步安装配置:

首先到Python下载目录找到自己想要的Python版本,然后右键复制下载链接:

1601003851688

进入CentOS,用wget命令下载:

 wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz

1601002838861

然后安装Linux依赖环境,一堆包,直接复制进去:

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc libffi-devel gcc make automake autoconf libtool libffi-devel

安装完成后如图提示:

1601004099599

接下来解压下载来的Python安装包:

tar zxvf Python-3.7.9.tgz

解压后看到多了一个文件夹,可以进去看看内容:

1601004374449

我们创建一个python3的安装目录,并配置安装目录,然后执行安装:

#创建安装目录
mkdir /usr/local/python3
#进入解压后的目录,配置安装目录
./configure --prefix=/usr/local/python3
#执行安装动作
make && make install

安装完后,创建软连接,然后可以测试一下是否可以用了:

ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3

1601192225075

上图结果代表python已经安装成功,但是仍有几个小的点需要处理:

  • 修改默认python为python3,修改python2的使用命令为python2:
mv /usr/bin/python /usr/bin/python2
ln -s /usr/local/bin/python3 /usr/bin/python
  • 修改默认pip为pip3
ln -s /usr/local/bin/pip3 /usr/bin/pip
  • yum不支持python3,因此需要修改使其默认使用python2
#修改/usr/libexec/urlgrabber-ext-down文件
vi /usr/libexec/urlgrabber-ext-down
#修改/usr/bin/yum
vi /usr/bin/yum

DataX调整为使用Python3

在DataX-Web项目下,已经有基于Python3改好的Datax调用文件,因此只需要替换掉DataX里面bin文件夹下的三个Py文件即可。

Python3的DataX文件在DataX-Web源码的/datax-web/doc/datax-web/datax-python3文件夹中,替换DataX安装目录的bin文件夹下三个文件:

mv /datax-web/doc/datax-web/datax-python3/datax.py /root/DataX/target/datax-hashdata/datax/bin/datax.py

mv /datax-web/doc/datax-web/datax-python3/dxprof.py /root/DataX/target/datax-hashdata/datax/bin/dxprof.py

mv /datax-web/doc/datax-web/datax-python3/perftrace.py /root/DataX/target/datax-hashdata/datax/bin/perftrace.py

替换之前建议先把原来的文件备个份:

mv /root/DataX/target/datax-hashdata/datax/bin  /root/DataX/target/datax-hashdata/datax/bin_python2_bak

调整完成后,执行python命令测试一下:

cd /root/DataX/target/datax-hashdata/datax/bin
python datax.py ../job/job.json

如果成功,会有如下结果显示:

1601201192690


文章作者: 无咎
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 无咎 !
评论
 上一篇
pandas数据处理笔记(一) pandas数据处理笔记(一)
pandas是Python最常用的数据分析处理包,使用起来也非常方便,在此做下记录。 案例场景客户公司使用我司系统,有部分数据需要从第三方公司的ERP系统获取,ERP系统没有程序接口获取数据,也不提供数据库访问权限,需要从不同报表导出数据
2021-03-07
下一篇 
CentOS7安装和测试mssql-tools的bcp大数据导出 CentOS7安装和测试mssql-tools的bcp大数据导出
前言我司要进行大量数据抽取的场景主要是SQL Server到GreenPlum,已知GP的GPLOAD可以高效加载数据到GP,那么SQL Server有没有什么高效导出数据的工具呢?到微软的SQL文档里面查了一下,果然找到了一个叫‘大容量复
2020-07-27
  目录