spark-1(安装配置)

1、核心模块简介及安装配置

核心模块

Spark和Hadoop的根本差异是多个作业之间的数据通信问题:Spark多个作业之间数据通信是基于内存,而Hadoop是基于磁盘。

在绝大多数的数据计算场景中,Spark确实会比MapReduce更有优势,但是Spark是基于内存的,所以在实际的生产环境中,由于内存的限制,可能会由于内存资源不够导致Job执行失败,此时,MapReduce其实是一个更好的选择,所以Spark并不能完全替代MR。

Spark Core:提供了Spark最基础与最核心的功能,其余模块都是在Spark Core基础上进行拓展的

Spark SQL:操作结构化数据的功能模块

Spark Streaming:处理流式数据的功能模块

Spark MLlib:处理机器学习相关库的功能模块

Spark GraphX:图形挖掘计算相关功能模块

安装配置

IDEA首先配置scala环境

导入核心依赖

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.11</artifactId>
    <version>2.3.0</version>
</dependency>

spark版本根据scala sdk版本确定

wordcount案例实现

package spark.core

import org.apache.spark.{SparkConf, SparkContext}

object WordCount2 {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf().setMaster("local").setAppName("WordCount")
    val sc = new SparkContext(sparkConf)
    val lines = sc.textFile("datas")
    val words = lines.flatMap(_.split(" "))
    val words1 = words.map(word => (word, 1))
    val wordGroup = words1.groupBy(t => t._1)
    val wordToCount = wordGroup.map {
      case (word, list) => {
        list.reduce((t1, t2) => (t1._1, t1._2 + t2._2))
      }
    }
    val array = wordToCount.collect()
    array.foreach(println)
    sc.stop()
  }
}

2-运行环境

Local模式

不需要其他任何节点资源就可以在本地执行Spark代码的环境,一般用于教学,调试,演示等。

spark安装后,不需要配置,直接执行命令${SPARK_HOME}/bin/spark-shell就可以进入命令行模式

此时可以输入单行命令执行wordcount案例

