部署了一套Yarn集群,没有启动HDFS,那么我Flink或Spark提交作业到yarn时,他们所需要的文件资源yarn要从哪里获取呢
时间: 2023-11-27 11:05:57 浏览: 83
如果你部署了一套 Yarn 集群但没有启动 HDFS,那么 Yarn 就无法从 HDFS 中获取资源。在这种情况下,你需要使用 Yarn 的本地文件系统来提供资源。具体来说,你需要将你的文件资源上传到每个 Yarn 节点的本地文件系统中。你可以使用以下命令将文件复制到本地文件系统中:
```
yarn dfs -copyFromLocal <local_file> <yarn_file>
```
其中,`<local_file>` 是本地文件的路径,`<yarn_file>` 是在 Yarn 文件系统中的路径。在提交 Flink 或 Spark 作业时,你需要指定文件资源的 Yarn 文件系统路径,例如:
```
spark-submit --master yarn --deploy-mode cluster --files <yarn_file>#<alias> <application-jar>
```
其中,`<alias>` 是文件在作业中的别名,`<application-jar>` 是应用程序的 JAR 文件。在应用程序中,你可以使用以下方法获取文件资源的路径:
```
SparkFiles.get("<alias>")
```
相关问题
Flink On Yarn的作业完整提交流程
Flink On Yarn的作业完整提交流程包括以下步骤:
1. 在Flink Web UI上提交作业,并生成Jar包。
2. 将Jar包上传至HDFS。
3. 在YARN上以Session Cluster模式启动Flink集群。
以上步骤将Flink应用程序打包并在Yarn上启动,最终可通过Flink Web UI查看应用程序的运行状态和日志信息。
flink提交任务到yarn命令
提交Flink任务到YARN的命令如下:
```
./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 examples/streaming/WordCount.jar
```
其中:
- `-m`:指定Flink集群的地址,这里使用yarn-cluster模式。
- `-yn`:指定YARN节点的数量,这里指定2个节点。
- `-yjm`:指定YARN上JobManager的内存大小,这里为1G。
- `-ytm`:指定YARN上TaskManager的内存大小,这里为1G。
- `examples/streaming/WordCount.jar`:指定要提交的Flink任务的jar包路径。
需要注意的是,提交任务前需要先启动YARN集群和Flink集群。同时,需要将Flink的lib目录下的所有jar包上传到YARN的HDFS上,以便在任务运行时能够访问到这些依赖库。
阅读全文