Spark Cluster Manager๋ก local[n] ์ง์ ํ๋ค.
์ฃผ๋ก ๊ฐ๋ฐ์ด๋ ๊ฐ๋จํ ํ ์คํธ ์ฉ๋์ด๋ค.
ํ๋์ JVM์์ ๋ชจ๋ ํ๋ก์ธ์ค๋ฅผ ์คํ๋๋ค.
Executor์์ ์์ฑ๋๋ ์ฐ๋ ๋ ์
!pip install pyspark==3.3.1 py4j==0.10.9.5
๊ตฌ๊ธ Colab ๊ฐ์์๋ฒ ์์ ๋ก์ปฌ ๋ชจ๋ Spark์ ์คํ
๊ฐ๋ฐ ๋ชฉ์ ์ผ๋ก๋ ์ถฉ๋ถํ์ง๋ง ํฐ ๋ฐ์ดํฐ์ ์ฒ๋ฆฌ๋ ๋ถ๊ฐ
Spark Web UI๋ ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์ ๊ทผ ๋ถ๊ฐ
Py4J
sudo apt install openjdk-8-jdk
sudo apt install openjdk-11-jdk
sudo update-alternatives --config java
nano ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
์ด๋ ๊ฒ ํ๊ณ ๋ณด๋๊น ํ๊ฒฝ๋ณ์๊ฐ ํ๋์ ๊ฑธ๋ฆผ๋์ด๊ฐ ๋์๋ค.
๋๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์๊ฒ ์ง๋ง ๋๊ฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด์ source ๋ช
๋ น์ด๋ก ๋ฒ์ ์ ๋ฐ๊พธ๋ฉด์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค.
nano ~/use_java11.sh
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
echo "witched to JDK 11"
nano ~/use_java8.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
echo "witched to JDK 8"
๋ง๋ฌด๋ฆฌ๋ก ๋๋ค ๊ถํ์ ๋ถ์ฌํด์ฃผ์ด์ผํ๋ค.
chmod +x ~/use_java11.sh
chmod +x ~/use_java8.sh
์ด์ ์ฌ์ฉํ ๋๋ ์๋์ฒ๋ผ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค.
source ~/use_java8.sh
source ~/use_java11.sh
์ด์ Spark๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์๋ณด์.


์ฐ๋ฆฌ๋ ๋ฆฌ๋ ์ค ํฐ๋ฏธ๋ ํ๊ฒฝ์์ ๋ค์ด๋ก๋ ๋ฐ์๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋งํฌ๋ง ๊ฐ์ ธ์ค์.
wget https://dlcdn.apache.org/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3.tgz
์์ถ ํด์
tar -xvzf spark-3.5.1-bin-hadoop3.tgz
Spark๋ ํ๊ฒฝ๋ณ์๋ฅผ ์์ฑํด ์ฃผ์ด์ผ ํ๋ค.
ํ์ฌ ๋๋ ํ ๋ฆฌ + Spark์ด๋ฆ(spark-3.5.1-bin-hadoop3) ๋ฅผ ์์ฑํด์ฃผ์.
nano ~/.bashrc
export SPARK_HOME=/home/urface/spark_course/spark-3.5.1-bin-hadoop3
export PATH=$PATH:$SPARK_HOME/bin
์ ์ฅํด์ฃผ์.
source ~/.bashrc
์ด์ Spark์ Shell๋ก ์ง์ ํด๋ณด์.
spark-shell
Spark-shell์ ๋ซ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
:q
์ด์ ์ ์ค์นํ Spark๋ Scala๋ฅผ ์ํ ๋ฒ์ ์ด๋ค.
์ด๋ฒ์๋ python์ผ๋ก ์ฌ์ฉ๊ฐ๋ฅํ Spark์ ์ค์นํด๋ณด์
๊ทธ์ ์ ๋ฏธ๋ฆฌ Py4j๋ฅผ ์ค์นํด์ผ ํ๋ค.
pip install py4j
์ด์ ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ๋ค
pyspark
๋๊ฐ๋ ๋ฐฉ๋ฒ
exit()
Spark์ ์ค์นํ๋ฉด ๊ฐ์ด ์ค์น๋๋ ํ์ด์ ๊ฐ์ ๊ณ์ฐํ๋ ์์ ํ๋ก๊ทธ๋จ์ ์คํํด๋ณด์
spark-submit --master 'local[4]' ./spark-3.5.1-bin-hadoop3/examples/src/main/python/pi.py