Hadoop 哪个类将配置单元解析为Map Reduce(&Ping)

Hadoop 哪个类将配置单元解析为Map Reduce(&Ping),hadoop,hive,apache-pig,Hadoop,Hive,Apache Pig,将pig和hive命令解析为Map Reduce作业的类, 这种解析背后的算法是什么?Pig和Hive都用来构建一个编译器来解析它们的脚本。如果你不熟悉编译理论,我建议你阅读一些相关资料 对于Pig,ANLTR的源代码是src/org/apache/Pig/parser/QueryLexer.g和src/org/apache/Pig/parser/QueryParser.g。它们将被编译为org.apache.pig.parser.QueryLexer和org.apache.pig.parser

将pig和hive命令解析为Map Reduce作业的类, 这种解析背后的算法是什么?

Pig和Hive都用来构建一个编译器来解析它们的脚本。如果你不熟悉编译理论,我建议你阅读一些相关资料

对于Pig,ANLTR的源代码是src/org/apache/Pig/parser/QueryLexer.g和src/org/apache/Pig/parser/QueryParser.g。它们将被编译为org.apache.pig.parser.QueryLexer和org.apache.pig.parser.QueryParser。但是,这两个类用于将Pig脚本编译为抽象语法树。然后将其转换为org.apache.pig.newplan.logical.relational.LogicalPlan。之后,LogcialPlan将被转换为org.apache.pig.backend.hadoop.executionengine.physicalayer.plans.PhysicalPlan。这里我列出了一些相关的源文件:

org.apache.pig.newplan.logical.relational.LogicalPlan
org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan
org.apache.pig.parser.QueryParserDriver.parse(String)
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.compile(LogicalPlan, Properties)
org.apache.pig.PigServer.launchPlan(PhysicalPlan, String)
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.compile(PhysicalPlan, PigContext)
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.getJob(MROperPlan, MapReduceOper, Configuration, PigContext)
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.compile(MROperPlan, String)
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.launchPig(PhysicalPlan, String, PigContext)
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange.constructLROutput(List<Result>, List<Result>, Tuple)
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce.Map.collect(Context, Tuple)
org.apache.hadoop.hive.cli.CliDriver
org.apache.hadoop.hive.ql.Driver
org.apache.hadoop.hive.ql.Driver.run(String)
org.apache.hadoop.hive.ql.parse.ParseDriver.parse(String, Context)
org.apache.hadoop.hive.ql.parse.ParseDriver.parse(String, Context)
org.apache.hadoop.hive.ql.parse.ASTNode
org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer
org.apache.hadoop.hive.ql.QueryPlan
org.apache.hadoop.hive.ql.Driver.compile(String, boolean)
org.apache.hadoop.hive.ql.exec.TaskRunner
org.apache.hadoop.hive.ql.Driver.execute()
org.apache.hadoop.hive.ql.exec.ExecDriver
org.apache.hadoop.hive.ql.exec.ExecMapper
org.apache.hadoop.hive.ql.exec.ExecReducer
org.apache.hadoop.hive.ql.exec.MapOperator
最后,我建议您下载它们的源代码,并在eclipse中浏览它们,以找到您想自己知道的任何问题。

Pig和Hive都用于构建编译器来解析它们的脚本。如果你不熟悉编译理论,我建议你阅读一些相关资料

对于Pig,ANLTR的源代码是src/org/apache/Pig/parser/QueryLexer.g和src/org/apache/Pig/parser/QueryParser.g。它们将被编译为org.apache.pig.parser.QueryLexer和org.apache.pig.parser.QueryParser。但是,这两个类用于将Pig脚本编译为抽象语法树。然后将其转换为org.apache.pig.newplan.logical.relational.LogicalPlan。之后,LogcialPlan将被转换为org.apache.pig.backend.hadoop.executionengine.physicalayer.plans.PhysicalPlan。这里我列出了一些相关的源文件:

org.apache.pig.newplan.logical.relational.LogicalPlan
org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan
org.apache.pig.parser.QueryParserDriver.parse(String)
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.compile(LogicalPlan, Properties)
org.apache.pig.PigServer.launchPlan(PhysicalPlan, String)
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.compile(PhysicalPlan, PigContext)
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.getJob(MROperPlan, MapReduceOper, Configuration, PigContext)
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.compile(MROperPlan, String)
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.launchPig(PhysicalPlan, String, PigContext)
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange.constructLROutput(List<Result>, List<Result>, Tuple)
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce.Map.collect(Context, Tuple)
org.apache.hadoop.hive.cli.CliDriver
org.apache.hadoop.hive.ql.Driver
org.apache.hadoop.hive.ql.Driver.run(String)
org.apache.hadoop.hive.ql.parse.ParseDriver.parse(String, Context)
org.apache.hadoop.hive.ql.parse.ParseDriver.parse(String, Context)
org.apache.hadoop.hive.ql.parse.ASTNode
org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer
org.apache.hadoop.hive.ql.QueryPlan
org.apache.hadoop.hive.ql.Driver.compile(String, boolean)
org.apache.hadoop.hive.ql.exec.TaskRunner
org.apache.hadoop.hive.ql.Driver.execute()
org.apache.hadoop.hive.ql.exec.ExecDriver
org.apache.hadoop.hive.ql.exec.ExecMapper
org.apache.hadoop.hive.ql.exec.ExecReducer
org.apache.hadoop.hive.ql.exec.MapOperator
最后,我建议您下载他们的源代码,并在eclipse中浏览它们,以找到您自己想知道的任何问题