安装rhbase出现的问题
安装rhbase需事先安装thrift,在此采用yum安装:
# yum -y install thrift thrift-devel
下载rhbase包:https://github.com/RevolutionAnalytics/RHadoop/wiki/Downloads
安装命令:
R CMD INSTALL "rhbase_1.2.1.tar.gz"
In file included from Hbase.cpp:7:0:
Hbase.h:10:24: fatal error: TProcessor.h:
#include <TProcessor.h>
^
compilation terminated.
/usr/lib/R/etc/Makeconf:143: recipe for target 'Hbase.o' failed
make: *** [Hbase.o] Error 1
ERROR: compilation failed for package ‘rhbase’
* removing ‘/home/user/R/x86_64-pc-linux-gnu-library/3.2/rhbase’
会发现报了一个错。
检测下thrift是否安装正确:
# pkg-config --cflags thrift
发现为空,此时则需修改/usr/lib64/pkgconfig/目录下的thrift.pc文件:
将:includedir=/usr/include
修改成:includedir=/usr/include/thrift
再次检测:
# pkg-config --cflags thrift
-I/usr/include/thrift
如上所示为正常;再次安装rhbase:
# R CMD INSTALL "rhbase_1.2.1.tar.gz"
至此,安装应当完成!
连接hbase出现的问题
应数据部门需要,R要调用hbase。因已安装了thrift框架并启动了服务,所以便直接安装了rhbase包,安装完毕后,调用rhbase:
# R
>library(rhbase)
>hb.init()
<pointer: 0x16494a0>
attr(,"class")
[1] "hb.client.connection"
>hb.list.tables()
未定义方法名:"getTableNames"
如上当调用hb.list.tables()时显示未定义方法名:“getTableNames“,调试了半天,没能成功,便询问数据部门同事,如何查看rhbase调用了thrift,也因我们之前没有接触过thrift,也不知道如何调用,便只能百度。
结果是从这篇文章找到答案:Thrift介绍与应用(三)—hbase的thrift接口
原因就是之前thrift启动的是thrift2。故对此服务进行重启:
# hbase-1.x/bin/hbase-daemon.sh stop thrift2
# hbase-1.x/bin/hbase-daemon.sh start thrift
# jps
通过jps可查看thrift服务是否有启动。启动后,在R中重新输入代码,可以发现能正常运行。