1.hive1åhive2çåºå«
2.Hive最终都会转化成什么程序来执行?
3.4 步搞定 Hive 增量更新
hive1åhive2çåºå«
1ï¼ç¨æ·æ¥å£ï¼Client
CLIï¼hive shellï¼ãJDBC/ODBC(java访é®hive)ãWEBUIï¼æµè§å¨è®¿é®hiveï¼
2ï¼å æ°æ®ï¼Metastore
å æ°æ®å æ¬ï¼è¡¨åã表æå±çæ°æ®åºï¼é»è®¤æ¯defaultï¼ã表çæ¥æè ãå/ååºå段ã表çç±»åï¼æ¯å¦æ¯å¤é¨è¡¨ï¼ã表çæ°æ®æå¨ç®å½çï¼
é»è®¤åå¨å¨èªå¸¦çderbyæ°æ®åºä¸ï¼æ¨è使ç¨MySQLåå¨Metastore
3ï¼Hadoop
使ç¨HDFSè¿è¡åå¨ï¼ä½¿ç¨MapReduceè¿è¡è®¡ç®ã
4ï¼é©±å¨å¨ï¼Driver
ï¼1ï¼è§£æå¨ï¼SQL Parserï¼ï¼å°SQLå符串转æ¢ææ½è±¡è¯æ³æ ASTï¼è¿ä¸æ¥ä¸è¬é½ç¨ç¬¬ä¸æ¹å·¥å ·åºå®æï¼æ¯å¦antlrï¼å¯¹ASTè¿è¡è¯æ³åæï¼æ¯å¦è¡¨æ¯å¦åå¨ãå段æ¯å¦åå¨ãSQLè¯ä¹æ¯å¦æ误ã
ï¼2ï¼ç¼è¯å¨ï¼Physical Planï¼ï¼å°ASTç¼è¯çæé»è¾æ§è¡è®¡åã
ï¼3ï¼ä¼åå¨ï¼Query Optimizerï¼ï¼å¯¹é»è¾æ§è¡è®¡åè¿è¡ä¼åã
ï¼4ï¼æ§è¡å¨ï¼Executionï¼ï¼æé»è¾æ§è¡è®¡å转æ¢æå¯ä»¥è¿è¡çç©ç计åã对äºHiveæ¥è¯´ï¼å°±æ¯MR/Sparkã
Hiveéè¿ç»ç¨æ·æä¾çä¸ç³»å交äºæ¥å£ï¼æ¥æ¶å°ç¨æ·çæ令(SQL)ï¼ä½¿ç¨èªå·±çDriverï¼ç»åå æ°æ®(MetaStore)ï¼å°è¿äºæ令翻è¯æMapReduceï¼æ交å°Hadoopä¸æ§è¡ï¼æåï¼å°æ§è¡è¿åçç»æè¾åºå°ç¨æ·äº¤äºæ¥å£ã
äºï¼Hiveçä½ç¨åä¼å¿ï¼
åºäºHadoopçæ°æ®ä»åºè§£å³æ¹æ¡
Hiveæ¯åºäºHadoopçä¸ä¸ªæ°æ®ä»åºå·¥å ·ï¼å°ç»æåçæ°æ®æ件æ å°ä¸ºæ°æ®åºè¡¨ã
æä¾ç±»sqlçæ¥è¯¢è¯è¨HQL(Hive Query Language)
æ°æ®ä¸æ¾å¨hiveä¸ï¼æ¾å¨HDFSä¸
ç±Facebookå¼æºç¨äºè§£å³æµ·éç»æåæ¥å¿çæ°æ®ç»è®¡ã
æ§è¡ç¨åºè¿è¡å¨Yarnä¸
ä¼å¿ï¼
æä¾äºç®åçä¼å模å
HQLç±»sqlè¯æ³ï¼ç®åMRå¼å
æ¯æå¨HDFSåHBaseä¸ä¸´æ¶æ¥è¯¢æ°æ®
æ¯æç¨æ·èªå®ä¹å½æ°ï¼æ ¼å¼
æçJDBCåODBC驱å¨ç¨åºï¼ç¨äºETLåBI
稳å®å¯é çæ¹å¤ç
æ¯æå¨ä¸å计ç®æ¡æ¶è¿è¡
缺ç¹ï¼
Hiveçæ§è¡å»¶è¿æ¯è¾é«ï¼å æ¤Hive常ç¨äºæ°æ®åæï¼å¯¹å®æ¶æ§è¦æ±ä¸é«çåºå
è¿ä»£å¼ç®æ³æ æ³è¡¨è¾¾
æ°æ®æææ¹é¢ä¸æ é¿
Hiveèªå¨çæçMapReduceä½ä¸ï¼é常æ åµä¸ä¸å¤æºè½å
Hiveè°ä¼æ¯è¾å°é¾ï¼ç²åº¦è¾ç²
Hive最终都会转化成什么程序来执行?
hive最终都会转化为mapreduce的源码job来运行。用户接口主要有三个:CLI,源码Client 和 WUI。源码其中最常用的源码是 Cli,Cli 启动的源码时候,会同时启动一个 hive 副本。源码dispatcher源码Client 是源码 hive 的客户端,用户连接至 hive Server。源码
在启动 Client 模式的源码时候,需要指出 hive Server 所在节点,源码并且在该节点启动 hive Server。源码 WUI 是源码通过浏览器访问 hive。
扩展资料:
hive 并不适合那些需要高实时性的源码应用,例如,源码联机事务处理(OLTP)。源码hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,hive 将用户的多门店外卖源码hiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上。
Hadoop 监控作业执行过程,然后返回作业执行结果给用户。hive 并非为联机事务处理而设计,hive 并不提供实时的查询和基于行级的数据更新操作。hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析。
百度百科-hive
4 步搞定 Hive 增量更新
Hive 增量更新的绝地屠龙源码教程四大步骤
Hive 更新方法与数据库的更新模式密切相关。Hive 的表有两种类型:managed table 和 external table。managed table 是 Hive 自动管理的表,拥有自动分割底层存储文件和自动分区等功能。而 external table 是 Hive 维护的一种与外部文件的映射。 managed table 与 external table 最大的不同在于删除操作:external table 默认仅删除表定义,数据仍保留在 Hadoop 上;而 managed table 则是表定义与数据同时被删除。早期,Hive 支持的如来逻辑锁源码表操作只有 OverWrite 和 Append。OverWrite 并非对某行数据进行更新,而是对整张表进行覆盖,这使得 Hive 类似于数据仓库中的 Staging 环节,而非最终存储计算结果的地方。Hive 的强大计算能力使其成为大数据量转换的理想工具,最终结果通常存储在关系型数据库或其他 Hive 实例中。 Hortonworks 提出了一种解决增量更新 Hive 表的四步法,具体步骤如下:步骤一:Ingest
通过抽取源数据库的新版金多多源码数据完成第一步的导入。方法一:File Processing
数据库软件自带的导出功能,将数据导出为以特定分隔符分割的文本文件,然后将这些文件放置在 Hive 映射的文件夹中。方法二:RDBMS Processing (Database Client based ETL)
使用 Sqoop 来完成数据抽取任务,Sqoop 支持初始化导入和增量导入。对于增量导入,Sqoop 通过检查列的校验和(check-sum)来判断数据是否需要更新。步骤二:Reconcile
将新旧数据融合,生成与源数据库一致的最新数据集。基表(Base Table)
用于存储初始化加载的数据。增量表(Incremental Table)
用于存储在上一次增量更新后发生更改的数据,包括新增、更新和删除。综合视图(Reconcile View)
通过计算得出最新数据,涉及删除、更新和新增操作。为避免重复计算未变更的数据,建议在数据分区上进行增量更新。步骤三:Compact
将综合视图填充到报告表中。报告表(Reporting Table)
用于存储聚合、过滤等二次加工后的数据。步骤四:Purge
清空多余的表数据,将 base_table 更改为与 reporting_table 中的数据一致,清空 incremental_table。 总结:通过使用 Oozie 或自定义脚本,可以将这四大步骤整合成一个工作流,方便进行调度。这种方法有效地实现了 Hive 增量更新的过程,提高了数据处理的效率和准确性。