問題タブ [apache-crunch]
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.
hadoop - How does Apache Crunch PTable collectValues work internally
I was going through some documentations related to HDFS architecture and Apache crunch PTable. Based on my understandings, when we generate PTable the data is internally stored across the Data nodes in HDFS.
This means, if I have PTable with <K1,V1>,<K2,V2>,<K1,V3>,<K3,V4>,<K2,V5>
and two Data nodes D1 and D2 in HDFS.
Let's say each data node has a capacity to hold 3 pairs. So D1 will hold <K1,V1>,<K2,V2>,<K1,V3>
and D2 will hold <K3,V4>,<K2,V5>
.
If I do collectValues on this PTable, I am internally running another map-reduce job to get these values from PTable and generate pairs of <K,Collection<V>>
. So at the end I will have, <K1,Collection<V1,V3>>, <K2,Collection<V2,V5>> and <K3,Collection<V4>>
. And again these pairs will be distributed to different data nodes.
Now, I have this doubt that how will the Collection values (V1,V3 of K1)
be stored in the generated PTable? Will this data be distributed across the nodes too, i.e., will
V1 be stored in D1
V3 be stored in D2
or, V1 and V3 will stored in one node only.
If all the collection values for a key are stored in one node (not-distributed), then for large data sets, won't the processing on the collected values of each key become slow?
java - crunch MemPipeline を使用した書き込み時の java.lang.UnsatisfiedLinkError
私は com.cloudera.crunch バージョン: '0.3.0-3-cdh-5.2.1' を使用しています。
いくつかの AVRO を読み取り、いくつかの基準に基づいて無効なデータを除外する小さなプログラムがあります。無効なデータ出力を書き込むために、pipeline.write(PCollection, AvroFileTarget) を使用しています。本番稼働では問題なく動作します。
このコードの単体テストには、MemPipeline インスタンスを使用します。ただし、その場合、出力の書き込み中に失敗します。
エラーが発生します:
何が問題なのですか?
hadoop - 「ストリーミングファッション」としてデータを読み取るとはどういう意味ですか?
を読んでいてApache Crunch documentation
、次の文を見つけました。
データはファイルシステムからストリーミング方式で読み込まれるため、マテリアライゼーションを使用してクライアントに読み込むために、PCollection の内容がメモリに収まる必要はありません。
どういう意味なのか知りたいread in from the filesystem in a streaming fashion
のですが、他の種類のデータの読み取り方法との違いを教えていただければ幸いです。
この概念は、Spark などの他のツールにも当てはまると思います。