上周学习了hadoop和hive相关知识,最主要的就是通过hsql实现数据的清洗,从数仓中获得有用的数据,然后本周学习了spark以及用Python类库pyspark。
首先是需要在Windows本地和Linux上班均安装anaconda环境,在anaconda安装完成之后就是将spark的安装包上传解压到Linux指定目录下,完成这两步之后需要配置spark的环境,一是环境变量而是配置文件,总共如下这几个环境变量的配置
SPARK_HOME: 表示Spark安装路径在哪里
- PYSPARK_PYTHON: 表示Spark想运行Python程序, 那么去哪里找python执行器
- JAVA_HOME: 告知Spark Java在哪里
- HADOOP_CONF_DIR: 告知Spark Hadoop的配置文件在哪里
- HADOOP_HOME: 告知Spark Hadoop安装在哪里
二是配置文件如下:进入到spark文件下的conf文件夹修改(standalone模式)
# 改名, 去掉后面的.template后缀
mv workers.template workers
# 编辑worker文件
vim workers
# 将里面的localhost删除, 追加
node1
node2
node3
到workers文件内
# 功能: 这个文件就是指示了 当前SparkStandAlone环境下, 有哪些worker
```
配置spark-env.sh文件
```shell
# 1. 改名
mv spark-env.sh.template spark-env.sh
# 2. 编辑spark-env.sh, 在底部追加如下内容
## 设置JAVA安装目录
JAVA_HOME=/export/server/jdk
## HADOOP软件配置文件目录,读取HDFS上文件和运行YARN集群
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop
## 指定spark老大Master的IP和提交任务的通信端口
# 告知Spark的master运行在哪个机器上
export SPARK_MASTER_HOST=node1
# 告知sparkmaster的通讯端口
export SPARK_MASTER_PORT=7077
# 告知spark master的 webui端口
SPARK_MASTER_WEBUI_PORT=8080
# worker cpu可用核数
SPARK_WORKER_CORES=1
# worker可用内存
SPARK_WORKER_MEMORY=1g
# worker的工作通讯地址
SPARK_WORKER_PORT=7078
# worker的 webui地址
SPARK_WORKER_WEBUI_PORT=8081
## 设置历史服务器
# 配置的意思是 将spark程序运行的历史日志 存到hdfs的/sparklog文件夹中
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://node1:8020/sparklog/ -Dspark.history.fs.cleaner.enabled=true"
hadoop fs -mkdir /sparklog
hadoop fs -chmod 777 /sparklog
```
配置spark-defaults.conf文件
```shell
# 1. 改名
mv spark-defaults.conf.template spark-defaults.conf
# 2. 修改内容, 追加如下内容
# 开启spark的日期记录功能
spark.eventLog.enabled true
# 设置spark日志记录的路径
spark.eventLog.dir hdfs://node1:8020/sparklog/
# 设置spark日志是否启动压缩
spark.eventLog.compress true
*注意如下几点:
- hdfs文件系统有个端口8020,在spark-env.sh文件里面也需要配置端口,这俩端口必须一致。
- Spark的日志文件有路径,这个文件夹必须先创建再启动以上问题会影响启动
紧接着是standalone HA模式,这个模式需要首先下载启动zookeeper和hdfs,这个模式为高启动模式,再生产环境中吗,某一个master主机执行途中如果遇到宕机可能会产生很大的损失,spark为了弥补这个缺陷从而使用zookeeper来实现多master主句,当一个master宕机之后,会将原来的运行状态交给第二个master继续执行,从而保护了程序。当然后续都是在 yarn里面去运行。
标签:pyspark,端口,worker,学习,master,Spark,SPARK,spark From: https://www.cnblogs.com/copyjames/p/17659386.html