【问题标题】:Writing files in hdfs in C++ (libhdfs)用 C++ (libhdfs) 在 hdfs 中写入文件
【发布时间】:2013-08-16 20:51:06
【问题描述】:

我正在尝试用 C++ 编写一个接口,以便使用 libhdfs.so 在 hdfs 中写入文件。我的目标 hadoop 版本是 2.0.2-alpha

以下代码

 hdfsFS fs = hdfsConnect("127.0.0.1",8020);
 if (!fs)
 {
    printf("Hadoop file system returned null. \n");
    return 0;
 }

在运行时提供以下错误:

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

相应地更新了 CLASSPATH,但仍然出现此错误。 知道我在这里缺少什么步骤吗?所有 .so 文件均已正确链接。

【问题讨论】:

  • 我想这与 C++ 代码无关。 java为什么要参与进来?无论在哪里 - 这就是问题所在。
  • 检查您的 Java 安装,参见。 stackoverflow.com/q/11808829
  • @jheriko Hadoop 是一个 java 应用程序。

标签: java c++ hadoop hdfs


【解决方案1】:

您可以使用以下命令找到hadoop所需的java类路径

$hadoop 类路径

并将所有这些路径添加到环境变量 CLASSPATH

$export CLASSPATH=$CLASSPATH:`hadoop 类路径`

Here 是 CDH4 的 libhdfs 示例。注意 exec.sh 中的环境设置

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 2020-10-16
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    相关资源
    最近更新 更多