問題タブ [scalding]
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.
scala - sbt-assembly を使用した Scalding と Hadoop の依存関係の問題
sbtAmazon EMR で実行しようとして実行しようとしている単純な Hadoop ジョブを使用して、はるかに構築しようとしています。ただし、実行するsbt assemblyと次のエラーが発生します。
https://groups.google.com/forum/#!topic/simple-build-tool/tzkq5TioIqMの提案に従おうとしましたが、うまくいきませんでした。
私のbuild.sbtは次のようになります:
hadoop - トップ 10 パス削減マップ削減
パス ナビゲーション グラフが必要なプロジェクトに取り組んでいます。
問題の説明: プロジェクトのコンテキストを示すために、サンプル UI はhttp://bl.ocks.org/mbostock/4063570のように なると予想されます。違いは、サイト ナビゲーション用であることです。私の問題は、バックエンドでデータを処理することです。
ユーザー パス A->B->C->D->E の場合、事前に計算したデータ形式は次のようになります。
さて、何百万ものオリジンを持つこのようなレコードが何百万もあると仮定すると、それらをグループ化し、サイズを集約してサイズの降順で並べ替え、上位 10 を取得できます。したがって、各オリジン、開始、およびレベルについて、それぞれ 10 個のレコードが必要です。したがって、4 レベルのグラフの場合、グラフ内の特定の開始ノードに対して 10.. 10^2.. 10^3.. 10^4 になります。
本当の問題: ソート後のトップ 10 では、不要な L3 と L4 をすべて取り除くことはできません。特定の起点に対して、L1 の終わりは L2 の開始点である必要があり、L2 の終了点は L3 の開始点である必要があります。このため、多くの L2 開始が L1 終了に属さず、レベルが上がるにつれて増加するという多くの記録があります。図:
試したこと: 上位 10 をソートしてスライスした後、各レベルで数百万のレコードを 1 つずつ自己結合します。レベルは 10 あります。それは計算上本当に高価です。
私が探しているもの: 一般的で安価な Map-reduce ソリューション。火傷の文脈でそれを得ることができればより良い.
scala - Scalding map メソッドでタプルの代わりにコレクションを出力できますか?
Scalding の小さいフィールドから 22 を超えるフィールドを持つパイプを作成する場合、22 を超える項目を持つことができない Scala タプルによって制限されます。
タプルの代わりにコレクションを使用する方法はありますか? 次の例のようなものを想像しますが、残念ながらうまくいきません:
scala - 式の分解 (Matrix の操作)、hadoop
Hadoop で大きな行列計算を行うための一種のミニ フレームワークを作成しようとしています。つまり、〜Prod(Sum(x, y), z) // (X + Y) * Zのように、x、y、z - 行列または数値であり、それを計算し、出力結果をファイルに書き込みます。だから私はScalding、matrix と number を使用していますが、実際には同じものです。そして問題は、分解に対処する方法がわからないことです。
私が何を意味するかを説明させてください: 数値について話している場合 (今は , などなしhadoopでscalding純粋な のみScala)、そのような方法で作ることができます:
だからあなたは私の考えを見ます。しかし、hadoop では、私が正しいと認識しているようにJobs、em を作成して送信する必要がありますhadoop。したがって、私が見る唯一の方法は、マトリックスのファイル名を処理することです。しかし、少なくとも 4 つの問題があります。
- 適切な decomp トレイトを作成する方法 (このよう
Exprに、私が見ているようStringsに、ファイルの名前のみを扱うことができます)? - ジョブではないクラス内からジョブを実行する方法は? つまり、マトリックス名を渡すことができるクラスを意味し、すべてを送信してhadoopで計算し、結果を返しますか? Hadoop の入力ファイルのみを送信し、結果の出力のみを送信する方がよいことがわかりました。(いくつかの操作の連鎖?しかし、それらを作成する方法、私が見る方法は、分解を行い、すべてを計算するジョブを送信することです。しかし、ジョブ
Expressionが評価に依存している場合、この大きなジョブを作成する方法。別のバリアント-送信する各ジョブ (Sum、Prodなど) を個別に) - 出力ファイルを操作するにはどうすればよいですか? 大量の操作を取得した場合、中間計算のすべての結果を保存する必要があり、ファイル名を保持する方法は?
- 私の考えは正しいですか?
PS ありがとうございます。Hadoop について多くの情報が見つからなかったので、同様のアイデア (リンク) の例をいくつか示して、hadoop をより理解するのに非常に役立ちます。そして最も問題なのは、どのクラスからジョブを実行するかということです。
解決済み
それで私は方法を見つけました、私は分解の仕事を1つ手に入れました、それはあまり賢い質問ではありませんでした。
hadoop - マトリックス形式の変換、火傷
さて、scalding では、マトリックス API を使用してマトリックスを簡単に操作できます。
しかし、私たちが通常書いているように、行列をフォーマットからそのフォーマットに変換するにはどうすればよいでしょうか? エレガントな方法はありますか?
に
巨大なサイズのマトリックスで操作を行うためにこれが必要で、行と列の数がわかりません(ファイルの場合はサイズを指定できますか?たとえば、NxM)。
私はsmthを作ろうとしましたTextLine( args("input") )が、行番号を数える方法がわかりません。Hadoop で行列を変換したいのですが、フォーマットを処理する他の方法がありますか? 火傷で可能ですか?
protocol-buffers - やけど+LZO+プロトブフ
Scalding を HDFS 上の LZO Protobuf データで動作させるための指針はありますか?
バイナリ Protobuf に保存され、Scalding を使用して LZO で圧縮されたファイルを読み込もうとしています。Elephantbird を使用してこれらのファイルを読み取ることはできますか? 任意のポインタをいただければ幸いです!
LzoTraits と LzoProtobufScheme を見ましたか? しかし、データを読み取るためにどのように使用すればよいかわかりませんか? どんな例でも素晴らしいでしょう!
scala - 未解決の依存関係: com.hadoop.gplcompression#hadoop-lzo;0.4.16 (sbt 更新時)
git を使用clone https://github.com/twitter/scalding.gitしてコードを取得した後、次の./sbt updateようになります。
以降:
~/.sbtディレクトリを削除し、最新の Scala をインストールし、リポジトリを新たに複製しました。問題は残ります。
私の構成:
何が間違っている可能性があり./sbt updateますか? 依存関係をhadoop-lzo個別にインストールし、CLASSPATH を設定して Scalding をインストールする必要がありますか? 他の解決策はありますか?
完全なインストール ログは次のとおりです。