1

刚刚使用新的 datastax 4.0 启动并运行了一个单节点集群。效果很好。我们使用 hive 来构建和查询我们的数据。在服务器上它自己。我可以启动 hive $>dse hive 和查询表就好了。当我尝试使用最新的 Hive ODBC 驱动程序运行相同的查询时,我看到了这个错误。它连接得很好,我可以查询键空间并查看表格。但是当我尝试运行查询时。看起来地图/红色进入队列,但随后出现以下错误。

Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks not specified. Estimated from input data size: 1
In order to change the average load for a reducer (in bytes):
  set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
  set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
  set mapred.reduce.tasks=<number>
java.lang.IllegalArgumentException: Does not contain a valid host:port authority: ${dse.job.tracker}
    at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:147)
    at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:128)
    at org.apache.hadoop.mapred.JobTracker.getAddress(JobTracker.java:2584)
    at org.apache.hadoop.mapred.JobClient.init(JobClient.java:474)
    at org.apache.hadoop.mapred.JobClient.<init>(JobClient.java:457)
    at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:402)
    at org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:144)
    at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:151)
    at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:65)
    at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1414)
    at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1192)
    at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1020)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:888)
    at org.apache.hadoop.hive.service.HiveServer$HiveServerHandler.execute(HiveServer.java:198)
    at org.apache.hadoop.hive.service.ThriftHive$Processor$execute.getResult(ThriftHive.java:646)
    at org.apache.hadoop.hive.service.ThriftHive$Processor$execute.getResult(ThriftHive.java:630)
    at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
    at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
    at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:225)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Job Submission failed with exception 'java.lang.IllegalArgumentException(Does not contain a valid host:port authority: ${dse.job.tracker})'
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

关于我应该尝试什么的任何想法?提前感谢大家可以提供的任何想法和建议/帮助。干杯,埃里克

4

3 回答 3

1

我已经通过手动将 host:port 配置到 mapred-site.xml 配置文件中解决了这个问题。

只需添加行

<property>
<name>mapred.job.tracker</name>
<value>host:port</value>
</property>

取决于您的配置单元服务器的 IP 地址和使用的端口(通常是 8012)。

这将覆盖 dse-mapred-default.xml 配置文件中的默认占位符 $(dse.job.tracker)。

于 2014-03-13T10:47:41.427 回答
0

dse.job.tracker 属性需要在启动 Hadoop 作业的 JVM 的系统属性中设置。如果已定义,Hadoop 将用适当的系统属性值替换占位符。否则,它将保持原样,因此您会看到错误。

对于 hive、pig 和 mahout,mapred.job.tracker 属性在 bin/dse 脚本中设置如下:

if [ -z "$HADOOP_JT" ]; then
    HADOOP_JT=`$BIN/dsetool jobtracker --use-hadoop-config`
fi
if [ -z "$HADOOP_JT" ]; then
    echo "Unable to run $HADOOP_CMD: jobtracker not found"
    exit 2
fi

#set the JT param as a JVM arg        
export HADOOP_OPTS="$HADOOP_OPTS -Ddse.job.tracker=$HADOOP_JT"

因此,您应该使用 Hive ODBC 驱动程序对您的程序执行相同的操作,我想应该没问题。

通过硬编码 Hadoop JT 位置,您可以更难将 JT 移动到另一个节点,因为您必须手动更新配置文件。此外,如果您的主 JT 出现故障,dse 的自动 JT 故障转移将无法正常工作,因为您的程序仍会尝试连接旧的。

于 2014-03-17T08:04:01.743 回答
0
<configuration>
<property>
  <name>mapreduce.framework.name</name>
   <value>yarn</value>
 </property>
<property>
 <name>mapreduce.jobhistory.address</name>
 <value>localhost:10020</value>
</property>
<property>
 <name>mapreduce.jobtracker.address</name>
 <value>local</value>
</property>
<property>
 <name>mapreduce.jobtracker.http.address</name>
 <value>localhost:50030</value>
</property>
<property>
 <name>mapreduce.jobhhistory.webapp.address</name>
 <value>localhost:19888</value>
</property>

</configuration>
于 2017-06-04T18:40:29.763 回答