ありがとうございます。ハイブプロトコルバッファ - ハイブでテーブルを作成中にNullPointerExceptionが発生する
現在、私たちはプロトコルバッファバイトデータを使用してHiveテーブルを作成しようとしています。プロトコルバッファを使用してHiveテーブルを作成する可能性のあるすべての手順に従いましたが、Hiveテーブルを作成するときにはNullPointerException
になります。以下は必要なすべての詳細です。
バージョン -
1. protoc 3.0.0
2.象鳥 - 4.14
3. Hortornworksサンドボックスハイブのバージョン - 1.2.1
4.いるProtobuf-javaの3.0.0
使用プロトファイル我々は、コマンド
の下に使用してJavaクラスを作成しているpackage tutorial;
option java_package = "com.mycom.hive.protobuf.serialized";
option java_outer_classname = "BankProtoTest";
message BankClass{
required string bankAmount= 1;
required string bankLocation= 2;
optional string bankName= 3;
}
message BankInfo {
repeated BankClass bankClass = 1;
}
です
protoc.exe -I=input-proto --java_out=java-output input-proto\BankProto.proto
上記のコマンドは、入力プロトコルバッファファイルのJavaクラスを生成します。
この後、このプロトコルバッファjavaファイルをmaven javaプロジェクトにコピーし、JARファイルを作成しました。 JARファイルをハイブリーブパス、つまり '/ usr/hdp/current/hive-client/lib'にコピーしました。以下
テーブルコマンドを作成
create external table bankproto
row format serde "com.twitter.elephantbird.hive.serde.ProtobufDeserializer"
with serdeproperties
("serialization.class"="com.mycom.hive.protobuf.serialized.BankProtoTest$BankInfo")
stored as
inputformat "org.apache.hadoop.mapred.SequenceFileInputFormat"
outputformat "org.apache.hadoop.mapred.SequenceFileOutputFormat"
location '/user/root/protobuf-input/';
場所で入力ファイル存在は、HDFSのシーケンスファイルとして格納されます。
このコマンドを実行した後、例外が発生しました。
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: MetaException(message:org.apache.hadoop.hive.serde2.SerDeException java.lang.NullPointerException)
これに関するお手伝いがあります。
もう一度おねがいします。
Avinash Deshmukh