在centos6.2下的thrift安装与使用

libevent-2.0.20-stable.tar.gz


boost_1_52_0.tar.gz
 
thrift-0.9.0.tar.gz
 
./configure --prefix=/usr/local/libevent
mk
mk install
 
./bootstrap.sh --prefix=/usr/local/boost
./b2
./b2 install
 
export CPPFLAGS="-DHAVE_NETDB_H=1 -fpermissive" 
./configure --with-boost=/usr/local/boost/ --with-qt4=false --with-java=/usr/lib/jvm/java-7-sun/ --prefix=/usr/local/thrift
mk
mk install
 
生成C++代码,并测试,步骤如下:
1,在hbase/src/main/resources/org/apache/hadoop/hbase/thrift目录下
      thrift --gen cpp Hbase.thrift
 
2,修改Makefile为下面内容:
INC = -I/usr/local/thrift/include -I/usr/local/thrift/include/thrift/ -I/usr/local/boost/include/
LIB = -L/usr/local/thrift/lib/ -lthrift

GEN_SRC = ./gen-cpp/Hbase.cpp \
          ./gen-cpp/Hbase_types.cpp \
          ./gen-cpp/Hbase_constants.cpp

default: DemoClient

DemoClient: DemoClient.cpp
        g++ -DHAVE_NETINET_IN_H -o DemoClient ${INC} -I./gen-cpp ${LIB} DemoClient.cpp ${GEN_SRC}

clean:
        rm -rf DemoClient
 
注意:DemoClient.cpp本身有问题,需要对其做代码的注释来编译
 
3,修改环境,使编译后的DemoClient可以执行成功
     # cat /etc/ld.so.conf
     include ld.so.conf.d/*.conf
     # echo "/usr/local/thrift/lib" >> /etc/ld.so.conf
     # ldconfig
     或者
     export LD_LIBRARY_PATH=/usr/local/thrift/lib:$LD_LIBRARY_PATH
 
4,运行:
  先运行thrift服务:
    /home/hadoop/hbase/bin/hbase thrift start
 
  再运行DemoClient
    ./DemoClient 192.168.0.40 9090
  
  
原文地址:https://www.cnblogs.com/MarkGrid/p/3118460.html