問題タブ [avro]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - メッセージに複数のメッセージが含まれている場合のavroスキーマ(python)のコンパイル
私import avro
はPythonでavroスキーマをコンパイルするためになどを使用します。時々、私のavroスキーマは次のようになります。
タイプミスは無視してください。メッセージを伝えたいだけです。要点は、2つのavroスキーマがあるということです。avroスキーマの1つは、フィールドの1つとして2番目のavroスキーマを使用します。avro.schema.parse(....)
正しくコンパイルできるように、このようなavroメッセージを呼び出すにはどうすればよいですか?
asynchronous - 方法: Avro で Netty を使用した非同期コールバック
NettyServer 実装を使用して非同期 Avro 呼び出しを実装しようとしています。ソースコードを掘り下げた後、TestNettyServerWithCallbacks.java から NettyServer の使用方法の例を見つけました。
いくつかのテストを実行すると、NettyServer が hello(Callback) メソッドを呼び出さず、代わりに同期 hello() メソッドを呼び出し続けることがわかりました。クライアント プログラムは "Hello" を出力しますが、結果として "Hello-ASYNC" を期待しています。何が起こっているのか本当にわかりません。
誰かが私に光を当てて、おそらく間違いを指摘してくれることを願っています. 以下は、単純な非同期 avro テストを実行するために使用するコードです。
AvroClient.java - クライアント コード。
AvroNetty.java - サーバー コード
ChatImpl.java
このインターフェースは avro-tool Chat.java によって自動生成されます
Avro スキーマは次のとおりです。
arrays - avro スキーマのオプションの配列
オプションの配列を持つことが可能かどうか疑問に思っています。次のようなスキーマを想定しましょう。
「simple_array」なしで avro レコードを書き込もうとすると、datafilewriter で NPE が発生します。サブレコードの場合は問題ありませんが、配列をオプションとして定義しようとすると:
NPE は発生しませんが、実行時例外が発生します。
ありがとう。
java - SpecificDatumWriterの作成時にNullPointerExceptionが発生する
TomWhiteの本Hadoop:The DefinitiveGuideでApacheAvroを学習しているときに、エラーが発生しました。
この例には3つのステップがあります。
Avroスキーマファイルを作成します(
/li>Pair.avsc
)スキーマファイルをコンパイルして、Javaクラス(
Pair.java
)を作成します。$ java -jar $AVRO_HOME/avro-tools-1.6.2.jar compile schema src/main/resources/Pair.avsc src/main/java/
SpecificDatumWriter<Pair>
およびを使用して、SpecificDatumReader<Pair>
データをシリアル化/逆シリアル化します。
元のメソッド例はtestPairSpecific()
https://github.com/tomwhite/hadoop-book/blob/master/avro/src/main/java/AvroTest.javaにあります。
サンプルコード( https://github.com/philipjkim/avro-examples/blob/master/src/test/java/org/sooo/AvroTest.java )を書き直しましたcreatePairAndSerializeThenDeserialize()
。これは、元のコードとほぼ同じです。違いは次のとおりです。
- 私が使用したAvroのバージョンは、元の1.3.2では1.6.2です。
Pair.java
avro-tools.jarによって作成された内容は異なります(元の: https ://github.com/tomwhite/hadoop-book/blob/master/avro/src/main/java/Pair.java 、私のもの:https:// github.com/philipjkim/avro-examples/blob/master/src/main/java/org/sooo/Pair.java)
テストを実行した後、エラーが発生しました:
AvroTest.createPairAndSerializeThenDeserialize()
は:
この例の何が問題になっているのか知りたいのですが。コメントありがとうございます。
参考までに、私のサンプルプロジェクトリポジトリはhttps://github.com/philipjkim/avro-examplesです。
hadoop - プレーン テキスト入力と avro 出力を使用する mapreduce ジョブ
Avro を map reduce で使用することについてかなり混乱しており、従うべき適切なチュートリアルが見つかりません。
AvroJob や AvroMapper などのクラスは、入力と出力の両方が Avro データ ファイルである場合の問題に対応しているようです。入力が単なるプレーン テキストの場合はどうでしょうか。
具体的には:
私のマッパーは、LongWritable キーと Text 値を入力として受け取ります。Text キーと MyAvroRecord 値を発行します。
私のレデューサーは、Text キーと MyAvroRecords の Iterator を入力として取り、Text キーと MyAvroRecord 値を発行します。
これらの Text キーと MyAvroRecord 値をファイルに書き込む OutputFormat を取得するにはどうすればよいですか?
乾杯、デイブ
maven - Maven:githubから依存関係ソースをダウンロードするプラグイン?
に依存するビルドがありますがcom.odiago.avro:odiago-avro:jar:1.0.5
、どのリポジトリでもビルド済みのものを見つけることができませんでした。
ソースはgithubで入手できます。Mavenに依存関係をダウンロードしてビルドさせるために使用できるMavenプラグインはありますか、それとも手動でダウンロードしてインストールする必要がありますか?
java - Apache AVROは(大規模な)データ構造をどのようにシリアル化しますか
私はhadoopでAVROを使用することを検討しています。しかし、私は大きなデータ構造のシリアル化と(data-)クラスにメソッドを追加する方法に関心があります。
この例(http://blog.voidsearch.com/bigdata/apache-avro-in-practice/から取得)は、Facebookユーザーのモデルを示しています。
avroは、このモデルでfacebookuserの完全なソーシャルグラフをシリアル化しますか?
[つまり、1人のユーザーをシリアル化する場合、シリアル化にはそのすべての友人とその友人などが含まれますか?]
答えが「はい」の場合、必要なときにいつでもアプリケーションで検索できるように、参照ではなく友人のIDを保存したいと思います。その場合、IDの代わりに実際の友達を返すメソッドを追加できるようにしたいと思います。
生成されたAVROJavaクラスをラップ/拡張してメソッドを追加するにはどうすればよいですか?
(たとえば、friend-countを返すメソッドを追加するためにも)
python - 含まれているWriter()がStringIOを閉じても、StringIOを使用できますか?
Pythonavroライブラリを使用しています。http経由でavroファイルを送信したいのですが、特に最初にそのファイルをディスクに保存したくないので、送信する準備ができるまで、StringIOを使用してファイルの内容を格納すると思いました。しかし、avro.datafile.DataFileWriterは、ファイルハンドルを閉じることを慎重に処理するため、StringIOからデータを取り戻すことが困難になります。これが私がコードで意味することです:
使用できる回避策はいくつかありますが、どれもひどくエレガントではありません。StringIOを閉じた後にデータを取得する方法はありますか?
hadoop - MRUnitとAVROを併用する
入力、マップ出力、およびリデュース出力にAVROを使用するMapper&Reducerを作成しました。MRUnitテストを作成すると、次のスタックトレースが取得されます。
ドライバーは次のように初期化されます(私はAvro MapReduce API実装を作成しました):
io.serializationを使用して構成オブジェクトを追加しても、役に立ちません。
ClouderaのHadoop&MRUnit0.20.2-cdh3u2とAvroMapRed1.6.3を使用しています。
json - AVRO検証
AVRO にはかなり慣れていないので、明らかな何かが欠けている場合はご容赦ください。AVRO スキーマに対して入力を検証する AVRO バリデーター/コマンドライン ユーティリティはありますか? または、おそらく json 入力のどこにエラーがあるかを示しています。