Hive 配置单元:为什么配置单元在tablename的select列上生成mapreduce作业,而不是在tablename的select*上生成mapreduce作业?

Hive 配置单元:为什么配置单元在tablename的select列上生成mapreduce作业,而不是在tablename的select*上生成mapreduce作业?,hive,Hive,为什么配置单元会在tablename的select列上生成mapreduce作业,而不是在tablename的select*上不生成mapreduce?每当运行正常的“select*”时,都会创建一个获取任务,而不是一个mapreduce任务,该任务只会按原样转储数据,而不会对数据执行任何操作。而每当您执行“选择列”时,映射作业都会在内部选择该特定列并给出输出 还存在一个bug,使“select column”查询在没有mapreduce的情况下运行。检查此处的详细信息:无论何时运行正常的“选择

为什么配置单元会在tablename的select列上生成mapreduce作业,而不是在tablename的select*上不生成mapreduce?

每当运行正常的“select*”时,都会创建一个获取任务,而不是一个mapreduce任务,该任务只会按原样转储数据,而不会对数据执行任何操作。而每当您执行“选择列”时,映射作业都会在内部选择该特定列并给出输出


还存在一个bug,使“select column”查询在没有mapreduce的情况下运行。检查此处的详细信息:

无论何时运行正常的“选择*”,都会创建一个获取任务,而不是mapreduce任务,该任务只按原样转储数据,而不对数据执行任何操作。而每当您执行“选择列”时,映射作业都会在内部选择该特定列并给出输出


还存在一个bug,使“select column”查询在没有mapreduce的情况下运行。检查此处的详细信息:

无论何时运行正常的“选择*”,都会创建一个获取任务,而不是mapreduce任务,该任务只按原样转储数据,而不对数据执行任何操作。而每当您执行“选择列”时,映射作业都会在内部选择该特定列并给出输出


还存在一个bug,使“select column”查询在没有mapreduce的情况下运行。检查此处的详细信息:

无论何时运行正常的“选择*”,都会创建一个获取任务,而不是mapreduce任务,该任务只按原样转储数据,而不对数据执行任何操作。而每当您执行“选择列”时,映射作业都会在内部选择该特定列并给出输出


还存在一个bug,使“select column”查询在没有mapreduce的情况下运行。检查此处的详细信息:

当执行类似这样的简单语句时,
select*fromtablename
,hive所做的只是从存储在hdfs中的文件中获取数据,并以列输出格式将其输出。基本上,它会生成如下语句

hadoop fs -cat hdfs://schemaname/tablename.txt
hadoop fs -cat hdfs://schemaname/tablename.rc
hadoop fs -cat hdfs://schemaname/tablename.orc
或者以存储表文件的任何格式


如果您尝试选择一列或向查询中添加where子句或使用表上的任何聚合,则MR出现在图中的原因显而易见。

当执行类似这样的简单语句时
select*from tablename
,hive所做的只是从存储在hdfs中的文件中获取数据,并以列式输出格式输出。基本上,它会生成如下语句

hadoop fs -cat hdfs://schemaname/tablename.txt
hadoop fs -cat hdfs://schemaname/tablename.rc
hadoop fs -cat hdfs://schemaname/tablename.orc
或者以存储表文件的任何格式


如果您尝试选择一列或向查询中添加where子句或使用表上的任何聚合,则MR出现在图中的原因显而易见。

当执行类似这样的简单语句时
select*from tablename
,hive所做的只是从存储在hdfs中的文件中获取数据,并以列式输出格式输出。基本上,它会生成如下语句

hadoop fs -cat hdfs://schemaname/tablename.txt
hadoop fs -cat hdfs://schemaname/tablename.rc
hadoop fs -cat hdfs://schemaname/tablename.orc
或者以存储表文件的任何格式


如果您尝试选择一列或向查询中添加where子句或使用表上的任何聚合,则MR出现在图中的原因显而易见。

当执行类似这样的简单语句时
select*from tablename
,hive所做的只是从存储在hdfs中的文件中获取数据,并以列式输出格式输出。基本上,它会生成如下语句

hadoop fs -cat hdfs://schemaname/tablename.txt
hadoop fs -cat hdfs://schemaname/tablename.rc
hadoop fs -cat hdfs://schemaname/tablename.orc
或者以存储表文件的任何格式


如果您尝试选择一列或向查询中添加where子句,或使用表中的任何聚合,MR出现在图中的原因显而易见。

如果您有多个节点,该怎么办?那么你会选择运行MR吗?这就是HDFS的美妙之处。它运行map reduce作业,与节点数无关。逻辑系统与物理系统分开。好的,如果数据分布在节点之间,但您仍然只执行
SELECT*
,那么它将不会执行map reduce作业,对吗?是的..对于
选择*
只选择
hadoop fs-cathdfs://schemaname/tablename.txt
将发布的语句类型。如果您有多个节点,该怎么办?那么你会选择运行MR吗?这就是HDFS的美妙之处。它运行map reduce作业,与节点数无关。逻辑系统与物理系统分开。好的,如果数据分布在节点之间,但您仍然只执行
SELECT*
,那么它将不会执行map reduce作业,对吗?是的..对于
选择*
只选择
hadoop fs-cathdfs://schemaname/tablename.txt
将发布的语句类型。如果您有多个节点,该怎么办?那么你会选择运行MR吗?这就是HDFS的美妙之处。它运行map reduce作业,与节点数无关。逻辑系统与物理系统分开。好的,如果数据分布在节点之间,但您仍然只执行
SELECT*
,那么它将不会执行map reduce作业,对吗?是的..对于
选择*
只选择
hadoop fs-cathdfs://schemaname/tablename.txt
将发布的语句类型。如果您有多个节点,该怎么办?那么你会选择运行MR吗?这就是HDFS的美妙之处。它运行map reduce作业,与节点数无关。逻辑系统与物理系统是分开的。好吧,如果您的数据分布在节点之间,但您仍然只执行
SELECT*
,那么它不会执行map reduce作业,对吗?是的。
SELECT*
只执行
hadoop fs-cathdfs://schemaname/tablename.txt
将发布的声明类型。