PySpark Pythonのランタイム環境のコードを指定する方法0485-

ヒント:あなたがクリアされていない画像を表示するためにコンピュータを使用する場合は、拡大表示の高精細画像への記事のクリック写真のテキストを開くために携帯電話を使用することができます。
Fayson GitHubの:
https://github.com/fayson/cdhproject
ヒント:ブロック部分は、ああ見スライドすることができます

客観的に書かれた文書1

「前回の記事でFayson PySpark Pythonランタイム環境を指定する方法0483-は」Spark2提出オペレーティング環境を使用して提出する際にPythonが指定について説明します。一部のユーザーは、この記事はPySpark Pythonのランタイム環境のコードを指定する方法について説明していること、PySpark PythonコードでFaysonを動作環境を指定する必要があります。

  • テスト環境

1.RedHat7.2

2.CMとCDHバージョン5.15.0

3.Python2.7.5和Python3.6

2 Python環境を準備します

ここでFayson Python2環境と2のpython3、環境のために、次の準備手順を準備します。

インストールパッケージをダウンロードするには、2つのアナコンダ公式サイトではなく、ここで紹介する中、インストールプロセスPython2のpython3 Fayson 1.

Anaconda3-5.2.0-Linux-x86_64.sh 2つのインストールパッケージとAnaconda2-5.3.1-Linux-x86_64.sh

2. Python2 Pythonn3 2つの環境とPython2とのpython3下のインストールディレクトリにパッケージ化

それぞれ、2つの環境をパッケージ化したzipコマンドを使用します

[root@cdh05 anaconda2]# cd /opt/cloudera/anaconda2
[root@cdh05 anaconda2]# zip -r /data/disk1/anaconda2.zip ./*

[root@cdh05 anaconda3]# cd /opt/cloudera/anaconda3
[root@cdh05 anaconda3]# zip -r /data/disk1/anaconda3.zip ./*

注:これは、Pythonが圧縮次のインストールディレクトリにある親ディレクトリのPythonを持っていませんでした

3.は、Python2とのpython3がHDFSにアップロード準備しました

[root@cdh05 disk1]# hadoop fs -put anaconda2.zip /tmp
[root@cdh05 disk1]# hadoop fs -put anaconda3.zip /tmp
[root@cdh05 disk1]# hadoop fs -ls /tmp/anaconda*

これらのステップの完了は、あなたがコードを送信すると、その後の動作環境を指定し、準備ができPySparkの動作環境です。

3サンプル・ジョブPySparkを準備

ここではいくつかの違いが指定された動作環境Pythonの例のコードを増やす前の記事のサンプルコードは、単純なPI PySparkコードを実行するために説明の例であり、サンプルコードは次のようです:

from __future__ import print_function
import sys
from random import random
from operator import add
from pyspark.sql import SparkSession

spark = SparkSession \
    .builder \
    .appName("PythonPi") \
    .config("spark.pyspark.python", "python/bin/python3.6") \
    .config("spark.pyspark.driver.python", "python3.6") \
    .config("spark.yarn.dist.archives", "hdfs://nameservice1/tmp/anaconda3.zip#python") \
    .config("spark.driver.memory", "2g") \
    .config("spark.executor.memory", "4g") \
    .getOrCreate()
#.config("spark.pyspark.driver.python", "/opt/cloudera/anaconda2/bin/python2.7")\

partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2
n = 100000 * partitions

def f(_):
    x = random() * 2 - 1
    y = random() * 2 - 1
    return 1 if x ** 2 + y ** 2 < 1 else 0

count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add)
print("Pi is roughly %f" % (4.0 * count / n))

spark.stop()

例4の実行

私たちは、最初に、ノードはSpark2ゲートウェイクライアントの構成を有していることを確認する必要があることを、Pythonコードを実行するときに、それ以外の場合はエラーモジュール「SparkSession」を見つけることができません、ロード・スパークとpyspark環境変数を実行する前に、実行Pythonコードを実行します。

コマンド実行環境変数スパークとPythonをロードするには、次のコマンドで1

export SPARK_HOME=/opt/cloudera/parcels/SPARK2/lib/spark2
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$SPARK_HOME/python/lib/pyspark.zip:$PYTHONPATH

Pythonコードpi_test.pyそれを使用してコマンドラインを実行します2.

[root@cdh05 ~]# python pi_test.py 

ジョブ送信成功

3.操作が成功しました

4.レビューPython環境の求人

5まとめ

現在、コード実行PySparkコードを実行するノード上の環境変数があることを確認するためにコマンドのpythonスパーク必要性を使用してください。

あなたは、環境変数にスパークコンパイルPython環境をロードされるコードを実行する前に、SPARK_HOMEとPYTHONPATH環境変数を指定する必要があります。

動作環境Python2とHDFSにパッケージのpython3 PySparkした後、プロセスは遅く、過去に比べてHDFSからPython環境を取得する必要がありますのいくつかを動作を開始します。

ヒント:ブロックセクションには、ああは見るために周りにスライドすることができ
、オープン永遠の平和のための彼の秘密に続いサンに行くために、pepole運命のために、世界の心臓部です。

公開された315元の記事 ウォン称賛11 ビュー20000 +

おすすめ

転載: blog.csdn.net/Hadoop_SC/article/details/103945719