hive 基础知识
Hive的优缺点:
优点:
o操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。
o避免了去写MapReduce,减少开发人员的学习成本。
oHive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。
oHive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。
oHive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
缺点:
oHive的HQL表达能力有限
迭代式算法无法表达
数据挖掘方面不擅长,由于MapReduce数据处理流程的限制,效率更高的算法却无法实现。
oHive的效率比较低
Hive自动生成的MapReduce作业,通常情况下不够智能化
Hive调优比较困难,粒度较粗
Hive架构原理
驱动组件:Driver
·解析模块(SQL Parser):通过解析SQL字符串生成抽象语法树(AST),此功能通常由第三方工具库实现(如ANTLR),随后会对生成的AST进行语义分析(如表是否存在、字段是否存在及语义有效性)。
·编译模块(Physical Plan Generation):将解析结果编译为逻辑执行计划。
·优化模块(Query Optimizer):对生成的逻辑执行计划进行优化以提升执行效率。
·执行模块(Execution):将逻辑执行计划转换为物理执行计划,在Hive场景下则采用MapReduce/Spark机制
JDBC访问路径
为了使用JDBC访问Hive,请在hive-site.xml文件中设置hiveserver2作为Hive服务器服务。
<property>
<name>hive.server2.thrift.bind.host</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
注意事项: 参见博客的总结
启动该服务(在没有配置指定hive.metastore.uris的情况下被启动后,HiveServer2将无法找到该服务)
bin/hive --service metastore
启动hiveserver2
bin/hive --service hiveserver2
启动beeline
bin/beeline
连接Hiveserver2
beeline> !connect jdbc:hive2://hadoop102:10000
或者一步到位
beeline -u “jdbc:hive2://hadoop102:10000” -n appuser
Hive参数配置方式
共有三种配置方案可用
其中两种为官方配置文件: hive-site.xml 和 hive-default.xml
后者仅在当前运行的Hive任务中起作用 bin/hive - hiveconf mapred.reduce.tasks = 10
前者则采用默认值设置方法 hive (default) > set mapred.reduce.tasks = 100
查看参数配置情况
hive (default)> set mapred.reduce.tasks=100;
Hive数据类型
【核心数据类型
