【问题标题】:Error while copying external jars to /home/hadoop/lib folder EMR Amazon将外部 jar 复制到 /home/hadoop/lib 文件夹 EMR Amazon 时出错
【发布时间】:2015-01-14 17:57:56
【问题描述】:

我正在将我的外部 jar 复制到 EMR 中的 /home/hadoop/lib directoy 作为 bootstrap 进程。但它在引导过程中显示以下错误

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager: method <init>()V not found
    at com.amazonaws.http.ConnectionManagerFactory.createThreadSafeClientConnManager(ConnectionManagerFactory.java:26)
    at com.amazonaws.http.HttpClientFactory.createHttpClient(HttpClientFactory.java:95)
    at com.amazonaws.http.AmazonHttpClient.<init>(AmazonHttpClient.java:117)
    at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:60)
    at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:295)
    at org.apache.hadoop.fs.s3native.NativeS3FileSystem.initialize(NativeS3FileSystem.java:500)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1413)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:68)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1431)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:256)
    at com.amazon.elasticmapreduce.scriptrunner.ScriptRunner.fetchFile(ScriptRunner.java:39)
    at com.amazon.elasticmapreduce.scriptrunner.ScriptRunner.main(ScriptRunner.java:56)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:187)  

【问题讨论】:

标签: hadoop mahout emr


【解决方案1】:

您需要将此作为引导操作。就像放置一个脚本来复制到 S3 一样简单,然后如果您从命令行启动 EMR,请添加如下参数:

--bootstrap-action 's3://my-bucket/boostrap.sh'

或者,如果您是通过网络界面执行此操作,只需在“引导操作”中将文件的位置作为“自定义操作”输入即可。

【讨论】:

    【解决方案2】:

    我假设您正在使用 java 进程将外部 jar 下载到 /home/hadoop/lib/ 并且您正在使用 amazon s3 java 客户端下载相同的内容。

    当您运行代码时,用于 s3 的 amazon java sdk 需要存在其他依赖项 jar。

    您需要以正确的顺序和版本号添加它们。 或者,您可以使用 shell 脚本将外部 jar 下载到 /home/hadoo/lib

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-31
      • 1970-01-01
      相关资源
      最近更新 更多