2016-10-27 44 views
2

我寫使用HCatalogue流API權限遭拒,蜂巢臨時目錄,同時試圖使用蜂巢流API

示例程序來建立連接我有一個正在運行的Hadoop,Hiveserver和Hivemetastore服務器。

我寫一個java程序連接到下面的蜂房

public class HCatalogueStreamingclient { 
    public static void main(String[] args) { 
     System.setProperty("hadoop.home.dir", "E:\\midhun\\hadoop\\hive\\winutils"); 
     String dbName = "hive_streaming"; 
     String tblName = "alerts"; 
     ArrayList<String> partitionVals = new ArrayList<String>(2); 
     partitionVals.add("Asia"); 
     partitionVals.add("India"); 
     HiveEndPoint hiveEP = new HiveEndPoint("thrift://192.168.10.149:8000", dbName, tblName, partitionVals); 
     HiveConf conf = new HiveConf(); 
     conf.set("hive.exec.scratchdir", "/tmp/hivetmp"); 

     try { 
      StreamingConnection connection = hiveEP.newConnection(true,conf); 
     } catch (ConnectionError e) { 
      e.printStackTrace(); 
     } catch (InvalidPartition e) { 
      e.printStackTrace(); 
     } catch (InvalidTable e) { 
      e.printStackTrace(); 
     } catch (PartitionCreationFailed e) { 
      e.printStackTrace(); 
     } catch (ImpersonationFailed e) { 
      e.printStackTrace(); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

metastore.The源代碼被賦予在運行程序我得到以下異常

Exception in thread "main" java.lang.RuntimeException: The root scratch dir: /tmp/hivetmp on HDFS should be writable. Current permissions are: rw-rw-rw- 
    at org.apache.hadoop.hive.ql.session.SessionState.createRootHDFSDir(SessionState.java:690) 
    at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:622) 
    at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:550) 
    at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:513) 
    at org.apache.hive.hcatalog.streaming.HiveEndPoint$ConnectionImpl.createPartitionIfNotExists(HiveEndPoint.java:445) 
    at org.apache.hive.hcatalog.streaming.HiveEndPoint$ConnectionImpl.<init>(HiveEndPoint.java:314) 
    at org.apache.hive.hcatalog.streaming.HiveEndPoint$ConnectionImpl.<init>(HiveEndPoint.java:278) 
    at org.apache.hive.hcatalog.streaming.HiveEndPoint.newConnectionImpl(HiveEndPoint.java:215) 
    at org.apache.hive.hcatalog.streaming.HiveEndPoint.newConnection(HiveEndPoint.java:192) 
    at org.apache.hive.hcatalog.streaming.HiveEndPoint.newConnection(HiveEndPoint.java:113) 
    at com.mj.HCatalogueStreamingclient.main(HCatalogueStreamingclient.java:27) 

任何一個有想法關於如何向hdfs文件夾寫入權限/ tmp/hivetmp

回答

0

問題已確定。

  • 我們需要隆重Hadoop的目錄/tmp/hivetmp.The命令所有權限擠級權限是$ HADOOP_HOME /斌/ Hadoop的FS -chmod 777 -R/tmp目錄/ hivetmp
  • 我是運行程序在Windows 7 64位操作系統中。我們需要下載適合操作系統和版本的winutils。

上面給出分後做我能夠使用蜂巢HCatalogue流API

建立連接