0

私のSparkアプリケーションでは、コマンドライン引数を使ってaws資格情報を渡しました。Spark:Sparkアプリケーションで明示的にaws資格情報を使用しない方法

spark.sparkContext.hadoopConfiguration.set("fs.s3.awsAccessKeyId", awsAccessKeyId) 
spark.sparkContext.hadoopConfiguration.set("fs.s3.awsSecretAccessKey", awsSecretAccessKey) 
spark.sparkContext.hadoopConfiguration.set("fs.s3.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem") 

しかし、クラスタモードを明示的にノード間で資格情報を渡すには、これらの資格情報をテキストとして渡されるので、巨大なセキュリティ上の問題があります。

spark.sparkContext.hadoopConfiguration.set("fs.s3.awsAccessKeyId", awsAccessKeyId) 
spark.sparkContext.hadoopConfiguration.set("fs.s3.awsSecretAccessKey", awsSecretAccessKey) 

答えて

2

あなたはコアsite.xmlの中で、次の設定を追加することができます。私は自分のアプリケーションがIAmRoleまたはスパークのアプリでこのコードの2行を必要としない他の適切なアプローチで動作するようにするにはどうすればよい

Hadoopのconfののと単にexport HADOOP_CONF_DIR=~/Private/.aws/hadoop_conf火花やconf/spark-env.sh

を実行する前に、

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
    <property> 
    <name>fs.s3n.awsAccessKeyId</name> 
    <value>my_aws_access_key_id_here</value> 
    </property> 
    <property> 
    <name>fs.s3n.awsSecretAccessKey</name> 
    <value>my_aws_secret_access_key_here</value> 
    </property> 
</configuration> 

は、上記のファイルを使用するには、あなたのコードベースでそれを追加することはできません。そして、IAMの役割のために既にスパーク1.6でバグが開いています。https://issues.apache.org/jira/browse/SPARK-16363

関連する問題