0

我正在尝试通过从 HDFS 中的文本文件导入来ORC table在 Hive中创建一个。我尝试了多种不同的方法,在网上搜索了帮助,无论如何插入作业都不会开始。

我可以将文本文件获取到 HDFS,我可以将文本文件读取到 Hive,但我无法将其转换为 ORC。

我尝试了许多不同的变体,包括这个可以用作这个问题的参考的变体:

http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.0/bk_dataintegration/content/moving_data_from_hdfs_to_hive_external_table_method.html

我有一个单节点 HDP 集群(用于开发) - 版本:

HDP-2.3.2.0

(2.3.2.0-2950)

以下是相关的服务版本:

服务版本状态描述

HDFS 2.7.1.2.3 安装的 Apache Hadoop 分布式文件系统

MapReduce2 2.7.1.2.3 安装的 Apache Hadoop NextGen MapReduce (YARN)

YARN 2.7.1.2.3 已安装 Apache Hadoop NextGen MapReduce (YARN)

Tez 0.7.0.2.3 已安装 Tez 是在 YARN 之上编写的下一代 Hadoop 查询处理框架。

Hive 1.2.1.2.3 安装的数据仓库系统,用于大型数据集的临时查询和分析以及表和存储管理服务

当我运行这样的 SQL 时会发生什么(同样,我尝试了许多变体,包括直接来自在线教程):

插入覆盖表 mycars SELECT * FROM cars;

我的工作是这样的:

应用程序总数(应用程序类型:[] 和状态:

[已提交、已接受、正在运行]):1

Application-Id      Application-Name        Application-Type          User       Queue               State         Final-State         Progress                        Tracking-URL

application_1455989658079_0002  HIVE-3f41161c-b806-4e7d-974e-c18e028d683f                    TEZ          hive   root.hive            ACCEPTED           UNDEFINED               0%                                 N/A

它就挂在那里。(从字面上看,我已经尝试了一个20 行的示例表并让它运行了几个小时,然后才杀死它)。

我绝不是 Hadoop 专家(还),我确信这可能是一个配置问题,但我一直无法弄清楚。

我尝试过的所有其他 Hive 操作,例如创建删除表、将文件加载到文本表、选择,都可以正常工作。只是当我创建一个 ORC 表时它才会这样做。我需要一个 ORC 表来满足我的要求。

任何意见将是有益的。

4

1 回答 1

0

大多数情况下,它与增加 Yarn Scheduling 容量有关,但如果您的资源已经达到上限,您还可以通过调整 TEZ 配置中的以下属性来减少单个 TEZ 任务请求的内存量:

task.resource.memory.mb

为了增加集群的容量,您可以在 YARN 的配置设置中或直接通过 Ambari 或 Cloudera Manager 进行

在此处输入图像描述

为了监控幕后发生的事情,您可以运行 Yarn 资源管理器 UI 并检查特定应用程序的诊断选项卡,有关于资源分配的有用的显式消息,特别是当作业被接受并保持挂起时。

在此处输入图像描述

于 2018-10-17T14:40:36.270 回答