笔记关联-hive学习笔记测试Demo1.首先在windows上本地创建几个文件放一列数据如2.在hive建表3.上传数据上传成功显示4.测试查询hive系统架构上图所示是hive的主要组件及其与Hadoop的交互方式***1.***用户用SQL语句发送指令给hivehive先进行翻译把用户所需什么表什么字段上的什么数据的指令交给编译器进行解析解析后系统会去原储存查到所需的数据交给驱动程序形成执行计划发给执行引擎【如果这个指令有“增删改元数据”的要求6.1的步骤就是将这个‘增删改后的元数据’返给元储存此时元储存中的元数据是进行了“增删改”后的元数据如果元数据没有被进行增删改则6.1的步骤省略】2.让执行引擎按照这个方案去 Hadoop 上真正执行任务6.1执行作业步骤相当于执行引擎把执行计划拆成一个或多个大的「作业Job」发给 Hadoop 的总包工头作业跟踪器。此时作业跟踪器会做两件事1把大作业拆成很多个小的 Map 任务再把 Map 任务的结果分配给对应的Reduce 任务注Map 是分头处理比如你要统计 1000 万行数据Map 阶段把 1000 万行拆成 100 份100 台机器每台处理 10 万行先做过滤、初步计算把大任务拆成小任务并行跑速度快很多。2把这些小任务分配给 Hadoop 集群里各个机器上的小工头任务跟踪器。注Reduce 汇总合并把 100 台机器的 Map 结果全部收过来合并成最终的结果比如求和、统计总数、去重得到你要的最终数据。3.6.2jobDone步骤是指每个MAP任务跟踪器全程盯着自己机器上的 Map/Reduce 任务任务一跑完就立刻给作业跟踪器汇报。等所有的 Map 任务和 Reduce 任务全部跑完作业跟踪器就给执行引擎发一个「jobDone」的通知明确告诉它你发的这个大作业我已经全部干完了。4.流程解读①Map 任务要读数据先问名称节点我要的数据块存在哪台机器node1、node2、node3的哪个数据节点然后直接去对应的数据节点读数据②Map 任务跑完的中间结果会暂时存在 HDFS 上给后面的 Reduce 任务用③Reduce 任务启动后会从 HDFS 上把所有 Map 任务的中间结果全部读出来做汇总计算④Reduce 任务跑完的最终结果会完整写到 HDFS 上永久保存⑤执行引擎也会直接操作 HDFS比如查结果文件的位置、确认文件是否生成。上述流程即完成6.3dfs的操作步骤5.第7、8、9步获取、发送结果的流程Hadoop 任务跑完把结果存进 HDFS 仓库 → 总指挥执行引擎先去仓库把结果取出来步骤 9 → 总指挥把取到的结果完整发给项目大管家驱动程序步骤 8 → 大管家把结果最终交付给你你在屏幕上看到结果步骤 7。