hive 创建数据表失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive 创建数据表失败相关的知识,希望对你有一定的参考价值。

参考技术A 之前根据网上相关教程搭建hive,一直没什么问题,最近新搭建 hive服务时出现了无法创建数据表的问题,从日志中发现报了一个,无法找到/user问题,正常情况下创建一张数据表的时候会在hdfs中创建一个/user/hive/warehouse的文件夹,去hdfs中没有这个目录,我就手动添加

显示添加失败,经过尝试要在目录前添加-p函数,并且添加namenode的域名(机器名)和端口.

创建成功后,重新打开hive使用,创建hive表,依然失败,一样的报错,无法找到/user目录。依据上次手动创建目录的经验我认为应该是没找到对应的hdfs服务。
修改hive-site.xml文件

重新启动hive, 可以创建hive表了。对于之前使用hive无需过多配置,这次却需要修改warehouse,也找到了合理的解释,之前配置hive都是安装在Hadoop namenode的机器上直接可以通过/user/hive/warehouse创建hdfs目录,但是这次为了分散压力我把hive安装到了别的服务器上,导致无法找到正确的namenode,所以需要在hive.metastore.warehouse.dir,添加hdfs联邦的地址。

带有日期分区的 HdInsight Azure DW Polybase 到 Hive 表 (ORC) 失败

【中文标题】带有日期分区的 HdInsight Azure DW Polybase 到 Hive 表 (ORC) 失败【英文标题】:HdInsight Azure DW Polybase to Hive Table (ORC) with Date partition is failing 【发布时间】:2017-11-06 17:51:03 【问题描述】:

我正在尝试在 Azure 数据仓库中为 Hive 表创建一个 polybase 外部表,该表存储为 ORC(HD Insight Data Lake)并在我查询外部表时按日期分区,它在 SQL 服务器中失败而没有任何适当的错误消息。

当我不使用分区时,我可以使用外部表访问 hive ORC 表,但是使用分区时,我在没有任何正确错误消息的情况下出现错误。

错误:

Msg 106000,16 级,状态 1,33 行索引:23,大小:23

详情:

蜂巢表:

创建外部表 DL_ClickStream_fnl(

.

.) PARTITIONED BY(TIME_STAMP Date) 存储为 ORC;

Azure DW 外部表:

创建外部表 [stg].[dl_clickstream_procd] (

.

.

) WITH (DATA_SOURCE = [AzureDataLakeStore_clusters],LOCATION = N'clusters/BLMSpark/hive/warehouse/coremetrics.db/dl_clickstream_procd',FILE_FORMAT = [ORCFileFormat_DL],REJECT_TYPE = VALUE,REJECT_VALUE = 2)

文件格式:

使用 (FORMAT_TYPE = ORC) 创建外部文件格式 [ORCFileFormat_DL]

【问题讨论】:

嗯,Azure SQL 数据仓库目前不只支持 Polybase 连接到 Azure Blob 存储和 Azure Data Lake 吗?查看黄色箭头here。 SQL Server 2016 和 APS 可以连接到 Hadoop。微妙的哈。 【参考方案1】:

在 Hive 中,分区列是从目录元数据派生的虚拟列。 PolyBase 直接读取文件无法填充分区列。在您的 SQL DW 外部表 DDL 中,删除按列分区,您的负载应该可以工作。

【讨论】:

以上是关于hive 创建数据表失败的主要内容,如果未能解决你的问题,请参考以下文章

由于失败,无法执行 hive 交换分区:分区已存在

sqoop从hive导入数据到mysql时出现主键冲突

大数据问题排查系列-大数据集群开启 kerberos 认证后 HIVE 作业执行失败

Hive 导入失败 [java.lang.OutOfMemoryError]

Hive中数据加载失败:root:supergroup:drwxr-xr-x

带有日期分区的 HdInsight Azure DW Polybase 到 Hive 表 (ORC) 失败