Hive源码解析
入口:hive-cli-1.1.0-cdh5.14.4.jar!/org/apache/hadoop/hive/cli/CliDriver.class
1. 启动
命令行输入 hive 后,启动log进程,建立一个客户端Session,获取到服务器的hive conf配置文件,启动客户端
启动后 executeDriver(CliSessionState ss, HiveConf conf, OptionsProcessor oproc) 一直监听输入的 line; line 会按照 ; 来进行分割拼接成 command,对每一个 command 依次进行处理。command 一共分四种情况:① quit\exit ② source FilePath 指定执行某个文件里的语句 ③ 以 ! 开头的 shell 命令 ④ 本地客户端的各种命令(processLocalCmd(String cmd, CommandProcessor proc, CliSessionState ss))
通过读取 conf 配置,拿到 Driver 信息,然后交给对应的 Driver 来执行命令:org.apache.hadoop.hive.ql.Driver.compile(String command, boolean resetTaskIds, boolean deferClose)