蜂巢如何理解输入数据的大小?

时间:2016-02-22 09:40:48

标签: apache hive hiveql

我正在努力了解Hive内部。什么类/方法配置单元用于理解S3中数据集的大小?

1 个答案:

答案 0 :(得分:1)

Hive构建在hadoop之上,并使用hadoop的HDFS作为输入/输出的API。 更确切地说,它有一个InputFormat和OutputFormat,当您创建一个从FileSystem对象(https://hadoop.apache.org/docs/r2.6.1/api/org/apache/hadoop/fs/FileSystem.html)获取数据的表时,它们是可配置的。 FileSystem对象抽象了文件管理的大多数方面,因此如果文件在S3或HDFS上,hive不必担心,因为hadoop / HDFS层会处理这个问题。 处理文件时,每个文件都有一个URL路径(例如,hdfs:/// dir / file或s3:/// bucket / path)。 SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate FROM Orders INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID; 类使用getFileSystem方法解析文件系统,对于S3网址,该方法为S3FileSystem。  从FileSystem对象,它可以使用FileStatus方法使用official tutorial的方法获取文件大小。

如果您想查看hive源中的位置,通常位于Path,这是getLen的默认设置。