1
行列加算のためにApache Pigでコードを記述しようとしています。ifileのreadaheadに失敗しました。EBADF:行列加算中にファイル記述子が正しくありません。
matrixM = LOAD 'Mmatrix.txt' USING PigStorage (',') AS (i,j,v);
matrixN = LOAD 'Nmatrix.txt' USING PigStorage (',') AS (i,j,v);
unionres = UNION matrixM, matrixN;
DUMP unionres;
res = GROUP unionres BY (i,j);
DUMP res;
ILLUSTRATE res;
final_res = FOREACH res GENERATE group.$0 AS i, group.$1 AS j, SUM(unionres.v) AS v;
DUMP final_res;
コードをローカルモードで実行しているうちに次の例外が発生します。
org.apache.hadoop.io.ReadaheadPool - Failed readahead on ifile
EBADF: Bad file descriptor
at org.apache.hadoop.io.nativeio.NativeIO$POSIX.posix_fadvise(Native Method)
at org.apache.hadoop.io.nativeio.NativeIO$POSIX.posixFadviseIfPossible(NativeIO.java:267)
at org.apache.hadoop.io.nativeio.NativeIO$POSIX$CacheManipulator.posixFadviseIfPossible(NativeIO.java:146)
at org.apache.hadoop.io.ReadaheadPool$ReadaheadRequestImpl.run(ReadaheadPool.java:208)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
誰かが私に間違っていると説明できますか?