2013-08-16 31 views
7

Tôi đang cố gắng viết một giao diện trong C++ để ghi tệp bằng hdfs bằng cách sử dụng libhdfs.so. phiên bản đích hadoop tôi là 2.0.2-alphaViết các tệp bằng hdfs trong C++ (libhdfs)

Mã dưới đây

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

cung cấp các lỗi sau khi chạy:

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

Cập nhật CLASSPATH phù hợp nhưng vẫn nhận được lỗi này. Bất kỳ ý tưởng nào là bước tôi bị thiếu ở đây? Tất cả các tệp .so được liên kết chính xác.

+0

tôi sẽ tưởng tượng điều này không liên quan gì đến mã C++. tại sao java tham gia? bất cứ nơi nào - đó là nơi mà vấn đề là. – jheriko

+0

Kiểm tra cài đặt Java của bạn, cf. http://stackoverflow.com/q/11808829 – usr1234567

+0

@jheriko Hadoop là một ứng dụng java. – aalku

Trả lời

1

Bạn có thể sử dụng lệnh sau đây để tìm classpath java cần thiết bởi hadoop

$ hadoop classpath

Và thêm tất cả các đường dẫn để classpath biến môi trường

$ xuất khẩu CLASSPATH = $ CLASSPATH: `hadoop classpath`

Here là một ví dụ về libhdfs cho CDH4. Lưu ý các cài đặt môi trường trong exec.sh

Các vấn đề liên quan