Spark搭建

spark安装部署

先安装anacondea3然后再解压spark

然后追加以下内容至/root/ .condarc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
channels:
- https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
- https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
- https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
- https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- defaults
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

配置pyspark

conda create -n pyspark python=版本号 然后回车就下载了

安装完之后conda activate pyspark切换虚拟环境

Local环境部署

添加环境变量

如果是without版本需要配置spark-env.sh中添加export SPARK_DIST_CLASSPATH=$(/root/software/hadoop/bin/hadoop classpath)

然后就可以启动了pyspark spark shell

运行的时候可以加参数pyspark –master local[*] 括号中如果给*号就是全部资源启动,给数字的话就是num个线程启动

Spark集群搭建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
mv spark-env.sh.template spark-env.sh
vi spark-env.sh
# 指定 Java Home
export JAVA_HOME=/export/servers/jdk1.8.0_221

# 指定 Spark Master 地址
export SPARK_MASTER_HOST=node01
export SPARK_MASTER_PORT=7077

mv works.template works
将Localhost删了换成master slave1 slave2

配置 HistoryServer
mv spark-defaults.conf.template spark-defaults.conf
vi spark-defaults.conf (将这两个前面#去掉)
spark.eventLog.enabled true
spark.eventLog.dir hdfs://node01:8020/spark_log
vi spark-env.sh末尾添加
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://master:8020/spark_log"
创建hdfs目录
hdfs dfs -mkdir -p /spark_log

修改log4j2.properties.template改名为log4j2.properties然后将19行的info改为WARN

然后分发
启动历史服务器:sbin/start-history-server.sh

最后启动
sbin/start-all.sh
sbin/start-history-server.sh

连接,在webui的那个
pyspark --master spark://master:7077

spark基于zookeeper实现HA

1
2
3
4
5
前提确保zookeeper和hdfs均已启动
vi spark-env.sh文件
export SPARK_MASTER_HOST=master和他的那个端口注释了
追加SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop01:2181,hadoop02:2181,hadoop03:2181 -Dspark.deploy.zookeeper.dir=/spark-ha"
然后重新启动spark并且再启动另外一台或者多台机的start-master.sh