sc.textFile("data/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

提交运行案例程序的任务

bin/spark-submit --class org.apache.spark.examples.SparkPi --master local[2] ./examples/jars/spark-examples_2.11-2.4.7.jar 10

并且可以通过端口4040访问网页UI

Standalone模式

顾名思义,独立部署模式,单节点启动。Spark的Standalone模式体现了经典的master-slave模式

配置slaves

num04
num05
num06

配置spark-env.sh

export JAVA_HOME=/opt/jdk1.8
SPARK_MASTER_HOST=num04
SPARK_MASTER_PORT=7077

以上两个配置文件都是template样例文件,修改完成后修改文件名

分发至其余两个节点

可以启动集群了spark_standalone/sbin/start-all.sh

启动成功后,主结点有Master进程,配置有worker的节点有Worker进程

可以使用8080端口访问网页UI

再提交案例任务

bin/spark-submit 
--class org.apache.spark.examples.SparkPi 
--master spark://num04:7077 ./examples/jars/spark-examples_2.11-2.4.7.jar 10

提交参数格式:

${SPARK_HOME}/bin/spark-submit \
--class <main-class>
--master <master-url> \
... # other options
<application-jar>
[application-arguments]

参数说明:

  • –class指定包含主函数的类
  • –master指定的是运行环境
  • –executor-memory 1G:指定每个executor可用内存为1G
  • –total-executor-cores 2:指定所有executor使用的cpu核数为2个
  • application-jar:打包好的应用Jar,包含依赖
  • application-arguments:传给main()方法的参数

配置历史服务

配置spark-defaults.conf(改名)

# 这两行去掉注释,下面的是历史文件保存地址,文件要求已存在
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://num04:9000/spark_log

配置spark-env.sh

# 第一项是端口号
# 第二项指定历史文件保存地址,和上面的配置文件要求相同
# 第三项是历史记录个数,超出这个个数,旧的应用程序信息就会被删除
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://num04:9000/spark_log
-Dspark.history.retainedApplications=30"

高可用

集群规划

num04:Master、Worker

num05:Master、Worker

num06:Worker

配置spark-env.sh

# 将原本配置的这两行注释掉
# SPARK_MASTER_HOST=num04
# SPARK_MASTER_PORT=7077

# 修改为如下配置
SPARK_MASTER_WEBUI_PORT=8989
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=num04,num05,num06
-Dspark.deploy.zookeeper.dir=/spark"

分发配置文件

主结点启动集群

第二节点启动Master服务

此时如果可以通过两台节点的IP通过指定的端口号访问webui说明配置成功(主结点status为active,备用节点状态为standby)

再次提交案例任务测试环境

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://num04:7077,num05:7077 \
./examples/jars/spark-examples_2.11-2.4.7.jar 10

Yarn模式

独立部署(Standalone)模式由Spark自身提供计算资源,无需其他框架提供资源。这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但是同时,Spark主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,所以还是和其他专业的资源调度框架集成会更可靠。所以接下来配置Yarn环境下的Spark。

重新解压缩

修改配置文件

  1. 修改hadoop配置文件中的yarn-site.xml
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则会直接将其杀掉,默认是true-->
<property>
	<name>yarn.nodemanager.pmem-check-enabled</name>
	<value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量。如果任务超出分配值。则直接将其杀掉,默认是true-->
<property>
	<name>yarn.nodemanager.vmem-check-enabled</name>
	<value>false</value>
</property>
  1. 配置spark-env.sh
export JAVA_HOME=/opt/jdk1.8
YARN_CONF_DIR=/opt/hadoop/etc/hadoop
  1. 启动集群
  2. 再次提交案例任务,测试环境
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
./examples/jars/spark-examples_2.11-2.4.7.jar 10
  1. 此时控制台不能再看到执行结果了,7077端口也无法打开webui,可以打开8088端口,访问yarn页面,看到spark的任务执行记录
  2. 此时再配置历史服务,需要在spark-default.conf中多配置一项,关联yarn和spark
spark.yarn.historyServer.address=num04:18080
spark.history.ui.port=18080
  1. 开启历史服务后再次提交任务
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
./examples/jars/spark-examples_2.11-2.4.7.jar 10

Windows模式

为了便于调试和学习,安装Windows模式

运行案例任务,测试环境

D:\sofeware\developtool\spark\bin>spark-submit --class org.apache.spark.examples.SparkPi --master local[2] ../examples/jars/spark-examples_2.11-2.4.7.jar 10

部署模式对比

​ 模式spark安装机器数需启动的进程所属者应用场景
​ Local1Spark测试
Standalone3Master及WorkerSpark单独部署
​ Yarn1Yarn和HDFSHadoop混合部署

端口号

  • Spark查看当前Spark-shell运行任务情况:4040
  • Spark Master内部同通信服务端口:7077
  • Standalone模式下,Spark Master Web端口:8080
  • Spark历史服务:18080
  • Hadoop Yarn任务运行情况查看端口:8088

IDEA设置控制台不打印INFO信息

1、首先将spark根目录下中的conf目录里的log4j.properties.template文件拷贝到IDEA项目中的src\main\resources目录下并改名为log4j.properties

2、然后在将文件中的log4j.rootCategory=INFO, console修改为log4j.rootCategory=ERROR, console即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Apache Spark是一个分布式计算框架,可以运行在Hadoop集群上。而YARN是Hadoop的资源管理器,可以提供资源给Spark来运行。 以下是spark-yarn安装配置的步骤: 1. 安装Hadoop集群 在安装Spark之前,您需要先安装Hadoop集群。请确保您的Hadoop集群正在运行,并且您可以使用hadoop命令行工具访问它。 2. 下载SparkSpark官方网站下载Spark二进制文件,并解压缩到您的目录中。您可以将Spark安装在任何地方,只要您的Hadoop集群可以访问它即可。 3. 配置SparkSpark的conf目录下,有一个spark-env.sh文件,您需要编辑它来配置Spark的环境变量。将以下内容添加到文件末尾: export HADOOP_CONF_DIR=/path/to/hadoop/conf 这将告诉Spark去哪里找到Hadoop的配置文件。 4. 配置YARN 在Spark的conf目录下,有一个spark-defaults.conf文件,您需要编辑它来配置Spark使用YARN。将以下内容添加到文件末尾: spark.master yarn spark.submit.deployMode client spark.executor.memory 2g spark.driver.memory 2g 这将告诉Spark使用YARN作为资源管理器,并设置内存大小。 5. 运行Spark应用程序 现在,您可以运行Spark应用程序了。使用以下命令: ./bin/spark-submit --class <main-class> --master yarn --deploy-mode client <application-jar> <application-arguments> 其中,<main-class>是您的主类,<application-jar>是您的应用程序jar文件,<application-arguments>是您的应用程序参数。 6. 监控应用程序 您可以在YARN的Web界面上监控您的应用程序。打开以下网址: http://<yarn-resource-manager>:8088/cluster 其中,<yarn-resource-manager>是您的YARN资源管理器的主机名。在Web界面上,您可以看到正在运行的应用程序的状态和日志。 这就是spark-yarn安装配置的步骤。祝您好运!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值