spark job一直显示Application report

本文记录了一次使用CDH5.9.0进行Spark调优的经历,在CDH5.8.3上遇到问题后,通过调整内存配置解决了spark-shell执行等待的问题,并指出CDH5.7.1在JDK1.8环境下存在的连接配置错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[2016-12-02T15:08:15.746+08:00] [DataProcessing] [INFO] [] [org.apache.spark.Logging$class] [tid:main] [userID:bdd] Application report for application_1480655448296_0002 (state: ACCEPTED)

增大内存,可以使用spark-shell测试

yarn.nodemanager.resource.memory-mb

yarn.scheduler.maximum-allocation-mb


CDH5.8.3似乎存在问题,spark-shell执行也是处于等待状态,改用CDH5.9.0正常。不能使用CDH5.7.1,因为在JDK1.8下HUE连接配置会报错。

<think>我们正在讨论两个不同的上下文:日志系统和任务管理(如YARN)中的应用程序名称自定义。我将分别解释这两个方面。 ### 一、在日志系统中自定义应用程序名称(以Spring Boot为例) 在Spring Boot应用中,我们通常希望日志中能体现应用名称,便于在多个应用共存时区分日志来源。以下是两种实现方式: #### 方法1:通过`application.properties`设置应用名(影响日志输出) ```properties # application.properties spring.application.name=my-custom-app-name ``` **效果**: - 控制台和日志文件中会自动出现`[my-custom-app-name]`标识 - 无需修改日志配置,Spring Boot默认日志格式包含该名称[^1] #### 方法2:自定义日志配置(如logback) 1. 创建`logback-spring.xml`文件(放置在`src/main/resources`目录下) 2. 在配置中使用`${springAppName}`变量引用应用名称: ```xml <configuration> <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} [${springAppName:-default}] %-5level %logger{36} - %msg%n"/> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="CONSOLE" /> </root> </configuration> ``` 3. 在`application.properties`中声明变量值: ```properties springAppName=my-custom-log-name ``` > **注意**:若需完全自定义配置路径,可在`application.properties`中指定: > ```properties > logging.config=classpath:my-logback-config.xml > ```[^2] ### 二、在YARN任务中自定义应用名称 当提交YARN任务时(如Spark/Flink/MapReduce),应用名称会显示在YARN ResourceManager界面和`yarn application -list`命令输出中。自定义方法取决于任务提交方式: #### Spark任务示例(spark-submit) ```bash spark-submit \ --class com.example.Main \ --name "My Custom Spark App" \ # 设置YARN应用名称 /path/to/your-app.jar ``` **效果**:在YARN中显示的应用名称将为`"My Custom Spark App"` #### Flink任务示例(flink run) ```bash flink run \ -m yarn-cluster \ -ynm "My Custom Flink Job" \ # 设置YARN应用名称 /path/to/your-flink-job.jar ``` #### MapReduce任务(Java API) ```java Job job = Job.getInstance(conf); job.setJobName("Custom MapReduce Job"); // 设置MapReduce任务名称 // 注意:在YARN中显示的名称通常与此一致 ``` ### 三、在自定义Application类中设置(Android类比) 虽然用户提供了Android自定义Application的示例[^3],但该场景与服务器端应用名称设置不同。在服务器端(如Spring Boot),应用名称通常通过配置文件或启动参数设置,而非代码硬编码。 ### 总结对比表 | 场景 | 自定义方式 | 影响范围 | |---------------------|-----------------------------------|-----------------------| | Spring Boot日志名称 | `spring.application.name`属性 | 日志输出、服务注册 | | 独立日志系统名称 | logback配置中的`<property>` | 仅日志输出格式 | | YARN应用名称 | 任务提交参数(如`--name`, `-ynm`) | YARN任务管理界面 | §§相关问题§§ 1. 如何在Spring Boot中同时修改日志名称和服务注册名称? 2. YARN任务提交后能否动态修改显示的应用名称? 3. 自定义logback配置时如何避免与Spring Boot默认配置冲突? 4. 如何在分布式系统中实现全局统一的日志应用标识?</think>### 在日志系统和任务管理中自定义应用程序名称的方法 #### 一、在日志系统中自定义应用名称(以Spring Boot为例) 1. **通过配置文件设置** 在 `application.properties` 或 `application.yml` 中定义应用名称: ```properties # application.properties spring.application.name=my-custom-app ``` 或 ```yaml # application.yml spring: application: name: my-custom-app ``` 日志将自动包含该名称:[^1] 2. **自定义日志配置** 在 `logback-spring.xml` 中直接声明应用名称变量: ```xml <configuration> <property name="APP_NAME" value="my-custom-app" /> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd} [${APP_NAME}] %msg%n</pattern> </encoder> </appender> </configuration> ``` 日志输出示例: `2023-10-15 [my-custom-app] User login successful` 3. **通过启动参数设置** 运行JAR时指定应用名称: ```bash java -jar yourapp.jar --spring.application.name=api-service ``` #### 二、在任务管理系统中自定义名称(以YARN为例) 1. **Spark任务提交** 使用 `--name` 参数: ```bash spark-submit \ --class com.example.Main \ --name "Customer_Analytics_Job" \ your-spark-job.jar ``` 2. **Flink任务提交** 使用 `-ynm` 参数: ```bash flink run \ -m yarn-cluster \ -ynm "RealTime_DataPipeline" \ your-flink-job.jar ``` 3. **MapReduce任务** 在代码中设置作业名称: ```java public class CustomJob extends Configured implements Tool { public int run(String[] args) { Job job = Job.getInstance(getConf()); job.setJobName("Sales_Report_Generator"); // 自定义名称 // ...其他配置 } } ``` #### 三、在自定义Application类中设置(通用Java) ```java public class CustomApplication extends Application { @Override public void onCreate() { super.onCreate(); // 设置全局应用标识 System.setProperty("app.name", "mobile_client_v2"); } } ``` 在日志配置中引用: ```xml <!-- logback-spring.xml --> <property name="APP_NAME" value="${app.name:-default_app}" /> ``` ### 配置验证方法 1. **日志验证** 检查日志输出是否包含自定义名称: ```bash tail -f app.log | grep "mobile_client_v2" ``` 2. **YARN任务验证** 查看任务列表: ```bash yarn application -list | grep "Customer_Analytics" ``` ### 最佳实践建议 1. **命名规范** ```plaintext <项目>_<模块>_<环境>_v<版本> 示例: payment_notification_prod_v2 ``` 2. **多环境区分** 使用Spring Profile: ```yaml spring: profiles: prod application: name: order-service-prod ``` 3. **动态命名** 在启动脚本中使用变量: ```bash #!/bin/bash APP_VERSION=$(date +%Y%m%d) spark-submit --name "DataSync_$APP_VERSION" ... ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值