关于Hive本地模式和远程模式

折腾了几天晚上,终于配置好了hive连接远程mysql,特此感谢@tzhang_skin1@chengat1314@sunev_yu@leonarding的热心帮忙
下面对所遇到的问题和更正的理解做个总结:
hive的内嵌模式安装过程参照老虎的ppt就行,基本不会出错,我重点说说对本地模式和远程模式的理解。
(基本概念:metastore包括两部分,服务进程数据的存储。)
《hadoop权威指南 第二版》374页这张图:
 

1.上方描述的是内嵌模式,特点是:hive服务metastore服务运行在同一个进程中,derby服务也运行在该进程中。
该模式无需特殊配置,参见老虎ppt即可。

2.中间是本地模式,特点是:hive服务metastore服务运行在同一个进程中,mysql是单独的进程,可以在同一台机器上,也可以在远程机器上。
该模式只需将hive-site.xml中的ConnectionURL指向mysql,并配置好驱动名、数据库连接账号即可
 

3.下方是远程模式,特点是:hive服务和metastore在不同的进程内,可能是不同的机器
该模式需要将hive.metastore.local设置为false,并将hive.metastore.uris设置为metastore服务器URI,如有多个metastore服务器,URI之间用逗号分隔。metastore服务器URI的格式为thrift://hostort
<property>
<name>hive.metastore.uris</name>
<value>thrift://127.0.0.1:9083</value>
</property>


把这些理解后,大家就会明白,其实仅连接远程的mysql并不能称之为“远程模式”,是否远程指的是metastore和hive服务是否在同一进程内,换句话说,“远”指的是metastore和hive服务离得“远”。

你可能感兴趣的:(关于Hive本地模式和远程模式)