我在本地使用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:发生一个或多个错误。-->system.NullReference EEException:对象引用未设置为对象的示例。在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\u 2.movenext()<---
我已经检查了hadoop的日志,其中有以下内容:
java.io.ioexception:org.apache.hcatalog.templeton.tool.templetoncontrollerjob$launchmapper.run(templetoncontrollerjob)中的状态目录uri无效。java:155)在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)在javax.security.auth.subject.doas(主题)中的java.security.accesscontroller.doprivileged(本机方法)。java:396)在org.apache.hadoop.security.usergroupinformation.doas(usergroupinformation。java:1136)在org.apache.hadoop.mapred.child.main(child。java:260)原因:java.net.urisyntaxexception:索引6处的权限中存在非法字符:asv://{0}@{1}/6f8d3bc9-89a2-4e1d-9749-2805d31f05f0位于java.net.uri$parser.fail(uri)。java:2810)在java.net.uri$parser.parseauthority(uri。java:3148)在java.net.uri$parser.parseHierarchy(uri。java:3059)在java.net.uri$parser.parse(uri。java:3015)在java.net.uri。java:577)在org.apache.hcatalog.templeton.tool.templetonutils.addUserHomeDirectoryIapplicable(templetonutils。java:227)位于org.apache.hcatalog.templeton.tool.templetoncontrollerjob$launchmapper.run(templetoncontrollerjob)。java:152) ... 7个以上
如果有人能给我指出正确的方向,我会很高兴的,因为我不知道为什么会失败。
1条答案
按热度按时间dauxcl2d1#
如果要使用配置单元连接,首先必须启动配置单元服务器。配置单元服务器可执行文件驻留在hdp/hive/bin中。使用命令提示符启动hiveserver2.exe。您可以使用同样位于同一文件夹中的hiveserver2.xml修改配置单元服务器配置。