問題タブ [accumulo]
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.
java - エラーのテスト:test(org.apache.accumulo.examples.simple.filedata.ChunkInputFormatTest)
accumulo-1.4.3-cdh43.tar.gzに含まれるexamples-simple mavenプロジェクトをビルドすると
jdk1.6.0.32 の Java プラットフォームに設定された netbeans を使用しています。
Tests in error: test(org.apache.accumulo.examples.simple.filedata.ChunkInputFormatTest) のテストが失敗します。
出力は次のとおりです。
テスト
org.apache.accumulo.examples.simple.filedata.ChunkInputFormatTest テストの実行: 3、失敗: 0、エラー: 3、スキップ: 0、経過時間: 2.441 秒 <<< 失敗! org.apache.accumulo.examples.simple.filedata.ChunkCombinerTest の実行 テストの実行: 1、失敗: 0、エラー: 0、スキップ: 0、経過時間: 0.014 秒 org.apache.accumulo.examples.simple.filedata.ChunkInputStreamTest の実行テストの実行: 9、失敗: 0、エラー: 0、スキップ: 0、経過時間: 0.297 秒 org.apache.accumulo.examples.simple.filedata.KeyUtilTest の実行 テストの実行: 1、失敗: 0、エラー: 0、スキップ: 0、経過時間: 0.002 秒 org.apache.accumulo.examples.simple.dirlist.CountTest の実行 最大深度: 3 最大深度を見つける時間: 5 ミリ秒 カウントを計算する時間: 2 ミリ秒 スキャンされたエントリ: 30 挿入されたカウント: 4 テスト実行: 1、失敗: 0、エラー: 0、スキップ: 0、
結果 :
エラーのテスト: test(org.apache.accumulo.examples.simple.filedata.ChunkInputFormatTest): Found class org.apache.hadoop.mapreduce.TaskAttemptContext, but interface was expected testErrorOnNextWithoutClose(org.apache.accumulo.examples.simple.filedata .ChunkInputFormatTest): クラス org.apache.hadoop.mapreduce.TaskAttemptContext が見つかりましたが、インターフェイスは予期されていましたインターフェースが期待されていました
テストの実行: 15、失敗: 0、エラー: 3、スキップ: 0
ビルドの失敗
合計時間: 27.392 秒終了時刻: Tue Feb 11 07:49:37 PST 2014
最終記憶: 21M/57M
プロジェクト examples-simple で目標 org.apache.maven.plugins:maven-surefire-plugin:2.9:test (default-test) を実行できませんでした: テストの失敗があります。
個々のテスト結果については、/usr/lib/accumulo/src/examples/simple/target/surefire-reports を参照してください。→【ヘルプ1】
エラーの完全なスタック トレースを表示するには、-e スイッチを指定して Maven を再実行します。-X スイッチを使用して Maven を再実行し、完全なデバッグ ログを有効にします。
エラーと考えられる解決策の詳細については、次の記事をお読みください: [ヘルプ 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
Web サイトで URL エラーが表示されます。
それから私は確実なレポートに行きました:
テスト セット: org.apache.accumulo.examples.simple.filedata.ChunkInputFormatTest
テストの実行: 3、失敗: 0、エラー: 3、スキップ: 0、経過時間: 2.441 秒 <<< 失敗! テスト (org.apache.accumulo.examples.simple.filedata.ChunkInputFormatTest) 経過時間: 1.433 秒 <<< エラー! java.lang.IncompatibleClassChangeError: クラス org.apache.hadoop.mapreduce.TaskAttemptContext が見つかりましたが、org.apache.accumulo.core.client.mapreduce.InputFormatBase$RecordReaderBase.initialize(InputFormatBase.java:1108) でインターフェイスが予期されていました。 apache.accumulo.examples.simple.filedata.ChunkInputFormat$1.initialize(ChunkInputFormat.java:47) at org.apache.accumulo.examples.simple.filedata.ChunkInputFormatTest.test(ChunkInputFormatTest.java:95) at sun.reflect.NativeMethodAccessorImpl .invoke0(ネイティブ メソッド) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
これが単に無視されるべきか、それとも私の開発作業に影響を与えるかを知っていただければ幸いです.
ありがとう、
クリス
performance - Accumulo 高速取り込みオプション
簡単に言えば、一連の ASCII テキスト ファイル (別名「入力ファイル」) に含まれるデータを Accumulo に取り込むことを希望する顧客がいます。
これらのファイルは、さまざまなデータ フィード デバイスから出力され、非 Hadoop/非 Accumulo ノード (別名「フィード ノード」) で継続的に生成されます。すべてのフィードの全体的なデータ スループット レートは、非常に高いと予想されます。
簡単にするために、すべてのデータが Accumulo の 1 つの順方向インデックス テーブルと 1 つの反転 [逆] インデックス テーブルになると仮定します。
pyaccumulo を使用して、Thrift Proxy 経由で Accumulo への接続を確立し、ローカル ファイルシステム (HDFS ではない) から入力ファイルを読み取って解析し、コードで適切な順方向および逆方向のインデックス ミューテーションを作成し、そしてBatchWriter を使用して、順方向および逆方向のインデックス テーブルにミューテーションを書き込みます。ここまでは順調ですね。しかし、それだけではありません。
さまざまな情報源から、Accumulo の高速取り込みには少なくともいくつかの標準的なアプローチがあり、それが私のシナリオに適用される可能性があることを知りました。リソースの使用に関してどのオプションが最も理にかなっているかについてアドバイスを求めています。実装とメンテナンスの容易さ。以下にいくつかのオプションを示します。
- フィード ノードの BatchWriter クライアント: フィード ノードで Accumulo クライアントを実行します。このオプションには、ネットワークを介して順方向と逆方向の両方のインデックス ミューテーションを送信するという欠点があります。また、Accumulo クライアントをサポートするには、フィード ノードで Accumulo/Thrift ライブラリを使用できる必要があります。ただし、このオプションには、入力ファイルの解析とミューテーションの作成の作業が並列化されるという利点があり、以下のオプションと比較して Hadoop クラスターでのディスク I/O を最小限に抑えるようです。
- Accumulo マスター ノード上の BatchWriter クライアント: フィード ノードから Accumulo マスター ノードへの入力ファイルを scp/sftp し、ローカル ファイルシステム上のディレクトリに配置します。次に、Accumulo マスター ノードのみで Accumulo クライアントを実行します。このオプションには、フィード ノードから Accumulo マスター ノードにネットワーク経由で順方向と逆方向の両方のインデックス ミューテーションを送信しないという利点があり、フィード ノードで Accumulo/Thrift ライブラリを使用できる必要はありません。ただし、入力ファイルの解析とミューテーションの作成のすべての作業を Accumulo マスター ノードに行わせ、Accumulo マスターのローカル ディスクを入力ファイルのウェイポイントとして使用するという欠点があります。
- AccumuloOutputFormat を使用した MapReduce: フィード ノードから Accumulo マスター ノードへの入力ファイルを scp/sftp します。次に、それらを定期的に HDFS にコピーし、HDFS から入力ファイルを読み取って解析し、ミューテーションを作成し、AccumuloOutputFormat を使用してそれらを書き込む MapReduce ジョブを実行します。このオプションには、上記の #2 の利点があり、さらに、入力ファイルの解析とミューテーションの作成の作業が並列化されます。ただし、これには、MapReduce ジョブのスピンアップとブレークダウンが常に発生し、それらのプロセスに関連するすべてのオーバーヘッドが発生するという欠点があります。また、関連付けられたディスク I/O で 2 つのディスク ウェイポイント (ローカルおよび HDFS) を使用するという欠点もあります。継続的な取り込みのために実装して維持するのは、やや面倒に思えます。
- AccumuloOutput*File*Format (rfiles) を使用した MapReduce: 入力ファイルをフィード ノードから Accumulo マスター ノードに scp/sftp します。次に、それらを定期的に HDFS にコピーし、HDFS から入力ファイルを読み取って解析し、ミューテーションを作成し、AccumuloOutputFileFormat を使用して rfile を書き込む MapReduce ジョブを実行します。次に、Accumulo シェルを使用して rfile を「取り込み」ます。このオプションには上記の #3 のすべての利点がありますが、他の利点があるかどうかはわかりません (そうですか? Accumulo のマニュアルには、一括取り込みについて次のように記載されています。 BatchWriters を使用してクライアントを介して取り込みます。」どのような場合ですか?)。また、関連するディスク I/O で 3 つのディスク ウェイポイント (ローカル、HDFSx2) を使用することを除いて、上記 #3 のすべての欠点があります。継続的な取り込みのために実装して維持するのは面倒に思えます。
個人的には、Accumulo マスター ノードが関連する処理負荷 (非並列入力ファイルの解析) を処理できる限り、オプション #2 が最も気に入っています。各 Accumulo ノードで Accumulo クライアントを実行し、異なるフィード ノードの出力を異なる Accumulo ノードに送信する #2 のバリアント、またはラウンド ロビンには、クラウド全体で順方向および逆方向のインデックス ミューテーションを送信するという欠点がまだあります。ただし、入力ファイルの解析をより並行して実行できるという利点があります。
私が知る必要があるのは、実行可能なオプションを見逃していませんか? 各オプションの利点/欠点を見逃していませんか? 問題のコンテキスト、特にネットワーク帯域幅/CPU サイクル/ディスク I/O のトレードオフに関係なく、長所/短所のいずれかが取るに足らないか、または非常に重要ですか? BatchWriter と比較して、rfile の有無にかかわらず MapReduce は問題に値しますか? 「戦記」を持っている人はいますか?
ありがとう!
avro - Array/HashMap の Accumulo Gora マッピング
Avro JSON 仕様 (Gora にバンドルされています) を使用して、Apache Gora を ORM として Accumulo と統合できます。String 、 Integer などのプリミティブ データ型を使用すると問題なく動作しますが、データ型を Array または Map として定義するとエラーが発生します。
Array の場合、新しい要素を追加しようとすると、Gora は次のエラーをスローします。
"org.apache.gora.persistency.ListGenericArray.add(Ljava/lang/Object;)Z"
Map を使用すると、エラーは発生しませんが、コミット後に空の JSON オブジェクト '{}' が表示されます... キーと値のペアがありません。
これは私のJSON仕様がどのように見えるかです
これは Accumulo-Gora xml マッピングです
Accumulo バージョン 1.5 と Gora バージョン 0.3 を使用しています。Accumulo バージョン 1.4.4 でも試しましたが、同じ問題に直面しています。
Gora が Map または Array データ型をサポートしているかどうかはわかりません。複雑なデータ型を同等の JSON 形式に変換し、それを Char Sequence として Accumulo に格納する必要があると思います。
何か案は ?
python - Ruby Thrift クライアントを使用して Accumulo Range オブジェクトを作成する方法
Thrift Proxy で Accumulo 1.5 を実行しています。私はRubyでthriftに接続していますが、Pythonで作業していた場合も同じ状況が発生すると思います。
Accumulo に接続し、更新を作成し、特定の列でテーブルをスキャンすることができました。特定の行 ID でクエリを実行しようとしています。
残念ながら、これは Range コンストラクターでエラーをスローします。
Ruby クライアントに関するドキュメントはまったく (まったく) ありません。Range クラスは で定義されてproxy_types.rb
いますが、私が使用している他の Thrift クラスと同じ方法で定義されています。
java - RowDeletingIterator の使用方法
RowDeletingIterator を使用して Accumulo テーブルのエントリを削除しようとしていますが、後でテーブルをスキャンしてもエントリが削除されません。row_id
ここにテーブルにエントリがあると仮定してtableName
、私がやっていることは次のとおりです。
hadoop - Hadoop/YARN ジョブが失敗しました - 「次の理由により exitCode: -1000 で終了しました: nmPrivate の有効なローカル ディレクトリが見つかりませんでした...」
Hadoop、YARN、および Accumulo を使用して MapReduce ジョブを実行しようとしています。
問題を追跡できないという次の出力が表示されます。YARN の問題のようですが、何を探しているのかわかりません。$HADOOP_PREFIX/grid/hadoop/hdfs/yarn/logs に nmPrivate フォルダーがあります。これは、見つからないと言っているフォルダーですか?
java - 「範囲」を使用してテーブル全体を累積的にスキャンする方法
アプリオリな知識がなくても、「範囲」を使用してテーブル全体を累積的にスキャンするにはどうすればよいですか?
人々は現在それをどのように行っていますか。からランダム検索を行いたい:テーブルのパーセンタイルのランダム サンプルを返す Accumulo イテレータを作成しようとしています。
サンプルをスキャンします (その後、hdfs に書き込みます)。
これには、私が信じているテーブル全体をスキャンする必要があります。
ありがとう!
クリス