spark集群模式-standalone的配置和使用

其中所需要的python和spark的软件在该文章中

spark-本地模式的配置和简单使用-****博客

环境配置

首先在别的服务器上均要进行python环境的配置

安装spark

1、上传,解压,重命名
tar -zxvf /opt/install/spark-3.1.2-bin-hadoop3.2.tgz -C /opt/modules
mv spark-3.1.2-bin-hadoop3.2/ spark-standalone
2、删除之前本地模式下的软连接
rm -rf spark 
3、建立standalone模式下的软连接
ln -s spark-standalone spark

修改配置文件

spark-env.sh

cd /opt/installs/spark/conf
mv spark-env.sh.template spark-env.sh


export JAVA_HOME=/opt/installs/jdk
export HADOOP_CONF_DIR=/opt/installs/hadoop/etc/hadoop

export SPARK_MASTER_HOST=bigdata01 # 主节点所在的地址
export SPARK_MASTER_PORT=7077 #主节点内部通讯端口,用于接收客户端请求
export SPARK_MASTER_WEBUI_PORT=8080 #主节点用于供外部提供浏览器web访问的端口
export SPARK_WORKER_CORES=1     # 指定这个集群总每一个从节点能够使用多少核CPU
export SPARK_WORKER_MEMORY=1g   #指定这个集群总每一个从节点能够使用多少内存
export SPARK_WORKER_PORT=7078
export SPARK_WORKER_WEBUI_PORT=8081
export SPARK_DAEMON_MEMORY=1g  # 进程自己本身使用的内存
export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://bigdata01:9820/spark/eventLogs/ -Dspark.history.fs.cleaner.enabled=true"

spark-defaults.conf

mv spark-defaults.conf.template spark-defaults.conf

spark.eventLog.enabled           true
spark.eventLog.dir              hdfs://bigdata01:9820/spark/eventLogs
spark.eventLog.compress              true

workers

mv workers.template workers

# 删掉localhost,添加以下内容
bigdata01
bigdata02
bigdata03

log4j.properties

mv log4j.properties.template log4j.properties

# 19行:修改日志级别为WARN
log4j.rootCategory=WARN, console

同步

        然后将修改过配置文件的spark 同步到bigdata02和03,此时同步过去后是不需要修改任何东西的,同步软连接,同步环境变量配置文件。

启动

        启动hdfs

# 第一台机器启动HDFS
start-dfs.sh
# 创建程序运行日志的存储目录(hdfs)
hdfs dfs -mkdir -p /spark/eventLogs/

         启动spark

cd /opt/installs/spark
    
    # 启动master:
    ./sbin/start-master.sh
    
    # 启动所有worker
    ./sbin/start-workers.sh
    
    # 要想启动某个work
    # ./sbin/start-worker.sh
    
    # 启动日志服务
    ./sbin/start-history-server.sh

# 要想关闭某个服务,将start换为stop

页面启动

        master监控页面http://bigdata01:8080/ 通讯端口为7077

        单个job的监控页面http://bigdata01:4040/,只有任务启动后,才能访问,任务结束,就不能访问了

简单使用

1、计算pi——spark-submit

/opt/installs/spark/bin/spark-submit --master spark://bigdata01:7077 /opt/installs/spark/examples/src/main/python/pi.py 200

2、pyspark

cd /opt/installs/spark
./bin/pyspark --master spark://bigdata01:7077


# 需求:将一个包含 1~ 10 共10个元素的列表,使用Spark实现分布式处理,将每个元素的平方输出
 
# 1、定义一个列表
list1 = [1,2,3,4,5,6,7,8,9,10]
# 2、将列表通过SparkContext将数据转换为一个分布式集合RDD——将一个list变为Rdd对象
inputRdd = sc.parallelize(list1)
 
# 获取行数 10行
inputRdd.count()
# 获取前n行的内容 ,放到一个list中,每行占一个
fileRdd.take(3)
 
# 调用Rdd中的map方法 返回还是一个Rdd 
rsRdd = inputRdd.map(lambda x : x**2)
 
# 将结果RDD的每个元素进行输出
rsRdd.foreach(lambda x : print(x))

上一篇:leetcode hot100(2)


下一篇:【The Art of Unit Testing 3_自学笔记06】3.4 + 3.5 单元测试核心技能之:函数式注入与模块化注入的解决方案简介-3.4 函数式依赖注入技术 Functional injection techniques