CentOS 5.5下scribe写入数据到HDFS配置方法
1按照CentOS 5.5 下配置Hadoop 0.21单节点 一文中的方法配置Hadoop
2编译scribe,支持hdfs
2.1下载thrift,libevent,boost等库,可以都下载最新版本,基本上都是make & make install
2.2下载最新版scribe-2.2,之前在网上看到说scribe有很多bug,必须在当前开发版本才能写入HDFS,试了好久没成功,也以为确实是代码的问题,现在发现不是这个问题,直接下载 该版本
2.3在scribe源码包里面bootstrap.sh,按照文档上的说法是可以一步到位的即:./configure --with-hadooppath=/usr/local/hadoop --enable-hdfs CPPFLAGS="-I/usr/local/java/include -I/usr/local/java/include/linux" LDFLAGS="-ljvm -lhdfs",但是我的机器上面这样不行,因此直接./configure --enable-hdfs,然后修改相应的Makefile(src目录下面的),将以下字段修改如下:
CPPFLAGS = -I/usr/local/lib/jdk1.6.0_23/include -I/usr/local/lib/jdk1.6.0_23/include/linux
上面的JDK路径以机器上面的实际路径为准。
2.4拷贝hadoop-0.21.0\hdfs\src\c++\libhdfs\hdfs.h文件到scribe/src目录下,libhdfs其实就是通过JNI让C/C++调用HDFS接口,在hadoop-0.21.0\hdfs\src\c++\libhdfs目录下面执行如下操作
./configure --enable-shared JVM_ARCH=tune=k8 --prefix=`pwd`/nativelib
./make install
这时会在nativelib\lib下面生成5个文件,将其都拷贝到/usr/local/lib下面,执行ldconfig
2.5编译scribe,在scribe/src目录下面执行./make,即可生成scribed文件,