hdinsight hadoopをローカルで使用しており、hdfsでmapreduceジョブを正常に実行した後、ハイブで試していますが、残念ながら、テーブルの作成時にハイブクエリを実行するとエラーが発生します。
ローカルでのみ実行しており、Azure を使用していないため、別のスタック ソリューションから次のコードを取得しました。
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: 1 つ以上のエラーが発生しました。---> System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。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() で Microsoft.Hadoop.Hive.HiveConnection.d__2.MoveNext()<---
Hadoop のログを確認したところ、次の結果が得られました。
java.io.IOException: org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java: 762) org.apache.hadoop.mapred.MapTask.run(MapTask.java:364) で org.apache.hadoop.mapred.Child$4.run(Child.java:266) で java.security.AccessController.doPrivileged( Native Method) の javax.security.auth.Subject.doAs(Subject.java:396) の org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1136) の org.apache.hadoop.mapred.Child. main(Child.java:260) 原因: java.net.URISyntaxException: インデックス 6 の権限に不正な文字: java.net の asv://{0}@{1}/6f8d3bc9-89a2-4e1d-9749-2805d31f05f0 .URI$Parser.fail(URI.java:2810) java.net.URI$Parser で。java.net.URI$Parser.parseHierarchical(URI.java:3059) の parseAuthority(URI.java:3148) java.net.URI$Parser.parse(URI.java:3015) の java.net.URI.( URI.java:577) org.apache.hcatalog.templeton.tool.TempletonUtils.addUserHomeDirectoryIfApplicable(TempletonUtils.java:227) org.apache.hcatalog.templeton.tool.TempletonControllerJob$LaunchMapper.run(TempletonControllerJob.java:152) ... 7 つ以上
なぜこれが失敗しているのかわからないので、誰かがこれを正しい方向に向けることができれば幸いです。