2013-10-28 21 views
2

我在本地使用hdinsight hadoop,並在hdfs上成功運行mapreduce作業後,我嘗試使用配置單元,不幸的是,當創建表時運行配置單元查詢時出現錯誤。hdinsight新hiveconnection不工作

我從另一個棧解決方案下面的代碼,因爲我只運行在本地,而不是用天藍色:

var db = new HiveConnection(
        webHCatUri: new Uri("http://localhost:50111"), 
        userName: (string)"hadoop", password: (string)null); 

// also tried command with no ; inside quotes 
string command = "CREATE TABLE log4jLogs(t1 string, t2 string, t3 string," + 
            "t4 string, t5 string, t6 string, t7 string)" + 
        "ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ';"; 
db.ExecuteHiveQuery(command).Wait(); 

這總是拋出一個,而處理後的異常。例外是:

System.AggregateException:發生了一個或多個錯誤。 ---> System.NullReferenc eException:對象引用未設置爲對象的一個​​實例的 。在在 Microsoft.Hadoop.Hive.HiveConnection.d__2.MoveNext()< System.Threading.Tasks.TaskAwaiter 1.GetResult() at Microsoft.Hadoop.Hive.HiveConnection.<ExecuteHiveQuery>d__2.MoveNext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationTo ken cancellationToken) at System.Threading.Tasks.Task.Wait() at ConsoleApplication1.Program.CreateActorsTable() in c:\Users\Administrator\ Documents\Visual Studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\Pr ogram.cs:line 90 ---> (Inner Exception #0) System.NullReferenceException: Object reference not se t to an instance of an object. at System.Threading.Tasks.TaskAwaiter 1.GetResult()---

我從hadoop的檢查日誌中,我得到如下:

java.io.IOException異常:無效的狀態DIR URI在 org.apache.hcatalog.templeton.tool.TempletonControllerJob $ LaunchMapper.run(TempletonControllerJob.java:155) 在org.apache。 hadoop.mapred.MapTask.runNewMapper(MapTask.java:762) at org.apache.hadoop .mapred.MapTask.run(MapTask.java:364)at org.apache.hadoop.mapred.Child $ 4.run(Child.java:266)at java.security.AccessController.doPrivileged(Native Method)at javax .security.auth.Subject.doAs(Subject.java:396)at org.apache.hadoop.mapred.Child.main org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1136) (Child .java:260)原因: java.net.URISyntaxException:索引中的非法字符在索引 6:asv:// {0} @ {1}/6f8d3bc9-89a2-4e1d-9749-2805d31f05f0 at java.net .URI $ Parser.fail(URI.java:2810)at java.net.URI $ Parser.parseAuthority(URI.java:3148)at java.net.URI $ Parser.parseHierarchical(URI.java:3059)at jav a.net.URI $ Parser.parse(URI.java:3015)at java.net.URI。(URI.java:577)at org.apache.hcatalog.templeton.tool.TempletonUtils.addUserHomeDirectoryIfApplicable(TempletonUtils.java :227) 在 org.apache.hcatalog.templeton.tool.TempletonControllerJob $ LaunchMapper.run(TempletonControllerJob.java:152) ... 7個

我會很喜歡,如果任何人都可以在點我正確的方向,因爲我無法解決爲什麼這是失敗。

+0

您是否找到解決方案?我有同樣的情況。 – Jules

回答

0

如果要首先使用配置單元連接必須啓動配置單元服務器。 Hive服務器可執行文件位於hdp/hive/bin中。使用命令提示符啓動hiveserver2.exe。您可以使用駐留在同一文件夾中的hiveserver2.xml來修改Hive服務器配置。