【发布时间】:2013-08-22 07:20:13
【问题描述】:
我有一个示例代码,它使用 RHBase(RHadoop 套件)从 R 连接到 HBase。 它适用于一种环境,但不适用于另一种环境。
代码:
# Location and port of the thrift server
hostLoc = '172.25.1.16'
port = 9090
require(rhbase)
#create new table with columns x,y and z
hb.new.table("mytable", "x","y","z",opts=list(y=list(compression='GZ')))
#insert some values into the table
hb.insert("mytable",list( list(10,c("x","y","z"),list("apple","berry","cherry"))))
hb.insert("mytable",list( list(20,c("x","y","z"),list(10001,14,575))))
hb.insert("mytable",list( list(30,c("x","y","z"),list("a string",1000.23,FALSE))))
这是相当简单的代码,我写这个是为了复制这个错误。
环境1:
Ubuntu 12.04 LTS 回复:3.0 节俭 0.9.0 Java(如果需要):OpenJDK 1.6
==> 此代码在此环境下运行良好。这是我的本地机器。
环境 2 Ubuntu 12.04 LTS R:2.15.2 节俭 0.9.0 Java(如果需要):Oracle Java 1.7
==> 这是一台远程机器。它抛出以下错误:
Error in hb.insert("mytable", list(list(10, c("x", "y", "z"), list("apple", :
RAW() can only be applied to a 'raw', not a 'character'
在这两种情况下,我都连接到远程位置的 HBase (0.94.7)。
关于是什么导致了这个问题的任何想法?我对 Hbase 和 RHadoop 套件还很陌生,请原谅任何幼稚的问题!另外,如果需要任何其他信息,请告诉我。
编辑:我有一个独立的 HBase 实例,而不是 cloudera 发行版。我根据 RHbase 的要求从源代码构建了 Thrift
【问题讨论】: