我正在尝试通过从HDFS中的文本文件导入在Hive中创建ORC table
。 我尝试了多种不同的方法,在网上搜索了帮助,无论插入作业将不会开始。
我可以将文本文件转换为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时会发生什么(再次,我尝试了许多变体,包括直接从在线教程中进行的尝试):
INSERT OVERWRITE TABLE 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表来满足我的需求。
任何意见将是有益的。
最佳答案
在大多数情况下,这与提高 yarn 调度能力有关,但是如果您的资源已受限制,则还可以通过调整TEZ配置中的以下属性来减少单个TEZ任务所请求的内存量:
task.resource.memory.mb
为了增加群集的容量,您可以在YARN的配置设置中进行操作,也可以直接通过Ambari或Cloudera Manager进行操作
为了监视幕后发生的事情,您可以运行Yarn Resource Manager UI并检查特定应用程序的“诊断”选项卡,其中有关于资源分配的有用的显式消息,尤其是当作业被接受并处于挂起状态时。
关于hadoop - Hive/Tez作业无法开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35527542/