問題タブ [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.

0 投票する
1 に答える
781 参照

cascading - scalding を使用した HBase からの読み取り

私は Cascading/Scalding に非常に慣れていないため、HBase からデータを読み取るのが難しいことを理解できません。

私は、ポーカー ゲームのハンド履歴が格納されているテーブルを HBase に持っています (非常に簡単な方法で: id -> hand, serialized with ProtoBuf)。以下のジョブは、履歴全体を調べて、すべてのプレイヤーの辞書を作成する必要があります。

ただし、上記のジョブを実行すると、エラーがスローされます

、つまり、取得したデータは、flatMap直接操作できるバイト配列ではありません。

私は何が欠けていますか?

0 投票する
5 に答える
3462 参照

java - カスケード例はコンパイルに失敗しましたか?

シェルcleanJarでは、Impatient/part1ディレクトリにgradleと入力しました。出力は以下のとおりです。エラーは「org.apache.hadoop.mapred.JobConfのクラスファイルが見つかりません」です。なぜコンパイルに失敗したのですか?

0 投票する
5 に答える
1240 参照

scala - Hadoop で OR 結合を実装する方法 (スケーディング/カスケーディング)

結合フィールドをレデューサー キーとして送信するだけで、単一のキーでデータセットを簡単に結合できます。しかし、少なくとも 1 つが同じでなければならないいくつかのキーでレコードを結合することは、私にとってそれほど簡単ではありません。

例 ログがあり、それらをユーザー パラメータでグループ化し、(ipAddress、sessionId、visitorCockies) で結合したい

したがって、log1.ip == log2.ip OR log1.session = log2.session OR log1.cockie = log2.coockie の場合、log1 は log2 とグループ化する必要があります。おそらく、複合キーまたはminHashのような確率的アプローチを作成することは可能です...

出来ますか?

0 投票する
3 に答える
1247 参照

scala - Twitter Scalding の SQL Union に相当するもの

SQL UNION が機能するのと同じ方法で、同じフィールド セット ('id, 'groupName, 'name) を持つ 2 つのパイプを結合する必要があります。Twitter Scaldingでそれを行うにはどうすればよいですか?

0 投票する
1 に答える
258 参照

macos - wordcount.scala エラー

OSX Lion を搭載した Mac に scalding をインストールしました。word count.scala プログラムを実行してインストールをテストすると、次のエラー メッセージが表示されます。

0 投票する
2 に答える
441 参照

scala - Hadoopで偶数/奇数ペアの合計を計算しますか?

Hadoop用の並列scanLeft(結合演算子のプレフィックス合計を計算する)関数を作成したいと思います(特にスケーリング。これがどのように行われるかについては、以下を参照してください)。

hdfsファイル内の数列(1行に1つ)が与えられた場合、連続する偶数/奇数のペアの合計を使用して新しい数列を計算したいと思います。例えば:

入力シーケンス:

0、1、2、3、4、5、6、7、8、9、10

出力シーケンス:

0 + 1、2 + 3、4 + 5、6 + 7、8 + 9、10

すなわち

1,5,9,13,17,10

これを行うには、Hadoop用のInputFormatクラスとInputSplitsクラスを作成する必要があると思いますが、これを行う方法がわかりません。

こちらのセクション3.3をご覧ください。以下はScalaのアルゴリズムの例です。

Hadoopとうまく連携するには、かなりの最適化が必要になる可能性があることを理解しています。これを直接翻訳すると、かなり非効率的なHadoopコードにつながると思います。たとえば、明らかにHadoopではIndexedSeqを使用できません。私はあなたが見る特定の問題をいただければ幸いです。とはいえ、おそらくうまく機能させることができると思います。

0 投票する
2 に答える
165 参照

java - スカルディングはどのようにユーザー関数をリモート MapReduce ノードに渡しますか?

Scalding を使用する場合、機能を提供できます。scalding がこれらの関数をリモートの map/reduce タスクにどのように渡すのか疑問に思っていました。これはスカラで何かを使用していますか、それとも匿名オブジェクトで実行できる一般的なものを使用していますか?

0 投票する
1 に答える
4775 参照

hadoop - カスケードHBaseタップ

HBaseに接続する必要のあるScaldingジョブを作成しようとしていますが、HBaseタップの使用に問題があります。このサンプルプロジェクトに従って、 Twitter Mapleが提供するタップを使用してみましたが、使用しているHadoop / HBaseバージョンと、Twitterでクライアントとして使用されているバージョンとの間に互換性がないようです。

私のクラスターは、HBase0.92およびHadoop2.0.0-cdh4.1.3でClouderaCDH4を実行しています。HBaseに接続するScaldingジョブを起動するたびに、例外が発生します

Twitter Mapleで使用されているHBaseクライアントはNetUtils、クラスターにデプロイされているバージョンのHadoopには存在しないメソッドを想定しているようです。

不一致が正確に何であるかを追跡するにはどうすればよいですか?HBaseクライアントはどのバージョンを期待しますか?これらの問題を軽減する一般的な方法はありますか?

多くの場合、クライアントライブラリはハードコードされたバージョンのHadoop依存関係でコンパイルされており、それらを実際にデプロイされたバージョンと一致させるのは難しいようです。

0 投票する
2 に答える
876 参照

hadoop - Scaldingで一度に複数の列を平均化するにはどうすればよいですか?

Scaldingを使用したいくつかの計算の最後のステップとして、パイプ内の列のいくつかの平均を計算したいと思います。しかし、次のコードは機能しません

sum, max, averageいくつかのパスを実行せずにそのような関数を計算する方法はありますか?私はパフォーマンスについて心配していますが、おそらくScaldingはそれをプログラムで検出するのに十分賢いです。

0 投票する
5 に答える
1447 参照

java - Scala (または Java) からの HBase アクセスのための scalding の代替手段

Scala (またはJava ) アプリケーションからHadoopクラスター上のHBaseにアクセスするための優れたソリューション (フレームワーク) を推奨してもらえますか?

今のところ、やけどの方向に進んでいます。入手したプロトタイプにより、scalding ライブラリをMavenと組み合わせ、scalding ジョブ JAR を「ライブラリ」コード パッケージから分離することができました。これにより、ジョブごとのオーバーヘッドを最小限に抑えながら、クラスター外からスケーティング ベースの Hadoop ジョブを実行できるようになりました (「ライブラリ」コードは、クラスターの「分散キャッシュ」が変更された場合にのみポストされます (これはほとんど必要ありません)。そのため、ジョブ コードを高速にロードできます)。 .

今、私は実際に HBase 自体をいじり始めており、scalding は良いことだと思いますが、HBase にとってそれほど「ネイティブ」ではありません。はい、 hbase-scalding のようなものがありますが、将来のアクションを計画するポイントがあるので、おそらく見逃した他の良い解決策について知りたいです。

期待されること:

  • オーバーヘッドを開始するアプリケーション (ジョブ) は低くする必要があります。私はそれらの多くを実行する必要があります。
  • SSH を使用せずに (「hadoop jar」コマンドに基づいて、または単純にアプリケーションを実行するだけで)、クラスターの外部からジョブを実行することが (より簡単に、より適切に) 可能になるはずです。
  • Jobs 言語自体は、短くて論理的なセマンティックを許可する必要があります。理想的には、このコードは自動的に生成されるほど単純である必要があります。
  • このソリューションは、十分な大きさの HBase テーブル (最初は最大 100.000.000 エントリ) で生産性を発揮するはずです。
  • OK、ソリューションは「ライブ」(積極的に開発中)である必要がありますが、一般的な安定性に関しては比較的良好です。

ここでの議論は、ソリューション自体よりもさらに役立つ可能性があると思います。この質問は、多くの人にいくつかのアイデアを追加するはずです. アドバイスはありますか?