スパークプログラミングの基礎( Python版)


1 .スパークのインストール環境設定


2 .スパークのインストール環境設定


3 . Ubuntuの下でのPythonバージョン管理とサードパーティ製のインストール


Windowsの下でPyCharとUbuntuの間の同期接続をマスターします


ファイルシステムからスパークによって読み取られたデータをマスターする


リファレンスサイト


https://spark.apache.org/docs/1.1.1/quick-start.html

1書き込み:実験環境


Hadoop環境が必要です。



Operating system: Ubuntu 16 04;
Spark version: 2.4.6;
Hadoop version: 2.7.2.
Python version: 3.5.
ここをクリックしてください:spark-2.4.6-bin-without-hadoop.tgz

2 .スパークのインストール環境設定


スパークパッケージを解凍して移動する


ubuntu@adserver:~$ tar zxf spark-2.4.6-bin-without-hadoop.tgz 
ubuntu@adserver:~$ ls -lh
total 536M
-rw-rw-r--  1 ubuntu ubuntu 203M Mar 28 09:59 hadoop-2.7.2.tar.gz
-rw-rw-r--  1 ubuntu ubuntu 173M Mar 28 09:11 jdk-8u77-linux-x64.tar.gz
-rw-rw-r--  1 ubuntu ubuntu  458 Mar 28 13:31 jps
drwxr-xr-x 13 ubuntu ubuntu 4.0K May 30  2020 spark-2.4.6-bin-without-hadoop
-rw-rw-r--  1 ubuntu ubuntu 161M Mar 26 19:34 spark-2.4.6-bin-without-hadoop.tgz
ubuntu@adserver:~$ sudo mv spark-2.4.6-bin-without-hadoop /usr/local/
ubuntu@adserver:~$ cd /usr/local/
ubuntu@adserver:/usr/local$ sudo mv spark-2.4.6-bin-without-hadoop/ spark
ubuntu@adserver:/usr/local$ ls -lh spark/

2 .変更スパーク環境変数ファイル


ubuntu@adserver:~$ cd /usr/local/spark/conf/
ubuntu@adserver:/usr/local/spark/conf$ pwd
/usr/local/spark/conf
ubuntu@adserver:/usr/local/spark/conf$ cp spark-env.sh.template spark-env.sh
ubuntu@adserver:/usr/local/spark/conf$ vi spark-env.sh

スパークenv shファイル( vi ./conf/スパークenv . sh )を編集します.
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop-2.7.2/bin/hadoop classpath)

上記の構成情報により、スパークはHadoop分散ファイルシステムHDFSにデータを格納したり、HDFSからデータを読み込むことができます.上記の情報が設定されていない場合、スパークはローカルデータを読み書きすることができますが、HDFSデータを読み書きできません.構成の後、それは直接Hadoopのようなスタートアップコマンドを実行せずに使用することができます.スパークによって提供される例を実行することによってスパークが正常にインストールされているかどうかを確認します.
実行中に多くの実行情報が出力され、出力結果は見つからない.grepコマンドを使ってフィルタリングすることができます(コマンドの2 >& 1はstdoutにすべての情報を出力することができます.そうでなければ出力ログの性質によって画面に出力されます).
ubuntu@adserver:/usr/local/spark$ ./bin/run-example SparkPi 2>&1 | grep "Pi is"

/usr/local/スパーク/bin/PySparkファイルの内容を変更する
行45 PythonをPython 3に変更する

実行コマンドsudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
ubuntu@adserver:/usr/local/spark/bin$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

3 . Ubuntuの下でのPythonバージョン管理とサードパーティ製のインストール


whereis python3  #  Confirm Python 3 directory
cd  /usr/lib/python3.5   # Switch directory 
sudo apt-get install python3-pip   #  install pip 
sudo pip3 install -i https://pypi.doubanio.com/simple matplotlib  #  install matplotlib 
ubuntu@adserver:~$ whereis python3
python3: /usr/bin/python3 /usr/bin/python3.5 /usr/bin/python3.5m /usr/lib/python3 /usr/lib/python3.5 /etc/python3 /etc/python3.5 /usr/local/lib/python3.5 /usr/share/python3 /usr/share/man/man1/python3.1.gz
ubuntu@adserver:~$ cd /usr/lib/python3.5/
ubuntu@adserver:/usr/lib/python3.5$ sudo apt-get install python3-pip
ubuntu@adserver:/usr/lib/python3.5$ sudo pip3 install -i https://pypi.doubanio.com/simple matplotlib


Windowsの下でPyCharとUbuntuの間の同期接続をマスターします


オープンPyChartとオープンファイル--設定--


をクリックし、SSHインタプリタを選択してサーバーを設定します仮想マシンUbuntuのIPアドレス、ユーザ名とパスワードを入力します


ファイルシステムからスパークによって読み取られたデータをマスターする


PySparkのLinuxシステムのローカルファイル"/ home / hadoop / test . txt "を読み込み、ファイルの行数を数えます。


最初にテストファイルを作成します
$ vi /home/hadoop/test.txt
this is line 1
this is line 2
this is line 3
this is line 4

ubuntu@adserver:/usr/local/spark/bin$ pwd
/usr/local/spark/bin
ubuntu@adserver:/usr/local/spark/bin$ ./pyspark 
Python 3.5.2 (default, Jan 26 2021, 13:30:48) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
22/03/28 15:57:23 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\   version 2.4.6
      /_/

Using Python version 3.5.2 (default, Jan 26 2021 13:30:48)
SparkSession available as 'spark'.
>>> lines = sc.textFile("file:/home/hadoop/test.txt")
>>> lines.count()
4
>>> 

2 ) HDFSシステムファイル"/ user / hadoop / test . txt "を読んでください(ファイルが存在しない場合は、最初に作成してください)。


ubuntu@adserver:~$ cd /home/hadoop/
ubuntu@adserver:/home/hadoop$ hadoop fs -ls /
Found 1 items
drwxrwx---   - ubuntu supergroup          0 2022-03-28 17:15 /tmp
ubuntu@adserver:/home/hadoop$ hadoop fs -mkdir -p /user/hadoop
ubuntu@adserver:/home/hadoop$ hadoop fs -put test.txt /user/hadoop/
ubuntu@adserver:/home/hadoop$ hadoop fs -ls /user/hadoop/
Found 1 items
-rw-r--r--   3 ubuntu supergroup         60 2022-03-28 17:17 /user/hadoop/test.txt
ubuntu@adserver:/home/hadoop$ /usr/local/spark/bin/pyspark 
>>> lines = sc.textFile("/user/hadoop/test.txt")     
>>> lines.count()

3 )独立したアプリケーションを作成し、HDFSシステムファイル"/ user / hadoop / test . txt "を読んでください(ファイルが存在しない場合は、最初に作成してください)。


ubuntu@adserver:/home/hadoop$ sudo vi st-app.py

from pyspark import SparkContext

logFile = "/user/hadoop/test.txt"  # Should be some file on your system
sc = SparkContext("local", "Simple App")
logData = sc.textFile(logFile).cache()
print("The HDFS file lines : ",logData.count())

ubuntu@adserver:/home/hadoop$ /usr/local/spark/bin/spark-submit --master local[4] st-app.py 2>&1 | grep "The HDFS"

ねえ、あなたがこのブログが役に立つと思うならば、それを好きで、私に続いてください。ありがとう。良い一日は、円周-円周率を与えます!