hadoop - Hadoop Map-Reduce代码无法选择驱动程序文件libcuddpp.so

标签 hadoop

我遇到了一个关于Linux(CentOS)中非root用户的奇怪问题。

我可以通过以下命令正确编译和运行Java程序:

[root@cuda1 hadoop-0.20.2]# javac EnumDevices.java
[root@cuda1 hadoop-0.20.2]# java EnumDevices
Total number of devices: 1
Name: Tesla C1060
Version: 1.3
Clock rate: 1296000 MHz
Threads per block: 512

但是我需要通过CentOS中的其他用户[B] hadoop [/ B]运行它
[hadoop@ws37-mah-lin hadoop-0.20.2]$ javac EnumDevices.java
[hadoop@ws37-mah-lin hadoop-0.20.2]$ java EnumDevices
NVIDIA: could not open the device file /dev/nvidiactl (Permission denied).
Exception in thread "main" CUDA Driver error: 100
       at jcuda.CUDA.setError(CUDA.java:1874)
       at jcuda.CUDA.init(CUDA.java:62)
       at jcuda.CUDA.<init>(CUDA.java:42)
       at EnumDevices.main(EnumDevices.java:20)
[hadoop@ws37-mah-lin hadoop-0.20.2]$

实际上,我需要运行map-reduce代码,但首先,如果它运行简单,那么我会去做。

请指导我如何解决此问题,因为所有用户的CLASSPATH相同。

最佳答案

好像您遇到了设备文件权限问题。 Hadoop与此无关,Java classpath也与此无关。这可能有用:

http://www.linuxquestions.org/questions/slackware-14/could-not-open-dev-nvidiactl-310026/

关于hadoop - Hadoop Map-Reduce代码无法选择驱动程序文件libcuddpp.so,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5139034/

相关文章:

hadoop - 将 Hadoop 从版本 CDH4 升级到 CDH5

java - 在 HDFS 上使用 libhdfs 进行文件 i/o

hadoop - 将嵌套实体存储在 Hbase 中并将其作为配置单元中的行读取

hadoop - Java中HDFS配置有什么用?

Hadoop MapReduce (Yarn) 使用不同功率/规范的主机

scala - Spark Streaming窗口输出

hadoop - Hive Utf-8 编码支持的字符数?

java - 从 windows eclipse 运行 Mapreduce(yarn) 时出错

sql - 从Apache HIVE或SQL中的两个表获取计数

linux - 如何在集群中使用单键值对ssh