Spark新手入门——3.Spark集群(standalone模式)安装
主要包括以下三部分,本文为第三部分:
一. Scala环境准备 查看
二. Hadoop集群(伪分布模式)安装 查看
三. Spark集群(standalone模式)安装
Spark集群(standalone模式)安装
若使用spark对本地文件进行测试学习,可以不用安装上面的hadoop环境,若要结合hdfs使用spark,则可以参考上面的步骤搭建hadoop。
1. 下载安装包并解压(如:~/tools/spark-2.3.1-bin-hadoop2.7);
2. 启动服务
a.启动master
./sbin/start-master.sh
b.启动slaves
可先登陆 http://localhost:8080/ ,获取“Spark URL”
./sbin/start-slave.sh <spark://xxxx-xxx:7077>
3. 开发测试程序
下面开发一个超级简单的rdd任务,逻辑(统计hdfs文件中包含单词form的行及行数,并将结果保存到hdfs)参考官网。
a. 使用第一讲中准备好的Scala环境,创建一个scala maven project:mvn-rdd-test
b. 编写代码
package com.person.test import org.apache.spark.{SparkConf,SparkContext} object MvnRddTest { def main(args: Array[String]): Unit = { val dataPath = "hdfs://localhost:9000/usr/test/LICENSE.txt" val resultPath = "hdfs://localhost:9000/usr/test/result"
val sc = new SparkContext(new SparkConf().setAppName("Mvn-Rdd-Test"))
try{ val accm = sc.longAccumulator("LineAccumulator") val rdd = sc.textFile(dataPath,2) val sparkDs = rdd.filter( line => if(line.contains("form")){ accm.add(1) true } else false ) sparkDs.saveAsTextFile(resultPath) println(s"Lines that contains 'form' number is: ${accm.value}") }catch { case e:Exception => e.printStackTrace() }finally { sc.stop() } } }
注:运行该示例需要上传一份文件到(二)的hdfs中,例中的LICENSE.txt来自hadoop安装包。
c. 打含依赖项的jar包
pom.xml配置:
<groupId>com.person.test</groupId> <artifactId>mvn-rdd-test</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <!-- spark core --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.3.1</version> </dependency> <!-- hdfs tool --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-assembly</artifactId> <version>0.8.0-SNAPSHOT</version> </dependency> </dependencies> <build> <plugins> <!-- build java --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.5</version> <configuration> <archive> <manifest> <mainClass>com.person.test.MvnRddTest</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> <!-- build scala --> <plugin> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId> <version>2.15.2</version> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
双击Maven Projects-->mvn-rdd-test-->Lifecycle-->package即可完成打包,“mvn-rdd-test-1.0-SNAPSHOT-jar-with-dependencies.jar”即为包含依赖项的包。
注:pom中引入的这两个build插件是必须的,分别用于build java和scala。
d. 测试:
./bin/spark-submit --master spark://xxxx-xxx:7077 --class com.person.test.MvnRddTest ~/Document/IdeaProjects/mvn-rdd-test/target/mvn-rdd-test-1.0-SNAPSHOT-jar-with-dependencies.jar
可以到hdfs上查看运行结果,终端会打印计数器的值。
注意:使用maven打包,不要使用Build Artifacts方式打包。
参考资料:官方文档
后续会陆续更新Spark RDD、Spark DataSet、Spark Streaming的用法;
- Spark新手入门——2.Hadoop集群(伪分布模式)安装
- Spark2.1集群安装(standalone模式)
- 安装部署Spark 1.x Standalone模式集群
- Spark2.2.0分布式集群安装(StandAlone模式)
- 安装Hadoop,Spark集群模式
- spark新手入门安装+小练习
- 005-spark standalone模式安装
- spark安装和集群单机模式
- 1-2、Spark的standalone模式安装
- Maven安装编译Spark,搭建Spark独立集群模式(Hadoop架构之上)
- HBase入门笔记(三)-- 完全分布模式Hadoop集群安装配置
- 1、Spark的StandAlone模式原理和安装、Spark-on-YARN的理解
- Spark 1.4.1 Standalone 模式部署安装配置
- Spark 集群搭建从零开始之3 Spark Standalone集群安装、配置与测试
- Spark2.2.1 on yarn 模式集群安装
- Spark1.2.1集群环境搭建——Standalone模式
- [会装]Spark standalone 模式的安装
- Spark2.1.0 + CarbonData1.0.0+hadoop2.7.2集群模式部署及使用入门
- 【Spark】Spark的Standalone模式安装部署
- Spark源码阅读笔记:Standalone模式集群核心角色代码浅析