0

我試圖使用S3 connectorGoogle Cloud Dataproc,我遇到了java.lang.VerifyError。這似乎發生在我沒有修改的全新羣集上。這裏是一個例子:與Cloud Dataproc一起使用S3連接器時的java.lang.VerifyError

$ hadoop fs -ls s3://<my-bucket>/ 
Exception in thread "main" java.lang.VerifyError: Cannot inherit from final class 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
    ... (truncated stack trace) ... 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) 
    at org.apache.hadoop.fs.FsShell.main(FsShell.java:340) 

我該如何解決這個問題,並將S3連接器與Cloud Dataproc結合使用?

回答

1

由於S3 conenctor和Google BigQuery Hadoop connector之間的Apache HttpComponents版本衝突,會發生此問題。這是應該使用Google BigQuery連接器解決的問題。

與此同時,您可以刪除BigQuery連接器作爲修復。這將使啓用使用S3連接器,但它也將禁用使用BigQuery與雲Dataproc。要刪除BigQuery連接器,請在創建Cloud Dataproc羣集時使用initialization action。以下是一個將刪除BigQuery連接器的示例初始化操作。

#!/bin/bash 
"rm /usr/lib/hadoop/lib/bigquery-connector-0.7.2-hadoop2.jar" 
相關問題