我在 Impala 中有一个基本问题。我们知道 Impala 允许您查询存储在 HDFS 中的数据。现在,如果一个文件被分成多个 block ,假设一行文本分布在两个 block 中。在 Hive/MapReduce 中,RecordReader 负责处理这个问题。
在这种情况下Impala如何读取记录?
最佳答案
引用my answer on the Impala user list :
当 Impala 发现不完整的记录(例如,扫描某些文件格式(如文本或 rc 文件)时,它将继续从下一个 block 开始增量读取,直到读取整个记录。请注意,这可能需要少量的“远程读取”(从远程数据节点读取),但与应该在本地读取的整个 block (最好是通过短路读取)相比,通常这是一个非常小的量。
关于hdfs - Cloudera 黑斑羚 : How does it read data from HDFS blocks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26499889/