spark集群搭建

2020-05-27  本文已影响0人  竞媒体

在上篇基础上安装spark集群

安装scala

scala-2.13.2.tgz   链接: https://pan.baidu.com/s/1Sd1t7ZJnE4NoaiQTUqjahw 提取码: arnc

第一步:上传至/usr/local/scala并解压scala-2.13.2.tgz

tar -zvxf scala-2.13.2.tgz

第二步:配置环境变量

vim  /etc/profile

在/etc/profile文件中添加以下环境变量

export SCALA_HOME=/usr/local/scala/scala-2.13.2

export PATH=$PATH:$SCALA_HOME/bin

第三步:使环境变量生效

source /etc/profile

第四步:将scala-2.13.2至slave1、slave2

scp -r /usr/local/scala/scala-2.13.2  slave1:/usr/local/scala

scp -r /usr/local/scala/scala-2.11.8  slave2:/usr/local/scala

分别在slave1、salve2上重复第2步

第五步:验证

分别在master、salve1、salve2中执行scala -version,如果安装成功显示版本。

安装spark集群

上传spark-2.2.0-bin-hadoop2.7.tgz

mv spark-2.2.0-bin-hadoop2.7 spark

修改spark-env.sh配置文件

vim spark-env.sh

export JAVA_HOME=/root/jdk1.8.0_251

export SCALA_HOME=/root/scala-2.13.2

export HADOOP_HOME=/usr/local/hadoop/hadoop-2.10.0

export SPARK_HOME=/root/spark

export SPARK_WORKER_CORES=1

# 每一个Worker最多可以使用的cpu core的个数

#设置实例数

export SPARK_WORKER_INSTANCES=1

# 每一个Worker最多可以使用的内存

export SPARK_WORKER_MEMORY=1G

export SPARK_MASTER_HOST=mm

# 配置JAVA_HOME,一般来说,不配置也可以,但是可能会出现问题

# 一般来说,spark任务有很大可能性需要去HDFS上读取文件

# 如果说你的spark就读取本地文件,也不需要yarn管理,不用配

# 设置Master的主机名

# 提交Application的端口,默认就是这个,万一要改呢,改这里

#export SPARK_MASTER_PORT=7077

修改slaves配置文件,添加Worker的主机列表

mv slaves.template slaves

 vim slaves

Slave1

Slave2

把SPARK_HOME/sbin下的start-all.sh和stop-all.sh这两个文件重命名

比如分别把这两个文件重命名为start-spark-all.sh和stop-spark-all.sh

原因:

如果集群中也配置HADOOP_HOME,那么在HADOOP_HOME/sbin目录下也有start-all.sh和stop-all.sh这两个文件,当你执行这两个文件,系统不知道是操作hadoop集群还是spark集群。修改后就不会冲突了,当然,不修改的话,你需要进入它们的sbin目录下执行这些文件,这肯定就不会发生冲突了。我们配置SPARK_HOME主要也是为了执行其他spark命令方便

把spark安装包分发给其他节点

在集群所有节点中配置SPARK_HOME环境变量

export SPARK_HOME=/root/spark

export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

在spark master节点启动spark集群

start-spark-all.sh

通过WEB查看状态

namenode的webUI端口:50070

yarn的web端口:8088

spark集群的web端口:8080

spark-job监控端口:4040

安装pydev(参考官方文档 https://github.com/pyenv/pyenv)

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

For bash:

echo'export PYENV_ROOT="$HOME/.pyenv"'>>~/.bash_profileecho'export PATH="$PYENV_ROOT/bin:$PATH"'>>~/.bash_profile

For Ubuntu Desktop:

echo'export PYENV_ROOT="$HOME/.pyenv"'>>~/.bashrcecho'export PATH="$PYENV_ROOT/bin:$PATH"'>>~/.bashrc

For Zsh:

echo'export PYENV_ROOT="$HOME/.pyenv"'>>~/.zshrcecho'export PATH="$PYENV_ROOT/bin:$PATH"'>>~/.zshrc

For Fish shell:

set-UxPYENV_ROOT$HOME/.pyenvset-Uxfish_user_paths$PYENV_ROOT/bin$fish_user_paths

安装python

pydev install 3.6.5

vim /etc/profile

export PYSPARK_PYTHON=/root/.pyenv/versions/3.6.0/bin/python

source /etc/profile

运行pyspark

Welcome to

      ____              __

    / __/__  ___ _____/ /__

    _\ \/ _ \/ _ `/ __/  '_/

  /__ / .__/\_,_/_/ /_/\_\  version 3.0.0-preview2

      /_/

Using Python version 3.6.5 (default, May 28 2020 11:03:33)

SparkSession available as 'spark'.

>>>

自此pyspark相关环境配置完成

测试pyspark on yarn运行

由于经常用到第三方的python库,这样在每台worker节点上去安装第三方库不太现实。

可以使用下面的命令提交到cluster

spark-submit   

--master yarn 

--deploy-mode cluster 

--conf spark.yarn.dist.archives=hdfs:///user/hduser/data/spark_test.zip#pyenv 

 --conf spark.yarn.appMasterENV.PYSPARK_PYTHON=pyenv/3.6.0/bin/python 

/root/spark/examples/src/main/python/als.py

spark.yarn.dist.archives:hdfs:///user/hduser/data/spark_test.zip#pyenv  指定压缩文件地址,压缩文件被分发到 executor 上,并且解压,#pyenv 代表解压到的目录

spark.yarn.appMasterEnv.PYSPARK_PYTHON:指定使用的 python 环境;pyenv 即上面的解压目录,3.6.0 即spark_test.zip解压后的目录。

上一篇下一篇

猜你喜欢

热点阅读