2

我有一个在 Amazon EMR 上的 yarn 集群上运行的LLAP 服务。这是显示 llap 服务已打开的图像,它的名称是llap_service

截屏

我已经将“hive.llap.daemon.service.hosts”设置为“@llap_service”,但是我在 hive 中的查询无法成功,日志是这样的:

2018-01-08 08:22:43,866 [INFO] [LlapScheduler] |tezplugins.LlapTaskSchedulerService|: Timeout monitor task not started. Timeout future state: false, #instances: 0
2018-01-08 08:22:43,866 [INFO] [TaskSchedulerEventHandlerThread] |tezplugins.LlapTaskSchedulerService|: PendingTasksInfo=numPriorityLevels=5. [p=38,c=2][p=41,c=2][p=44,c=1][p=50,c=2][p=89,c=22]. totalPendingTasks=29. delayedTaskQueueSize=0
2018-01-08 08:22:43,866 [INFO] [LlapScheduler] |tezplugins.LlapTaskSchedulerService|: Inadequate total resources before scheduling pending tasks. Signalling scheduler timeout monitor thread to start timer.
2018-01-08 08:22:43,866 [INFO] [TaskSchedulerEventHandlerThread] |tezplugins.LlapTaskSchedulerService|: Received allocateRequest. task=attempt_1515129349345_0057_1_08_000022_0, priority=89, capability=<memory:2048, vCores:1>, hosts=null
2018-01-08 08:22:43,866 [INFO] [LlapScheduler] |tezplugins.LlapTaskSchedulerService|: Timeout monitor task not started. Timeout future state: false, #instances: 0
2018-01-08 08:22:43,866 [INFO] [TaskSchedulerEventHandlerThread] |tezplugins.LlapTaskSchedulerService|: PendingTasksInfo=numPriorityLevels=5. [p=38,c=2][p=41,c=2][p=44,c=1][p=50,c=2][p=89,c=23]. totalPendingTasks=30. delayedTaskQueueSize=0
2018-01-08 08:22:43,866 [INFO] [LlapScheduler] |tezplugins.LlapTaskSchedulerService|: Inadequate total resources before scheduling pending tasks. Signalling scheduler timeout monitor thread to start timer.
2018-01-08 08:22:43,867 [INFO] [LlapScheduler] |tezplugins.LlapTaskSchedulerService|: Timeout monitor task not started. Timeout future state: false, #instances: 0
2018-01-08 08:22:50,987 [INFO] [LlapTaskSchedulerTimedLogThread] |tezplugins.LlapTaskSchedulerService|: Stats for current dag: NumPreemptedTasks=0, NumRequestedAllocations=30, NumRequestsWithlocation=4, NumLocalAllocations=0,NumNonLocalAllocations=0,NumTotalAllocations=0,NumRequestsWithoutLocation=26, NumRejectedTasks=0, NumCommFailures=0, NumDelayedAllocations=2, LocalityBasedAllocationsPerHost={}, NumAllocationsPerHost={}
2018-01-08 08:23:31,081 [INFO] [AMRM Callback Handler Thread] |rm.YarnTaskSchedulerService|: Allocated: <memory:0, vCores:0> Free: <memory:6477824, vCores:1> pendingRequests: 0 delayedContainers: 0 heartbeats: 51 lastPreemptionHeartbeat: 50
2018-01-08 08:23:42,334 [INFO] [LlapTaskSchedulerTimeoutMonitor] |tezplugins.LlapTaskSchedulerService$SchedulerTimeoutMonitor|: Reporting SERVICE_UNAVAILABLE error as no instances are running
2018-01-08 08:23:42,336 [WARN] [TaskSchedulerAppCallbackExecutor #0] |tez.Utils|: Error reported by TaskScheduler [[2:LLAP]][SERVICE_UNAVAILABLE] No LLAP Daemons are running, Failing dag: [SELECT d_placement.name  AS `d_placem...DESC(Stage-1), dag_1515129349345_0057_1]

在没有 LLAP 的情况下,tez 上的 Hive 可以完美运行,有人能告诉我哪里错了吗?非常感谢。

4

1 回答 1

2

您需要从日志中找出 LLAP 恶魔无法启动的原因。从 RM UI > Slider llap 应用程序 > 容器日志,您可能会看到类似这样的内容

在此处输入图像描述

“LLAP 服务主机以 '@' 开头,但未设置 hive.zookeeper.quorum。必须设置 hive.zookeeper.quorum。您需要在 hive-site.xml 中添加以下属性”

<property>
    <name>hive.zookeeper.quorum</name>
    <value><hostname1>:2181,<hostname2>:2181,[...]</value>
</property>

并重新生成滑块 llap 纱线应用程序。

这篇博文帮助很大!

于 2018-06-08T04:04:52.830 回答