IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> spark.7 yarn -> 正文阅读

[大数据]spark.7 yarn

确保HADOOP_CONF_DIR或YARN_CONF_DIR指向包含Hadoop集群(客户端)配置文件的目录。这些配置用于写HDFS和连接YARN ResourceManager。该目录中包含的配置将被分发到YARN集群,以便应用程序使用的所有容器都使用相同的配置。如果配置引用Java系统属性或不受YARN管理的环境变量,它们也应该在Spark应用程序的配置中进行设置(驱动程序、执行程序和AM运行时),粗体部分意思是可以在启动app的时候进行参数传递配置.

2.spark application载入yarn的方式

Spark applications 载入yarn cluster有两种部署方式( deploy modes )

  • cluster mode

此模式下spark driver(spark 驱动程序) 运行在一个被yaran管理的application master
进程中,并且client(提交程序的spark-submmit)可以在启动应用程序后离开.

  • client mode

此种模式下,spark driver驱动运行在起送客户端的机器上
并且application master 进程 仅用于向yarn申请资源

简述二者区别:
cluster:application的驱动程序运行在yarn集群上,该驱动程序drive由yarn上的applicationMaster管理, 任务提交到集群之后,client结束.—>driver在yarn的applicationMaster中, client可以退出
client:驱动程序driver运行在client进程中,client不可以退出.–>driver运行在client进程中,client不可以退出

3.— —master说明

与Spark支持的其他集群管理器不同,在YARN模式下,ResourceManager的地址是从Hadoop配置中获取的。因此,— —master参数是yarn。

4.载入集群的命令

  • 格式

$ ./bin/spark-submit --class path.to.your.Class --master yarn --deploy-mode cluster/client [spark options] [your-app options]
注意加粗的地方为application的部署模式,二选一即可:
client意思是客户端模式
cluster意思是集群模式

  • 举例如下

$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi
–master yarn
–deploy-mode cluster
–driver-memory 4g
–executor-memory 2g
–executor-cores 1
–queue thequeue
examples/jars/spark-examples*.jar
10
上述操作将启动一个YARN客户端程序,该程序将启动默认的Application Master。然后SparkPi将作为Application Master的子线程运行。客户端将定期轮询Application Master以获取状态更新,并在控制台中显示它们。一旦应用程序完成运行,客户端将退出。

5.注意事项

client模式下,dirver驱动程序(也就是sparkContext 入口),在当前机器运行,当前机器可以访问到在此机器上的jar(通过配置), 但是在cluster模式,spark程序入口在yarn集群上的某台机器,该机器是访问不到客户端所在的机器的,所以cluster模式下依赖的jar等文件必须通过参数传递给driver所在的yarn集群上的某台机器.

$ ./bin/spark-submit --class my.main.Class
–master yarn
–deploy-mode cluster
–jars my-other-jar.jar,my-other-other-jar.jar
my-main-jar.jar
app_arg1 app_arg2

6.准备工作

在 YARN 上运行 Spark 需要使用 YARN 支持构建的 Spark 二进制分发版。二进制发行版可以从项目网站的下载页面下载。您可以下载两种 Spark 二进制发行版的版本。一种是使用特定版本的 Apache Hadoop 预先构建的;这个 Spark 发行版包含内置的 Hadoop 运行环境,所以我们称之为with-hadoopSpark 发行版。另一个是使用用户提供的 Hadoop 预先构建的;由于这个 Spark 发行版不包含内置的 Hadoop 运行环境,所以它更小,但用户必须单独提供 Hadoop 安装。我们称这种变体为no-hadoopSpark 分布。对于with-hadoopSpark 发行版,因为它已经包含一个内置的 Hadoop 运行时,默认情况下,当一个作业提交到 Hadoop Yarn 集群时,为了防止 jar 冲突,它不会将 Yarn 的类路径填充到 Spark 中。要覆盖此行为,您可以设置spark.yarn.populateHadoopClasspath=true. 对于no-hadoopSpark 发行版,Spark 将默认填充 Yarn 的类路径以获取 Hadoop 运行时。对于with-hadoopSpark 发行版,如果您的应用程序依赖于某些仅在集群中可用的库,您可以尝试通过设置上述属性来填充 Yarn 类路径。如果这样做遇到 jar 冲突问题,则需要将其关闭并将此库包含在应用程序 jar 中。
要从 YARN 端访问 Spark 运行时 jar,您可以指定spark.yarn.archive或spark.yarn.jars。有关详细信息,请参阅Spark 属性。如果既未指定也spark.yarn.archive未spark.yarn.jars指定,Spark 将创建一个包含所有 jar 的 zip 文件$SPARK_HOME/jars并将其上传到分布式缓存。

spark yarn 有很多配置参数,参考spark-yarn-配置

7. 自定义log4j

To use a custom log4j configuration for the application master or executors, here are the options:

  • spark-submmit 通过–files指定logj.properties
  • spark-submmit --conf spark.executor.extraJavaOptions=-Dlog4j.configuration=/tmp/myconfig/log4j.properties
  • 更新$ SPARK_CONF_DIR / log4j。属性文件,它将与其他配置一起自动上传。注意,如果指定了多个选项,其他上面2个选项的优先级比这个选项高。
    注意,对于第一个选项,executors 和应用程序主程序将共享相同的log4j配置,这可能会在它们运行在同一个节点上时导致问题(例如试图写入相同的日志文件。

1.如果您需要在YARN中放置日志文件的正确位置的引用,以便YARN能够正确地显示和聚合日志文件,请在您的log4j.properties中使用spark.yarn.app.container.log.dir。例如,log4j.appender.file_appender.File = $ {spark.yarn.app.container.log.dir} / spark.log。对于流应用,配置RollingFileAppender并将文件位置设置为YARN的日志目录,可以避免因日志文件过大而导致磁盘溢出,并且可以使用YARN的日志实用工具访问日志。
2.To use a custom metrics.properties for the application master and executors,update the $SPARK_CONF_DIR/metrics.properties file. It will automatically be uploaded with other configurations, so you don’t need to specify it manually with --files.

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:32:29  更:2021-08-21 15:33:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:59:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码