限制spark往hdfs写出数据时,生成_success文件
时间: 2023-04-30 18:04:40 浏览: 357
如何将数据从限制 Spark 向 HDFS 写出并生成 success 文件?
可以使用以下命令:
```
spark-submit your_script.py \
--master yarn \
--deploy-mode client \
--conf spark.yarn.submit.waitAppCompletion=false \
--conf spark.hadoop.fs.defaultFS=hdfs://your-hdfs-name-node:8020 \
--conf spark.hadoop.fs.permissions.umask-mode=022 \
--conf spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version=2 \
--conf spark.speculation=false \
--name your-app-name \
--num-executors num_of_executors \
--executor-memory executor_memory \
--executor-cores num_of_cores_per_executor \
--conf spark.executor.heartbeatInterval=300s \
--conf spark.network.timeout=600s \
--conf spark.yarn.maxAppAttempts=1 \
--conf spark.dynamicAllocation.enabled=false \
--conf spark.shuffle.service.enabled=false \
--conf spark.sql.shuffle.partitions=1000 \
--py-files python_packages.zip \
--archives python_venv.zip \
--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./python_venv.zip/python_venv/bin/python \
--conf spark.executorEnv.PYTHON_EGG_CACHE=./ \
--conf spark.pyspark.driver.python=./python_venv.zip/python_venv/bin/python \
--conf spark.pyspark.python=./python_venv.zip/python_venv/bin/python \
--conf spark.driver.maxResultSize=4g \
--conf spark.driver.memory=4g \
--conf spark.executor.memoryOverhead=4g \
--conf spark.driver.cores=2 \
--conf spark.default.parallelism=1000 \
--conf spark.sql.files.maxPartitionBytes=134217728 \
--conf spark.hadoop.validateOutputSpecs=false \
--conf spark.hadoop.mapreduce.output.fileoutputformat.suppressoutput=true \
--conf spark.hadoop.mapreduce.output.fileoutputformat.outputdir=hdfs://your-hdfs-name-node:8020/your-output-path \
--conf spark.hadoop.mapreduce.job.outputformat.class=org.apache.hadoop.mapreduce.lib.output.TextOutputFormat \
--conf spark.hadoop.mapreduce.outputcommitter.factory.scheme=hdfs \
--conf spark.hadoop.mapreduce.lazyOutput.format=true \
&& hdfs dfs -touchz hdfs://your-hdfs-name-node:8020/your-output-path/success.txt
```
说明:
- `your_script.py`: 你想要提交的 Python 脚本。
- `your-app-name`: Spark 应用程序的名称。
- `num_of_executors`: Spark 应用程序使用的执行者数。
- `executor_memory`: 每个执行者可用的内存量。
- `python_packages.zip`: 如果程序依赖其他 Python 包,该文件应该包含这些包。更多信息,请参阅 PySpark 文档。
- `python_venv.zip`: 如果程序使用虚拟环境,该文件应该包含虚拟环境。更多信息,请参阅 PySpark 文档。
- `your-hdfs-name-node`: 你的 HDFS 名称节点。
- `your-output-path`: 写出文件的路径。
以上命令将指定的脚本使用 Spark 在 YARN 上运行,并将输出写入 HDFS 指定的路径。成功运行后,命令会在指定路径生成 success.txt 文件。
阅读全文