我正在使用"hadoop-0.20.203.0rc1.tar.gz"进行群集设置.每当我设定job.setMapOutputKeyClass(ByteBuffer.class);
并运行我得到以下异常的工作:
12/01/13 15:09:00 INFO mapred.JobClient: Task Id : attempt_201201131428_0005_m_000001_2, Status : FAILED
java.lang.ClassCastException: class java.nio.ByteBuffer
at java.lang.Class.asSubclass(Class.java:3018)
at org.apache.hadoop.mapred.JobConf.getOutputKeyComparator(JobConf.java:776)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:958)
at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:673)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:755)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:369)
at org.apache.hadoop.mapred.Child$4.run(Child.java:259)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
at org.apache.hadoop.mapred.Child.main(Child.java:253)
Run Code Online (Sandbox Code Playgroud)
另外我注意到ByteBuffer是Comparable而不是Writable是否会产生任何差异?如果需要任何其他信息,请与我们联系.
Go 中是否有与 Java 的 String intern 函数等效的函数?
我正在解析大量具有重复模式(标签)的文本输入。我希望提高内存效率,并为每个标签存储指向单个字符串的指针,而不是为每次出现的标签存储多个字符串。
是否有一种相对容易实现或透明的方法来并行地在Matlab中相乘两个大矩阵?
理想情况下,我想用最多几行代码执行此并行乘法,可能类似于:
C_1 = A*B % normal
C_2 = pmult(A,B) % parallel
% C_1 and C_2 have the same entries
Run Code Online (Sandbox Code Playgroud)
如果有办法轻松做到这个并列乘法,有人可以指点我的代码吗?如果没有,有没有人对他们认为在Matlab中实现并行矩阵乘法算法的最佳方法有任何想法?
在此先感谢,令人敬畏的Stackoverflow社区.
编辑 - 我认为我遇到的部分问题是稀疏矩阵的矩阵乘法不会自动并行化; 它为密集矩阵自动并行化.新问题:Matlab可以并行进行稀疏矩阵乘法吗?(CPU并行化,因为我没有启用CUDA的显卡)