1、默认情况下,Linux会自带安装Python,可以运行python —version命令查看

image.png
我们看到Linux中已经自带了Python2.7.5。再次运行python命令后就可以使用python命令窗口了(Ctrl+D退出python命令窗口)

2、查看Linux默认安装的Python位置

image.png
看到/usr/bin/python和/usr/bin/python2都是软链接,/usr/bin/python指向/usr/bin/python2,而/usr/bin/python2最终又指向/usr/bin/python2.7。所以运行python/python2/python2.7是一样的。
image.png

3、安装python3

1) 下载地址

登录https://www.python.org/downloads/source/,找到对应版本(我们以Python 3.6.5为例)如图:
image.png
下载Python-3.6.5.tgz

2) 文件上传解压

将文件上传到Linux系统的某个目录下,根据自己情况上传,本例上传到了/home/hadoop目录下
image.png

3) 准备编译环境

  1. sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

安装python需要的依赖。成功后(Complete!),如图:
image.png
如果python是3.7版本,还需要安装libffi-devel。整个编译过程1分钟左右。

4) 编译安装

执行cd Python-3.6.5进入解压后的Python-3.6.5目录下,依次执行如下三个命令(使用root用户):

  1. # --prefix指定编译后的文件存放位置
  2. ./configure --prefix=/home/hadoop/python3.6.5
  3. make
  4. make install

image.png
我们看到,同时安装了setuptools和pip工具。进入到/home/hadoop/python3.6.5安装目录
image.png

5) 创建软链接

还记得开始,Linux已经安装了python2.7.5,这里我们不能将它删除,如果删除,系统可能会出现问题。我们只需要按照与Python2.7.5相同的方式为Python3.6.5创建一个软链接即可,我们把软链接放到/usr/local/bin目录下

  1. sudo ln -s /home/hadoop/python3.6.5/bin/python3 /usr/local/bin/python3

image.png
安装成功!当然此时还是可以使用Python2.7.5版本(运行python/python2/python2.7即可)。

6) 配置环境变量

配置环境变量主要是能快速使用pip3安装命令。

  1. cd /etc/profile.d
  2. #创建一个文件(名字任意)
  3. vim py3.sh
  4. #配置python
  5. export PYTHON_HOME=/home/hadoop/python3.6.5
  6. export PATH=$PYTHON_HOME/bin:$PATH
  7. sudo chown root:root /etc/profile.d/py3.sh
  8. sudo chmod 644 /etc/profile.d/py3.sh
  9. source /etc/profile

4、pyspark设置python的版本

一般情况下,spark内置的版本,与操作系统中的版本一致

  1. [root@sjsy-hh202-zbxh43w ~]# pyspark
  2. Python 2.7.5 (default, Oct 30 2018, 23:45:53)
  3. [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
  4. Type "help", "copyright", "credits" or "license" for more information.
  5. 2021-07-21 11:00:23 WARN Utils:66 - Your hostname, master resolves to a loopback address: 127.0.0.1; using 192.168.1.100 instead (on interface ens33)
  6. 2021-07-21 11:00:23 WARN Utils:66 - Set SPARK_LOCAL_IP if you need to bind to another address
  7. 2021-07-21 11:00:24 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
  8. Setting default log level to "WARN".
  9. To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
  10. Welcome to
  11. ____ __
  12. / __/__ ___ _____/ /__
  13. _\ \/ _ \/ _ `/ __/ '_/
  14. /__ / .__/\_,_/_/ /_/\_\ version 2.3.0
  15. /_/
  16. Using Python version 2.7.5 (default, Oct 30 2018 23:45:53)
  17. SparkSession available as 'spark'.
  18. >>>
  1. 修改spark-env.sh文件,在末尾添加export PYSPARK_PYTHON=/usr/local/bin/python3
  2. 修改spark安装包bin目录下的pyspark,修改下图红色方框的位置,将原来PYSPARK_PYTHON=python改成PYSPARK_PYTHON=python3 (目前不修改不影响使用)
    [hadoop@master bin]$ vim pyspark
    if [[ -z "$PYSPARK_PYTHON" ]]; then
    if [[ $PYSPARK_DRIVER_PYTHON == *ipython* && ! $WORKS_WITH_IPYTHON ]]; then
     echo "IPython requires Python 2.7+; please install python2.7 or set PYSPARK_PYTHON" 1>&2
     exit 1
    else
     PYSPARK_PYTHON=python3
    fi
    fi
    export PYSPARK_PYTHON
    

    启动pyspark,版本已经更换

    image.png