Hive新規パーティション異常処理:FAILED:Execution Error,return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
今日hive関連文をテストしたとき、私がパーティションを作成したとき、突然異常が発生しました.FAILED:Execution Error,return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. これは私に少し突然防げなくて、結局以前出会ったことがなくて、そこで私はネット上で解決方法を求めて、同じく天涯に落ちた人です.
方法1:Mysql-connect jarパッケージのバージョンを下げて、それを5.1.27に下げて、私はちょうど5.1.38を使っています.彼の言う原理が分からないが、結局彼は成功して、やってみて、やっと相応のjarパッケージを見つけて、胸いっぱいにサービスプログラムを起動します....間違え続けて、慣れました、PASS.方法2:hive-site.xmlのhive.metastore.schema.verificationプロパティはtrueに設定され、デフォルトではfalseです.試してみましたが、相変わらずだめです.PASS.方法3:MySQLでhiveのcharacter_を変更するset_Databaseの符号化フォーマットをlatin 1に変更します.前に異常があったのを覚えています.調べてみましたが、やはり大丈夫です.この方法もだめだと思っていたが、その後多くの投稿を見て、何度も試してみたが、最終的にこの方法が問題を解決できることに気づいたが、操作過程はネット上で言うほど簡単ではなく、一定の操作手順が必要だ.
以下は私がまとめた正しい操作手順です. Hiveサービスプロセスを閉じる閉じなければ、その後の操作の効果はほとんど実現できず、異常な問題を解決できない.exit; -> hive操作インタフェースCtrl+Cを終了する(2つのキーを一緒に押して、終了できない場合は何度も押す)->hiveプロセスを終了する(以上の操作は異なるXshellインタフェースであるべき) MySQLデータベースにアクセスし、hiveデータベース を実行する. Hiveのデータベースを再初期化 MySQLインタフェースに戻り、Hiveデータベースに入り、符号化フォーマット を変更する. Hiveプロセス を再起動する.別のウィンドウを開き、Hiveに入ると、以前に新規作成したデータベースとテーブルがHDFSに保存されていることに気づきましたが、新規作成したhiveにはこれらのデータはなく、すべてのデータが新規作成されます.しかし、私は奇妙なことに気づきました.新しいデータベースとデータテーブルと前に建てられたデータベースとテーブルが重複すれば、新しいデータは古いデータを上書きします.もし誰かが知っているなら、これはなぜか、コメントエリアで議論することができます.皆さん、ありがとうございました.みんなが迅速に問題を解決することを望んでいます.
方法1:Mysql-connect jarパッケージのバージョンを下げて、それを5.1.27に下げて、私はちょうど5.1.38を使っています.彼の言う原理が分からないが、結局彼は成功して、やってみて、やっと相応のjarパッケージを見つけて、胸いっぱいにサービスプログラムを起動します....間違え続けて、慣れました、PASS.方法2:hive-site.xmlのhive.metastore.schema.verificationプロパティはtrueに設定され、デフォルトではfalseです.試してみましたが、相変わらずだめです.PASS.方法3:MySQLでhiveのcharacter_を変更するset_Databaseの符号化フォーマットをlatin 1に変更します.前に異常があったのを覚えています.調べてみましたが、やはり大丈夫です.この方法もだめだと思っていたが、その後多くの投稿を見て、何度も試してみたが、最終的にこの方法が問題を解決できることに気づいたが、操作過程はネット上で言うほど簡単ではなく、一定の操作手順が必要だ.
以下は私がまとめた正しい操作手順です.
mysql -u root -p
//
drop database hive;
を削除する操作が完了すると、インタフェースはMySQLデータベースを保持し、また新しいリンクウィンドウは次の操作schematool -dbType mysql -initSchema
初期化すると、MySQLに新しいhiveデータベースが自動的にロードされます.use hive;
alter database hive character set latin1;
# character_set_database latin1; , 。
show variables like '%char%';
# MySQL , ;
exit;
hive --service metastore
# ,