您的位置:首页 > 编程语言

hadoop1.2.1 C 编程环境配置

2013-12-17 13:08 120 查看
一、环境

操作系统:centos 6.3 64bits

Hadoop版本:1.0.4

本文假设Hadoop的安装目录为<Hadoop>,Java的安装目录为<Java>

二、编译:

在<Hadoop>目录下,执行

三、配置

主要解决g++
寻找头文件和动态链接库的问题。

1、头文件

libhdfs的头文件hdfs.h在目录<Hadoop>/src/c++/libhdfs下,因此需要告知头文件路径。

由于libhdfs是基于JNI的,所以Java的头文件也要告知g++,分别为<Java>/include
和 <Java>/include/linux。

2、动态链接库

Java的动态链接库在<Java>/jre/lib/amd64/server,编译时需要加-ljvm;

hdfs的动态链接库在<Hadoop>/c++/Linux-amd64-64/lib/,编译时需要加-lhdfs

3、设置必要的环境变量

sudo vim /etc/profile,加入下列内容

其中“# JAVA”部分,应当是安装配置JAVA时就设置的;“# HADOOP HDFS CPLUS”部分是专门位libhdfs设置的。编辑之后,记得source /etc/profile。

设置环境变量是为了让程序在运行时,找到链接库和java的相关class,所以主要是设置LD_LIBRARY_PATH和CLASSPATH。

四、使用hdfs,运行测试程序

1、编写测试源码

从官网上找到sample,testHDFS.cpp。代码大意是在hdfs添加文件/tmp/testfile.txt,内容为“Hello, World!”

2、编译运行

执行下列执行编译

指令看起来有点繁杂,其实就是告知g++头文件和动态链接库的位置,具体内容在上文已经讲解。

将<Hadoop> <Java>变为我本机实际的安装路径,则编译指令如下:(很长。。)

当然,为了使用方便,大家也可以根据上述指令写自己的Makefile。我在工程中使用CMake,因此就不用写Makefile。这里就不贴出CMake具体文档了,本质都差不多,就是设置头文件路径、动态链接库路径等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: