P******d 发帖数: 137 | 1 因为平时都是在Hive下把数据先从Hadoop中提取出来,放到AWS的S3里面,再下载到自
己的电脑上。我想要尝试直接连接R和Hive,用JDBC Driver。
在stackoverflow上找到这个帖子:
http://stackoverflow.com/questions/6057875/establishing-a-conne
但是我在自己尝试的时候,老是出现错误
Error in .jfindClass(as.character(driverClass)[1]) : class not found
这是我的Code:
hive_connection <- function(hostname='myhostname',
port= myportnumber,
lib_dir="my/dir" ){
hive_jars <- c('commons-logging-1.1.3.jar',
'hadoop-core-1.2.1.jar',
'hive-exec-0.12.0.jar',
'hive-jdbc-0.12.0.jar',
'hive-metastore-0.12.0.jar',
'hive-service-0.12.0.jar',
'libfb303-0.9.1.jar',
'libthrift-0.5.0.jar',
'log4j-1.2.17.jar',
'slf4j-api-1.7.5.jar',
'slf4j-log4j12-1.7.5.jar' )
# lib_dir: directory containing the jars above.
hive_class_path <- sprintf('%s/%s', lib_dir, hive_jars)
drv <- JDBC( driverClass="org.apache.hadoop.hive.jdbc.HiveDriver",
classPath= hive_class_path,
identifier.quote="`" )
server <- sprintf( 'jdbc:hive://%s:%s/default', hostname, port )
return ( dbConnect( drv, server ) )
}
hive_connection()
那些.jar文件都是在http://mvnrepository.com/上下的,版本和原贴里面不太一样。因为在QuestDataHub那个软件里面没有找到.jar文件
请大牛们给点建议,多谢了 | w********m 发帖数: 1137 | 2 可能版本不对,cluster上面的hive版本是多少?
我一般用sqoop导入mysql,再跟R连。不太喜欢用R和hadoop直连。 | P******d 发帖数: 137 | 3 不太清楚是什么版本,明天去问问同事。但是stackoverflow的code里面好像没有提到
Hive版本。
Anyway,多谢胖猫了。 |
|