StandAlone模式环境搭建
环境准备:三台Linux,一个安装Master,其他两台机器安装Worker
- tar -zxvf spark-3.2.3-bin-hadoop3.2.tgz -C /opt/apps
复制代码
- 进入到spark按照包目录并将conf目录下的spark-env.sh.template重命名为spark-env.sh,再修改
- export JAVA_HOME=/usr/local/jdk1.8.0_251/
- export SPARK_MASTER_HOST=linux01
复制代码
- 将conf目录下的workers.template重命名为workers并修改,指定Worker的所在节点
- for i in {2..3}; do scp -r spark-3.2.3-bin-hadoop3.2 linux0$i:$PWD; done
复制代码 启动Spark集群
在ndoe-1上可以看见Master进程,在其他的节点上可以看见到Worker进程
- 访问Master的web管理界面,端口8080
一些重要参数
- export SPARK_WORKER_CORES=4 #指定worker可用的逻辑核数
- export SPARK_WORKER_MEMORY=2g #指定worker可用的内存大小
复制代码 standalone模式高可用部署
spark的standalone模式可以启动两个以上的Master,但是需要依赖zookeeper进行协调,所有的节点启动后,都向zk注册
修改配置文件spark-env.sh- # 注释掉master的地址,所有节点都先连接zookeeper
- # export SPARK_MASTER_HOST=linux01
- export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=linux01:2181,linux02:2181,linux03:2181 -Dspark.deploy.zookeeper.dir=/spark"
复制代码 启动Spark Shell编程
spark shell是spark中的交互式命令行客户端,可以在spark shell中使用scala编写spark程序,启动后默认已经创建了SparkContext,别名为sc- /opt/apps/spark-3.2.3-bin-hadoop3.2/bin/spark-shell \
- --master spark://linux01:7077 --executor-memory 1g \
- --total-executor-cores 3
复制代码 如果Master配置了HA高可用,需要指定两个Master(因为这两个Master任意一个都可能是Active状态)- /bigdata/spark-3.2.3-bin-hadoop3.2/bin/spark-shell \
- --master spark://linux01:7077,linux02:7077 \
- --executor-memory 1g \
- --total-executor-cores 3
复制代码 参数说明:
--master 指定masterd地址和端口,协议为spark://,端口是RPC的通信端口
--executor-memory 指定每一个executor的使用的内存大小
--total-executor-cores指定整个application总共使用了cores
在shell中编写第一个spark程序- sc.textFile("hdfs://linux01:9000/words.txt").flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).sortBy(_._2,false).saveAsTextFile("hdfs://linux01:9000/out")
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |