私はHcatalogを使用して、Hcatalputを使用してHiberalテーブル 'A'からHcatInputFormatで詳細を取得し、それを処理し、HcatOutputフォーマットを使用してHiveテーブル 'B'に書き戻します。HCatOutputFormat ClassNotFoundException
私はEclipseを使用してプログラムを書いて、プロジェクトから実行可能な「Hadooptest」jarファイルを作成し、と私は抽出することにより実行可能なjarファイルを作成するとき、私は-libjarsパラメータ
で(HadoopクラスタでのHadoop jarコマンドを使用してjarファイルを実行しますすべて参照されたjarをjarファイルに入れてからhadoopクラスタで実行するとmapreduceはうまく動作して正常に終了します
生成されたJARの隣にサブフォルダに必要なライブラリをコピーしてrunnable jarを作成すると、 'オプションを選択し、jarライブラリとrefrencedライブラリの両方をhadoopクラスタに移動して実行します。
"org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.lang.RuntimeException:java.lang.ClassNotFoundExceptionがクラス org.apache.hive.hcatalog.mapreduce.HCatOutputFormatが見つかりません"以下
は、完全な糸のログです:
2016-06-29 12:17:57,951 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Created MRAppMaster for application appattempt_1466834505106_0057_000002
2016-06-29 12:17:58,672 WARN [main] org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2016-06-29 12:17:58,773 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Executing with tokens:
2016-06-29 12:17:58,773 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Kind: YARN_AM_RM_TOKEN, Service: , Ident: (appAttemptId { application_id { id: 57 cluster_timestamp: 1466834505106 } attemptId: 2 } keyId: 783034855)
2016-06-29 12:17:58,974 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Using mapred newApiCommitter.
2016-06-29 12:17:59,840 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: OutputCommitter set in config null
2016-06-29 12:17:59,920 INFO [main] org.apache.hadoop.service.AbstractService: Service org.apache.hadoop.mapreduce.v2.app.MRAppMaster failed in state INITED; cause: org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hive.hcatalog.mapreduce.HCatOutputFormat not found
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hive.hcatalog.mapreduce.HCatOutputFormat not found
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$1.call(MRAppMaster.java:472)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$1.call(MRAppMaster.java:452)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.callWithJobClassLoader(MRAppMaster.java:1538)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.createOutputCommitter(MRAppMaster.java:452)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.serviceInit(MRAppMaster.java:371)
at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$4.run(MRAppMaster.java:1496)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.initAndStartAppMaster(MRAppMaster.java:1493)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.main(MRAppMaster.java:1426)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hive.hcatalog.mapreduce.HCatOutputFormat not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2195)
at org.apache.hadoop.mapreduce.task.JobContextImpl.getOutputFormatClass(JobContextImpl.java:222)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$1.call(MRAppMaster.java:468)
... 11 more
Caused by: java.lang.ClassNotFoundException: Class org.apache.hive.hcatalog.mapreduce.HCatOutputFormat not found
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2101)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2193)
... 13 more
End of LogType:syslog
そして、私が別々のフォルダに必要なライブラリをエクスポートし、瓶自体に抽出していないことが必要です。
これを理解する助けがあれば幸いです。
うん@は..私はまさにこれをやっている54l3d ..私は上記の行で言及しています...私は$ LIB_JARSパラメータを渡すために-libjarsを使用していますが、HADOOP_CLASSPATH環境変数も設定しています...しかし、まだ** HcatOutputFormat ClassNotFoundException "** – abisheksampath