CDH 使用PySpark

翻译: https://www.cloudera.com/documentation/enterprise/latest/topics/spark_pyspark.html
版本: 5.14.2

Apache Spark使用非JVM语言(如Python)提供API。许多数据科学家都使用Python,因为它拥有丰富多样的数值库,并具有统计,机器学习或优化的重点。

继续阅读:

  • 运行Spark Python应用程序
  • Spark和IPython和Jupyter笔记本

运行Spark Python应用程序

通过Java和Scala访问Spark提供了许多优点:通过在JVM内部运行平台独立性,代码及其依赖项的独立打包到JAR文件中,以及更高的性能,因为Spark本身在JVM中运行。使用Spark Python API时会失去这些优势。

Python应用程序,管理依赖关系并使它们可在群集上运行可能很困难。要确定群集上需要哪些依赖项,您必须了解Spark代码应用程序在整个群集中的 运行。如果您定义的Python转换使用任何第三方库(如NumPy或nltk),则Spark在远程执行时需要访问这些库。

继续阅读:

  • 设置Python路径
  • 自包含的依赖关系
  • 复杂的依赖关系
  • 分发egg文件的限制
  • 安装和维护Python环境

设置Python路径

把想要使用的Python包放在集群中的一致位置后,请按照以下方式配置环境变量为Python可执行文件的路径:

  • 设置Python执行程序路径 PYSPARK_PYTHON 环境变量以及Python驱动程序路径PYSPARK_DRIVER_PYTHON 环境变量。无论您是使用yarn客户端还是yarn群集模式,这些设置都适用。
  • 如果您正在使用yarn群集模式,除了上述之外,还要在spark-defaults.conf(使用安全阀)设置 spark.yarn.appMasterEnv.PYSPARK_PYTHON and spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON 为相同的路径。

要一致地使用这些变量,请添加相应的变量export 声明:

  • Anaconda parcel - export variable /opt/cloudera/parcels/Anaconda/bin/python
  • Virtual environment - export variable /path/to/mynewenv/bin/python

至 spark-env.sh ,检查其他用户是否已经使用条件测试设置了变量,例如:

if [ -z "${PYSPARK_PYTHON}" ]; then
export PYSPARK_PYTHON=
fi

在Cloudera Manager中,设置环境变量spark-env.sh 如下:

最低要求的角色: 配置器(也由群集管理员 提供,完全管理员)

  1. 转到Spark服务。
  2. 单击配置选项卡。
  3. 为spark-conf / spark-env.sh搜索Spark Service高级配置代码段(安全阀)。
  4. 将变量添加到属性。
  5. 点击保存更改以提交更改。
  6. 重新启动服务。
  7. 部署客户端配置。

在命令行中,设置环境变量/etc/spark/conf/spark-env.sh.

自包含的依赖关系

未完!

你可能感兴趣的:(CDH 使用PySpark)