0

cloudera cdh3 で pig から hbase にデータをロードできません。データをダンプするとデータが表示されますが、store コマンドを使用して pig から hbase にデータを入れようとすると、テーブルを見つけて mapreduce タスクを起動できます。しかし、最終的には次のエラーメッセージが表示されます->

「test/NYSE_daily_prices_Q.csv」からデータを読み取れませんでした

そして最後に

2015-02-16 11:29:44,266 [メイン] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 失敗しました! 2015-02-16 11:29:44,268 [メイン] エラー org.apache.pig.tools.grunt.GruntParser - エラー 2999: 予期しない内部エラー。行キーが無効です ログファイルの詳細: /home/cloudera/pig_1424114902913.log

これが私が使用したコードです。誰かが問題を解決する方法を教えてください。

data = LOAD '/test/NYSE_daily_prices_Q.csv' USING PigStorage(',') AS (exchange:chararray,symbol:chararray,date:chararray,stock_price_open:float, stock_price_high:float,stock_price_low:float,stock_price_close:float,stock_volume: int,stock_price_adj_close:float);

データをダンプします。

データを 'hbase://NYStockDetails' に格納しますinfo:stock_price_adj_close');

4

1 に答える 1

1

コマンドをローカルで実行すると (これは、データをダンプすると言うときの意味だと思います)、コマンドLOAD '/test/NYSE_daily_prices_Q.csv'はローカル ファイルシステム上の特定のファイルを指すことができます。

HBase エクスポートを追加して同じコマンドを実行すると、マップのみの MapReduce ジョブが開始されます。マッパーはクラスター上のランダムなノードで実行されるため、NYSE_daily_prices_Q.csv1 つのノードのみにローカルに保存されていると思われるアクセス権があるとは限りません。したがって、HBase にロードしようとするとエラーが発生します。

解決策は、このファイルを HDFS に追加し、そこからロードすることLOAD 'hdfs://my-hdfs-location/test/NYSE_daily_prices_Q.csv'です。

于 2015-02-17T22:12:47.927 に答える