我正在尝试使用RHive将R与HiveServer2连接,我遇到了问题。我可以通过我们的linux集群上的ssh连接到hiveserver,也可以通过windows连接到hiveserver,但不是在R.我通过Hive命令行界面创建了一个测试表,并在tableau中拉出了表,所以我很确定服务器工作正常。
任何人都可以提供有关我需要做什么才能使连接正常工作的建议吗?我们的Hadoop头节点是bigdatann,但是hiveserver在bigdatajt上运行。
在R中我尝试以下方法:
#get off the login node
ssh localhost bigdatann
#Load R into the session
module load R
#start R
R
#should now see > as the command prompt
#load Rhive Package
library(RHive)
#if it doesn't load, install it
install.packages("RHive")
#set environmental variables
#source: http://www.slideshare.net/SeonghakHong/rhive-tutorials-basic-functions
Sys.setenv(HIVE_HOME="/opt/cloudera/parcels/CDH-4.7.0-1.cdh4.7.0.p0.40/lib/hive/")
Sys.setenv(HADOOP_HOME="/opt/cloudera/parcels/CDH-4.7.0-1.cdh4.7.0.p0.40/")
#initialize the database
rhive.init()
#Make connection
#source: https://github.com/nexr/RHive/issues/44
rhive.connect("Bigdatajt", 10000, hiveServer2=TRUE)
rhive.connect("Bigdatajt", 10000, hiveServer2=TRUE, defaultFS="/projects/prima/Dan_Hadoop_Test")
#Errors:
Error: org.apache.hadoop.security.AccessControlException: Permission denied: user=d3y087, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x
at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:224)
at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:204)
at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:149)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:4705)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:4687)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkAncestorAccess(FSNamesystem.java:4661)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInternal(FSNamesystem.java:1839)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInt(FSNamesystem.java:1771)