2017-08-31 15 views
1

Nifi 1.3.0とHiveでは、誰かがこの問題を解決するのに役立ちます。私はハイブ1.2とハイブ2.1.1で同じエラーが発生します。ハイブテーブルは、パーティクルド,バケットであり、ORCの形式で格納されています。NiFi PutHiveStreamingプロセッサ(ハイブ付):エンドポイントへの接続に失敗しました

パーティションがhdfs上に作成されましたが、書き込みステージでデータが失敗しました。以下のようにログを確認してください:

[5:07 AM] papesdiop: Failed connecting to EndPoint {metaStoreUri='thrift://localhost:9083', database='mydb', table='guys', partitionVals=[dev] } 
[5:13 AM] papesdiop: I get in log see next, hope it might help too: 
[5:13 AM] papesdiop: Caused by: org.apache.hive.hcatalog.streaming.TransactionError: Unable to acquire lock on {metaStoreUri='thrift://localhost:9083', database='mydb', table='guys', partitionVals=[dev] } 
  at org.apache.hive.hcatalog.streaming.HiveEndPoint$TransactionBatchImpl.beginNextTransactionImpl(HiveEndPoint.java:578) 

FULLトレースログ:

再接続。 (TTransport.java:TTransport.java: (TBinaryProtocol.java:429) at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:318) at org.apache.thrift。プロトコル.BinaryProtocol.readMessageBegin(TBinaryProtocol.java:219) at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore $ Client.recv_lock( ThriftHiveMetastore.java:3906) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore $ Client。 sun.reflect.DelegatingMethodAccessorImplでロック(ThriftHiveMetastore.java:3893)sun.reflect.GeneratedMethodAccessor380.invokeでorg.apache.hadoop.hive.metastore.HiveMetaStoreClient.lock(HiveMetaStoreClient.java:1863) で (不明なソース) .invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:152) $ Proxy126.lock(不明なソース) at org.apache.hive.hcatalog.streaming.HiveEndPoint $ TransactionBatchImpl.beginNextTransactionImpl(HiveEndPoint.java:573) at org.apache.hive.hcatalog.streaming .HiveEndPoint $ TransactionBatchImpl.beginNextTransaction(HiveEndPoint.java:547) at org.apache.nifi.util.hive.HiveWriter.nextTxnBatch(HiveWriter.java:261) at org.apache.nifi.util.hive.HiveWriter。(HiveWriter.java:73) at org.apache.nifi .util.hive.HiveUtils.makeHiveWriter(HiveUtils.java:46) at org.apache.nifi.processors.hive.PutHiveStreaming.makeHiveWriter(PutHiveStreaming.java:964) at org.apache.nifi.processors.hive.PutHiveStreaming .getOrCreateWriter(PutHiveStreaming.java:875) at org.apache.nifi.processors.hive.PutHiveStreaming.lambda $ null $ 40(PutHiveStreaming.java:676) at org.apache.nifi.processor.util.pattern.ExceptionHandler。 org.apache.nifi.processors.hive.PutHiveStreaming.lambda $ onTrigger $ 44(PutHiveStreaming.java:673)で を実行する(ExceptionHandler.java:127) at org.apache.nifi.controller.repo sitory.StandardProcessSession.read(StandardProcessSession.java:2136) at org.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2106) at org.apache.nifi.processors.hive.PutHiveStreaming.onTriggerパブリックプロパティ(パブリックメソッド)パブリックメソッドパブリックメソッドパブリックメソッドパブリックメソッドパブリックメソッドパブリックメソッドパブリックメソッドパブリックメソッドパブリックメソッドパブリックメソッドパブリックメソッドパブリックメソッドパブリックメソッドパブリックメソッドパブリックメソッドパブリックメソッド.java:114) at org.apache.nifi.processor.util.pattern.RollbackOnFailure.onTrigger(RollbackOnFailure.java:184) at org.apache.nifi.processors。hive.PutHiveStreaming.onTrigger(PutHiveStreaming.java:551) at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1120) at org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask。 Javaの:147) org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47) でorg.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent $ 1.run(TimerDrivenSchedulingAgent.java:132で) java.util.concurrent.Executorsで$ RunnableAdapter.call(Executors.java:511) java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301(ScheduledThreadPoolExecutor.java:180)(スケジューリングされたスレッドプールのインスタンス)。 (ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 2017-09-07 06:41:31,015 DEBUG [Timer-4] oanprocessors.hive.PutHiveStreaming PutHiveStreaming [ID = 13ed53d2-015e-1000-c7b1-5af434c38751]すべてのライターでハートビートを送信開始 2017-09-07 06:41:31,890 INFO [Timer-Driven Process Thread-3] hive.metastore URIスチフトでメタストアに接続しようとしています: // localhost:9083 2017-09-07 06:41:31,893 INFO [Timer-Driven Process Thread-3] hive.metastoreメタストアに接続しました。 2017-09-07 06:41:31,911エラー[Timer-Driven Process Thread-3] oanprocessors.hive.PutHiveStreaming PutHiveStreaming [id = 13ed53d2-015e-1000-c7b1-5af434c38751]エンドポイント用のHiveWriterの作成に失敗しました:{metaStoreUri 'Connect':= 'thrift:// localhost:9083'、データベース= 'デフォルト'、テーブル= 'みんな'、partitionVals = [dev]}:org.apache.nifi.util.hive.HiveWriter $ ConnectFailure:EndPointへの接続に失敗しました{metaStoreUri = 'thrift:// localhost:9083'、データベース= 'デフォルト'、テーブル= 'みんな'、partitionVals = [dev]} org.apache.nifi.util.hive.HiveWriter $ ConnectFailure:エンドポイントへの接続に失敗しました{metaStoreUri HiveWriter。(HiveWriter.java:79)で、 を「 'thrift:// localhost:9083」、データベース= at org.apache.nifi.util.hive.HiveUtils.makeHiveWriter(HiveUtils.java:46) at org.apache.nifi.processors.hive.PutHiveSt reaming.makeHiveWriter(PutHiveStreaming.java:964) at org.apache.nifi.processors.hive.PutHiveStreaming.getOrCreateWriter(PutHiveStreaming.java:875) at org.apache.nifi.processors.hive.PutHiveStreaming.lambda $ null $ 40 (PutHiveStreaming.java:676) at org.apache.nifi.processor.util.pattern.ExceptionHandler.execute(ExceptionHandler.java:127) at org.apache.nifi.processors.hive.PutHiveStreaming.lambda $ onTrigger $ 44 org.apache.nifi.controller.repository.StandardProcessSession.readでorg.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2136) でPutHiveStreaming.java:673) (StandardProcessSession.java:2106) at org.apache.nifi.processors.hive.PutHiveStreaming.onTrigger(PutHiveStreaming.java:627) at org。 apache.nifi.processors.hive.PutHiveStreaming.lambda $ onTrigger $ 36(PutHiveStreaming.java:551) at org.apache.nifi.processor.util.pattern.PartialFunctions.onTrigger(PartialFunctions.java:114) at org.apache .nifi.processor.util.pattern.RollbackOnFailure.onTrigger(RollbackOnFailure.java:184) at org.apache.nifi.processors.hive.PutHiveStreaming.onTrigger(PutHiveStreaming.java:551) at org.apache.nifi.controller org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.callでorg.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:147) で.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1120) (ContinuallyRunProcessorTask .java:47) at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent $ 1.run(TimerDrivenS chedulingAgent。java:132) at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent。 ScheduledThreadPoolExecutorの$ ScheduledFutureTask.access java.util.concurrent.ThreadPoolExecutor.runWorkerでjava.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) (ThreadPoolExecutor.java:1149で$ 301(ScheduledThreadPoolExecutor.java:180) ) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 原因:org.apache.nifi.util.hive .HiveWriter $ TxnBatchFailure:EndPointからトランザクションバッチの取得に失敗しました:{metaStoreUri = 'thrift:// loc org.apache.nifi.util.hive.HiveWriter.nextTxnBatch(HiveWriter.java:264)の でalhost:9083 '、database =' default '、table =' guys '、partitionVals = [dev]} at org.apache .nifi.util.hive.HiveWriter(HiveWriter.java:73) ... 24個の共通フレームが省略されました 原因:org.apache.hive.hcatalog.streaming.TransactionError:{metaStoreUri = 'thrift (HiveEndPoint.java:578):// localhost:9083 '、database =' default '、table =' guys '、partitionVals = [dev]} at org.apache.hive.hcatalog.streaming.HiveEndPoint $ TransactionBatchImpl.beginNextTransactionImpl at org.apache.hive.hcatalog.streaming.HiveEndPoint $ TransactionBatchImpl.beginNextTransaction(HiveEndPoint.java:547) at org.apache.nifi.util.hive.HiveWriter.nextTxnBatch(HiveWriter.java:261) ... 25共通フレームは省略されました 原因:org.apache.thrift.transport.TTransportException:null at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132) at org.apache.thrift.transport.TTransport。 READALL org.apache.thrift.protocol.TBinaryProtocol.readI32でorg.apache.thrift.protocol.TBinaryProtocol.readAllで(TTransport.java:86) (TBinaryProtocol.java:429) (TBinaryProtocol.java:318) でorg.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:219)org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)で org.apache.hadoop.hive.metastore.apiで 。 ThriftHiveMetastore $ Client.recv_lock(ThriftHiveMetastore.java:3906) at org.apache.hadoop.hive.metasto re.api.ThriftHiveMetastore $ Client.lock(ThriftHiveMetastore.java:3893) at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.lock(HiveMetaStoreClient.java:1863) at sun.reflect.GeneratedMethodAccessor380.invoke(不明なソースorg.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invokeでsun.reflect.DelegatingMethodAccessorImpl.invoke java.lang.reflect.Method.invokeで(DelegatingMethodAccessorImpl.java:43) (Method.java:498) で) (RetryingMetaStoreClient.java:152) com.sun.proxy。$ Proxy126.lock(不明なソース) at org.apache.hive.hcatalog.streaming.HiveEndPoint $ TransactionBatchImpl.beginNextTransactionImpl(HiveEndPoint.java:573) .. 27個の共通フレームが省略された 2017-09-07 06:41:31,911エラー[タイマDリバースプロセススレッド3] oanprocessors.hive.PutHiveStreaming PutHiveStreaming [id = 13ed53d2-015e-1000-c7b1-5af434c38751]ハイブエンドポイントに接続中にエラーが発生しました:テーブルスタッフがリリーフ:// localhost:9083 2017-09-07 06: 41:31,911 DEBUG [Timer-Driven Process Thread-3] oanprocessors.hive.PutHiveStreaming PutHiveStreaming [id = 13ed53d2-015e-1000-c7b1-5af434c38751]がリソースを取得することを選択しました。 1000ミリ秒の間に再度実行するようスケジュールされません。 2017-09-07 06:41:31,912エラー[タイマー駆動プロセススレッド3] oanprocessors.hive.PutHiveStreaming PutHiveStreaming [id = 13ed53d2-015e-1000-c7b1-5af434c38751 ]ハイブストリーミング接続/書き込みエラー、フローファイルにペナルティが生じて再試行されます。 org.apache.nifi.util.hive。HiveWriter $ ConnectFailure:失敗したエンドポイント{metaStoreUriに接続している= '倹約:// localhostを:9083'、データベース= 'デフォルト'、テーブル= '男'、partitionVals =

ハイブテーブル

CREATE TABLE mydb.guys (    firstname string,    lastname string) PARTITIONED BY (    job string) CLUSTERED BY (   firstname) INTO 10 BUCKETS ROW FORMAT SERDE   'org.apache.hadoop.hive.ql.io.orc.OrcSerde' STORED AS ORC LOCATION   'hdfs://localhost:9000/user/papesdiop/guys' TBLPROPERTIES ( 'transactional'='true')

ありがとうございます。

答えて

0

HDFSへの書き込み中にこれが失敗した場合、ユーザーにはターゲットディレクトリへの書き込み権限がないと思われますか?完全なスタックトレースからより多くの情報がある場合は、問題の診断に役立つように、質問に追加してください。私はしばらく前にこの問題を持っていたとき、それは私のNiFiユーザーがターゲットOS上で作成する必要があるためだったとPutHiveStreamingがORCファイル(複数可)に書き出すための許可を得るために、適切なHDFSグループ(複数可)に追加しましたHDFSで

+0

こんにちはマット、 私はすべてのサービスに同じユーザー(HDFS、糸、hiveserver2、メタストア、nifi)を使用します。 hdfsのパーティションは動的に作成されますが、空のファイルはdelta_0022710_0022714/bucket_00001_flush_lengthです。 完全なスタックトレースログ: – Papesdiop

+0

私は完全なトレースログで問題を編集しました。あなたの助けをありがとう – Papesdiop

+0

Apache NiFiまたはHortonworks DataFlowを使用していますか?あなたのクラスタはApache Hadoopですか、あるいはベンダーからのディストリビューションですか?このエラーは、通常、互換性のないバージョンを示すスリフトの不一致があることを意味します。 – mattyb

関連する問題