0

グラフ分析を行うために、giraphでハイブジョブを実行しようとしていますが、これまでに見たことのない新しいエラーにぶつかり続けるたびに、何時間も試しても解決策が見つかりません。新しいエラー。

次のコマンドを使用してハイブジョブを実行しました

sudo -u hdfs hive --service jar \
    giraph-hcatalog-0.2-SNAPSHOT-jar-with-dependencies.jar \
    org.apache.giraph.io.hcatalog.HiveGiraphRunner \
    -vertexClass org.apache.giraph.vertex.MutableVertex \
    -vertexInputFormatClass org.apache.giraph.io.hcatalog.HCatalogVertexInputFormat \
    -vertexOutputFormatClass org.apache.giraph.io.hcatalog.HCatalogVertexOutputFormat \
    -w 1 -vi giraph_input -o giraph_output \
    HIVE_OPTS="-hiveconf javax.jdo.option.ConnectionURL=jdbc:mysql://localhost/metastore 
               -hiveconf javax.jdo.option.ConnectionDriverName=com.mysql.jdbc.Driver
               -hiveconf javax.jdo.option.ConnectionUserName=root
               -hiveconf javax.jdo.option.ConnectionPassword=root
               -hiveconf datanucleus.autoCreateSchema=false
               -hiveconf datanucleus.fixedDatastore=true"

i / pに何か問題がありますか?hcatinputformatvertexとoutformatvertexを使用してhivegiraphrunnerを使用してハイブジョブを実行したかっただけです

hadoop、hive、mysqlは機能しており、hadoop-0.20.2を使用して適切に実行されます(hadoop_env、hive-siteを構成)hadoop-hive(cloudera)

giraphjarは成功したビルドでした

私が見逃した、または構成する必要があるものです

どんな提案も大いに役立ちます..!!

次の例外を取得します。

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()Lcom/google/common/util/concurrent/ListeningExecutorService;
    at com.google.common.cache.LocalCache.<clinit>(LocalCache.java:156)
    at com.google.common.cache.LocalCache$LocalManualCache.<init>(LocalCache.java:4765)
    at com.google.common.cache.CacheBuilder.build(CacheBuilder.java:821)
    at org.apache.hcatalog.common.HiveClientCache.<init>(HiveClientCache.java:89)
    at org.apache.hcatalog.common.HCatUtil.getHiveClient(HCatUtil.java:537)
    at org.apache.hcatalog.mapreduce.HCatUtils.getInputJobInfo(HCatUtils.java:75)
    at org.apache.giraph.io.hcatalog.GiraphHCatInputFormat.setVertexInput(GiraphHCatInputFormat.java:81)
    at org.apache.giraph.io.hcatalog.HiveGiraphRunner.run(HiveGiraphRunner.java:174)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
    at org.apache.giraph.io.hcatalog.HiveGiraphRunner.main(HiveGiraphRunner.java:147)
    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:601)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:197)
    enter code here
4

2 に答える 2

1

Giraphはguava12.0に依存しています(そのPOM、752〜756行を参照)。これは、MoreExecutors.sameThreadExecutor()hive / libにすでにr06があり、HiveがJVMにgiraphを直接ロードする場合、(10.0で導入)が見つからないことを説明しています。

Hiveでjarをアップグレードしてみることができますが、2つのバージョンの間にこのような距離があると、互換性がなくなる可能性があります。その場合、私はHadoopユーザーではなく、詳細はわかりませんが、Hiveをアップグレードする必要があるかもしれません。

于 2013-01-19T20:40:43.660 に答える
0

/ hive / libからグアバをインポートできます。他の依存関係が発生した場合は、それらをに追加します。

于 2013-03-19T09:11:27.240 に答える