■ はじめに
https://dk521123.hatenablog.com/entry/2020/05/28/175428
の続き。 Hiveで発生したトラブルをまとめる。
目次
【1】エラー「Cannot inspect org.apache.hadoop.io.IntWritable」が発生する 【2】エラー「java.lang.NoClassDefFoundError: scala/collection/Iterable」が発生する 【3】エラー「FAILED: Execution Error, return code 1」が発生する 【4】エラー「ConsistencyException」が表示
【1】エラー「Cannot inspect org.apache.hadoop.io.IntWritable」が発生する
Parquet ファイル から外部参照テーブルを作成したが、 テーブルを表示する際に以下のエラーが表示されて、データが表示できない
エラー内容
[Amazon][HiveJDBCDriver](500312) Error in fetching data rows: *org.apache.hive.service.cli.HiveSQLException:java.io.IOException: org.apache.hadoop.hive.ql.metadata.HiveException:java.lang.UnsupportedOperationException: Cannot inspect org.apache.hadoop.io.IntWritable:25:24;
原因
Parquet ファイル で定義したデータ型(int型)と 外部参照テーブル で定義したデータ型(string型)で不一致を起こしていた。
補足:調査方法
Parquetファイルをstring型で作り直し、 外部参照テーブル で定義したデータ型(string型)で一致させ SELECTしてデータを表示させる。 ⇒ 今回の場合、データが不正な形で格納されていた
解決案
* データが正しい形になるようにParquetファイルを作成しなおし、 データ型も外部テーブルと一致させるように修正
【2】エラー「java.lang.NoClassDefFoundError: scala/collection/Iterable」が発生する
ある環境で動いていたHivQLを実行したら、以下の「エラー内容」が発生した
エラー内容
その1
Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/Iterable ・・・ Caused by: java.lang.ClassNotFoundException: scala.collection.Iterable ・・・
その2:別エラー
[HiveJDBCDriver](500051) ERROR processing query/statement. Error Code: 1, SQL state: org.apache.hive.service.cli.HiveSQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.tex.TezTask at org.... . Query: SQL COUNT(*) FROM ...
対応案
エンジンを変更した。 今回の場合、以下のようにした。 (各自の状況で、別のエンジンの値に変更する必要がある)
【修正前】
SET hive.execution.engine=spark; # エラー内容・その2の場合は、未指定。
【修正後】
# MapReduce エンジンを利用する SET hive.execution.engine=mr;
hive.execution.engine について
以下の関連記事を参照のこと。
https://dk521123.hatenablog.com/entry/2020/03/04/225943
【3】エラー「FAILED: Execution Error, return code 1」が発生する
https://dk521123.hatenablog.com/entry/2020/07/16/224332
で扱った MSCK REPAIR TABLE table_name; を実行した際に、以下の「エラー内容」が表示された
エラー内容
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask /mnt/var/.../xxx.hql maximum number of executions has been reached. run query fail. command exiting with ret '1'
解決案
# 今回、たまたまだったかもしれないが、 * 不要なファイル「xxxxx_$folder$」を削除する
# 試してないけど、、、 ~~~~ set hive.msck.path.validation=ignore; MSCK REPAIR TABLE table_name; ~~~~ * hive.msck.path.validation の詳細は、以下の関連記事を参照のこと。
Hive / HiveQL ~ パーティション / あれこれ編 ~
https://dk521123.hatenablog.com/entry/2020/09/18/113637
【4】エラー「ConsistencyException」が表示
単純なSELECT文を実行した際に、 エラー「ConsistencyException」が表示されてしまった
エラー内容
エラー内容1
[Code: 500312, SQL State: HY000] [Amazon][HiveJDBCDriver] (500312) Error in fetching data rows: *org.apache.hive.service.cli.HiveSQLException; java.io.IOException: com.amazon.ws.emr.hadoop.fs.consistency.exception.ConsistencyException: eTag in metadata for File '/<s3 bucket>/xxxx/xxxx' does not match eTag from s3!:xx:xx;
エラー内容2
[Code: 500312, SQL State: HY000] [Amazon][HiveJDBCDriver] (500312) Error in fetching data rows: *org.apache.hive.service.cli.HiveSQLException; java.io.IOException: com.amazon.ws.emr.hadoop.fs.consistency.exception.ConsistencyException: 2 items inconsistent (no s3 object for associated metadata item). First object: /<s3 bucket>/xxxx/xxxx;
対応案
emrfs syncコマンドを実行してみる ~~~~ emrfs sync s3://<対象S3バケット>/<対象パス> ~~~~ emrfs syncコマンドについては、以下の関連記事を参照のこと。
https://dk521123.hatenablog.com/entry/2020/11/13/145545
補足:emrfs syncコマンドでダメな場合
以下のサイトだとemrfs syncコマンドだけではだめで、 メタデータを作り直して対応できたらしい。 1) emrfs delete-metadata 2) emrfs create-metadata 3) emrfs sync
関連記事
Amazon EMR ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/05/27/175610
Amazon EMR に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/08/05/144724
EMR / DBアクセス に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2021/06/17/114611
Hive / Partition に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/05/28/175428
エラー「SemanticException Cartesian products are disabled for safety reasons」が発生する
https://dk521123.hatenablog.com/entry/2021/06/12/093046
テーブルアクセス時に例外「Vertex failed, ... InvalidInputException」が発生する
https://dk521123.hatenablog.com/entry/2021/07/06/120134
Hive / HiveQL ~ 設定プロパティ ~
https://dk521123.hatenablog.com/entry/2020/09/19/152136
Hive / HiveQL ~ パーティション / あれこれ編 ~
https://dk521123.hatenablog.com/entry/2020/09/18/113637