Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 配置单元外部表-数据位置元数据存储在哪里?_Mysql_Hadoop_Amazon S3_Hive_Emr - Fatal编程技术网

Mysql 配置单元外部表-数据位置元数据存储在哪里?

Mysql 配置单元外部表-数据位置元数据存储在哪里?,mysql,hadoop,amazon-s3,hive,emr,Mysql,Hadoop,Amazon S3,Hive,Emr,我正在Amazon EMR上使用Hive外部表。这些表通常是分区的,每个分区都指向S3中不同的存储桶。我正在使用MySQL进行Hive元数据存储 我希望能够看到S3上每个分区所指向的位置/存储桶。我研究了MySQL中的元数据表。我可以在那个里看到分区信息,但并没有显示数据的实际位置 这些数据在MySQL中可用吗,或者可以通过配置单元命令获得吗?以下配置单元命令可用于获取位置 配置单元>显示创建表 请在上述配置单元命令的输出中搜索行位置。如h4ck3r所述,您可以使用“Show create ta

我正在Amazon EMR上使用Hive外部表。这些表通常是分区的,每个分区都指向S3中不同的存储桶。我正在使用MySQL进行Hive元数据存储

我希望能够看到S3上每个分区所指向的位置/存储桶。我研究了MySQL中的元数据表。我可以在那个里看到分区信息,但并没有显示数据的实际位置


这些数据在MySQL中可用吗,或者可以通过配置单元命令获得吗?

以下配置单元命令可用于获取位置

配置单元>
显示创建表


请在上述配置单元命令的输出中搜索行位置。

如h4ck3r所述,您可以使用“Show create table”命令查找位置信息

要查看特定于分区的信息,请使用:

SHOW TABLE EXTENDED将列出与给定正则表达式匹配的所有表的信息。如果存在分区规范,则用户不能对表名使用正则表达式。此命令的输出包括基本表信息和文件系统信息,如totalNumberFiles、totalFileSize、maxFileSize、minFileSize、lastAccessTime和lastUpdateTime。如果存在分区,它将输出给定分区的文件系统信息,而不是表的文件系统信息


对于外部分区表,每个分区都有一个位置,而不是表本身有一个位置。你需要使用类似于

显示分区员工

然后获取分区列表

描述扩展员工分区(2016年、05月、25日)

查看特定分区的位置

其他命令,如
show create table employees
可能无法提供有关数据位置的有用信息:

位置

'hdfs://nameservice1/user/hive/warehouse/something.db/employees“

描述扩展表的名称

将向您提供有关这些表的所有详细信息,包括(tableName:ca_data、dbName:suman、owner:suman、createTime:1494368591、lastAccessTime:0、retention:0、sd:StorageDescriptor(cols:)以及更多信息

另一个命令:


desc formatted table\u name;

如果要查看配置单元表的实际数据存储位置,可以使用多种方法

1)
hive>显示创建表
它将为您提供带有实际数据所在路径的长表语法

2)
描述扩展表名称
描述格式化表名称
。 它将为您提供位置、所有者、注释、表格类型等详细信息

3) 仅当您要检查单个表的位置时,上述格式才有帮助,但如果您要检查多个数据库中多个表的位置,则上述步骤将没有帮助

因此,在这里,我们可以通过一个查询配置单元元存储并获取多个表的位置

我看到了一篇关于如何获取所有配置单元表HDFS路径位置的非常好的文章,请阅读。

谢谢,
Mahesh

此命令显示表使用的顶级分区。但是我有多个分区级别,我希望看到最低级别分区的位置。此外,我的一些表同时指向HDFS中的S3存储桶和目录<代码>显示创建表
仅显示HDFS目录。这看起来确实让我走上了正确的轨道<代码>显示扩展表
当我没有指定分区时,会出现堆空间错误。当分区指向HDFS时,在特定分区上使用此命令似乎有效,但当它指向S3时,我会收到一个错误,如
FAILED:error in metadata:java.lang.IllegalArgumentException:此文件系统对象(HDFS://…)不支持访问请求路径“s3n://…”,您可能会调用FileSystem.get(conf)当您应该调用FileSystem.get(uri,conf)以获取支持您的路径的文件系统时。
注意:这是一个正确的答案。我有一个例子,表位置和分区位置是不同的。我很困惑,我可以在配置单元中查询数据,但是
showcreatetable
提供的S3位置没有任何数据<代码>描述扩展员工分区让我找到正确的轨道来定位数据。