关闭

R语言连接hbase问题疑解

标签: hbaser语言
806人阅读 评论(0) 收藏 举报
分类:

安装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中重新输入代码,可以发现能正常运行。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20094次
    • 积分:632
    • 等级:
    • 排名:千里之外
    • 原创:44篇
    • 转载:0篇
    • 译文:1篇
    • 评论:0条
    文章分类