当然,我知道可重复的例子和代码,但对于这个问题,我必须(我不能否则)晦涩难懂。
我正在尝试连接R和黑斑羚。抛开这些问题(“正式”,我不能在这台电脑上安装软件.但我使用了可移植版本的R和RStudio)
我试过RImpala包了。
rimpala.connect(IP = myip,
port = the port where Impala sees,
principal = maybe this is not clear)我非常肯定,我的问题的原因是principal参数,文档对我来说并不清楚。不管怎么说,我已经尝试了几个组合的文件说,它应该放在那里。
在任何情况下,我都会得到相同的错误:
.jcall中的错误(“RJavaTools”,"Ljava/lang/Object;","invokeMethod",cl,:java.lang.IllegalArgumentException: Kerberos主体)应该包含三个部分: 10.60.10.22:8888/impala/@tempuser
我在网上搜索了这个错误,它似乎与一些java相关,但我对该语言一无所知。
知道我无法访问我的PC是有用的,比如说,我不能安装任何软件,或者做一件只有管理员才能做的事情。
我知道这个问题写得不好,但就像我说过的,这个可重复的例子是不可能的。
更多细节
现在我正在考虑这个问题,我在IP参数中填充了我在浏览器导航栏中看到的地址,以连接到Hue。我猜是一样的,但也许我在这一点上也做错了,因为我已经说过了,我很确定错误不是因为这个。
发布于 2016-08-19 09:08:29
与其使用RImpala包,不如使用RJDBC进行连接。您可以从cloudera网站下载最新的黑斑羚JDBC驱动程序jar文件:http://www.cloudera.com/downloads/connectors/impala/jdbc/2-5-5.html。
然后将jar中的这些文件导入R并使用它们进行连接。
install.packages("rJava")
install.packages("DBI")
install.packages("RJDBC")
library(DBI)
library(rJava)
library(RJDBC)
cp <- c(
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/commons-codec-1.3.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/commons-logging-1.1.1.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/hive_metastore.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/hive_service.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/httpclient-4.1.3.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/httpcore-4.1.3.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/libfb303-0.9.0.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/libthrift-0.9.0.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/log4j-1.2.14.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/ql.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/slf4j-api-1.5.11.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/slf4j-log4j12-1.5.11.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/TCLIServiceClient.jar",
"C:/Users/Cloudera_ImpalaJDBC4_2.5.31/zookeeper-3.4.6.jar"
)
.jinit(classpath<-cp)
drv <- JDBC("com.cloudera.impala.jdbc4.Driver", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/ImpalaJDBC4.jar")
con <- dbConnect(drv, "jdbc:impala://your_impala_host_address:21050;AuthMech= your authmech number if applicable", "username", "pwd")
data <- dbGetQuery(con, "SELECT * FROM mydb limit 25")
summary(data)发布于 2017-06-23 20:58:43
发布于 2017-09-02 01:31:48
我在R中成功地使用了ODBC连接器和odbc包,这个方法似乎没有任何隐式依赖项,是隐式包的作者推荐的。根据我有限的经验,这个连接器在正确匹配R数据类型和Impala数据类型方面做得更好,使得R中的对象大小更小。
对于Mac电脑来说,这个过程就像,
unixodbc:brew install unixodbcDriver=/opt/cloudera/impalaodbc/lib/universal/libclouderaimpalaodbc.dylib
- `echo export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/opt/cloudera/impalaodbc/lib/universal >> ~/.bash_profile`
- create a `~/.odbcinst.ini` file with驱动程序Impala=Installed Cloudera ODBC驱动程序Impala=Installed Cloudera ODBC驱动程序
-可以选择创建一个包含连接详细信息的~/.odbc.ini文件。在这里,我使用Kerberos:
impala驱动器= Cloudera驱动程序用于Impala数据库=主机=端口= KrbHostFQDN = KrbServiceName = KrbRealm = AuthMech =1
- source ~/.bash_profile以确保DYLD_LIBRARY_PATH被更新
DBI和odbc:install.packages(c("DBI", "odbc"))https://stackoverflow.com/questions/33551542
复制相似问题