Google以「Interoperability Mode」的形式提供對其雲存儲服務的「s3兼容」訪問權限。如何使用Spark與谷歌雲存儲的「互操作性模式」?
我們在封閉的網絡上運行火花,我們與互聯網的連接是通過代理。 Google自己的用於雲存儲的hadoop連接器沒有針對代理的任何配置設置,因此我們必須使用內置的spark s3a連接器,該連接器允許您設置所有需要設置的屬性以使用可以通話的代理到互聯網,並通過核心的site.xml適當的谷歌URL端點:
<!-- example xml -->
<name>fs.s3a.access.key</name>
<value>....</value>
<name>fs.s3a.secret.key</name>
<value>....</value>
<name>fs.s3a.endpoint</name>
<value>https://storage.googleapis.com</value>
<name>fs.s3a.connection.ssl.enabled</name>
<value>True</value>
<name>fs.s3a.proxy.host</name>
<value>proxyhost</value>
<name>fs.s3a.proxy.port</name>
<value>12345</value>
然而,與boto,這與代理在我們的環境有類似的設置工作正常,Spark是扔com.cloudera。 com.amazonaws.services.s3.model.AmazonS3Exception當它試圖使用我們的代理,看起來像這樣:
com.cloudera.com.amazonaws.services.s3.model.AmazonS3Exception:
The provided security credentials are not valid.
(Service: Amazon S3; Status Code: 403; Error Code: InvalidSecurity;
Request ID: null), S3 Extended Request ID: null
我在這裏做錯了什麼,或者這只是不受支持?
以同樣的方式,我很好奇,如果這個版本的火花甚至使用jets3t庫?我在找conflictinginformation。