【问题标题】:Setting S3 output file grantees for spark output files为 spark 输出文件设置 S3 输出文件授权者
【发布时间】:2015-08-18 04:06:08
【问题描述】:

我在 AWS EMR 上运行 Spark,但在获取输出文件的正确权限时遇到了一些问题 (rdd.saveAsTextFile('<file_dir_name>'))。在 hive 中,我会在开头添加一行 set fs.s3.canned.acl=BucketOwnerFullControl ,这将设置正确的权限。对于 Spark,我尝试运行:

hadoop jar /mnt/var/lib/hadoop/steps/s-3HIRLHJJXV3SJ/script-runner.jar \
/home/hadoop/spark/bin/spark-submit --deploy-mode cluster --master yarn-cluster \
--conf "spark.driver.extraJavaOptions -Dfs.s3.canned.acl=BucketOwnerFullControl" \ 
hdfs:///user/hadoop/spark.py

但是没有正确设置输出文件的权限。将“fs.s3.canned.acl=BucketOwnerFullControl”或任何 S3 预设权限传递给 spark 作业的正确方法是什么?

提前致谢

【问题讨论】:

    标签: hadoop amazon-web-services amazon-s3 apache-spark


    【解决方案1】:

    我找到了解决方案。在作业中,您必须访问 JavaSparkContext 并从那里获取 Hadoop 配置并在那里设置参数。例如:

    sc._jsc.hadoopConfiguration().set('fs.s3.canned.acl','BucketOwnerFullControl')
    

    【讨论】:

      【解决方案2】:

      在 spark 中传递 hadoop 配置键的正确方法是使用 --conf 和前缀为 spark.hadoop. 的键。你的命令看起来像

      hadoop jar /mnt/var/lib/hadoop/steps/s-3HIRLHJJXV3SJ/script-runner.jar \
      /home/hadoop/spark/bin/spark-submit --deploy-mode cluster --master yarn-cluster \
      --conf "spark.hadoop.fs.s3.canned.acl=BucketOwnerFullControl" \ 
      hdfs:///user/hadoop/spark.py
      

      不幸的是,我在 spark 的官方文档中找不到任何参考。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-08
        相关资源
        最近更新 更多