2013-10-28 2 views
2

나는 hdinsight hadoop을 로컬에서 사용하고 hdfs에서 mapreduce 작업을 성공적으로 실행 한 후 하이브를 사용하려고합니다. 불행히도 하이브 쿼리를 실행할 때 테이블을 만들 때 오류가 발생합니다.hdinsight 새로운 하이브리드 연결이 작동하지 않음

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() ---

에서 나는 하둡에서 로그를 확인 보유하고있는 전

때 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 (네이티브 메소드) .security.auth.Subject.doAs (Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1136) at org.apache.hadoop.mapred.Child.main (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

하이브 연결을 사용하려면 먼저 하이브 서버를 시작해야합니다. 하이브 서버 실행 파일은 hdp/hive/bin에 있습니다. 명령 프롬프트를 사용하여 hiveserver2.exe을 시작하십시오. 같은 폴더에있는 hiveserver2.xml을 사용하여 Hive 서버 구성을 수정할 수 있습니다.

관련 문제