在hive的分布式安装中,网上对于客户端和服务器的理解感觉并没有很清晰。接下来将简单说一下个人理解,如果有错,请各位大佬尽管指出,只是一种学习讨论罢了。
第一,在安装hive的各个节点(包括master和slave)上,对应的配置文件/conf/hive-site.xml中,都有下面这样一个配置:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.140.122:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
表示存储hive元数据的地址,可以是MySQL,当然也可以是其他的数据库。
第二,在网上的某些分布式安装中,slave节点其实通常安装的只是客户端,其/conf/hive-site.xml文件中比master节点多一个配置:
<property>
<name>hive.metastore.uris</name>
<value>thrift://192.168.140.122:9083</value>
</property>
表示slave节点访问master节点提供的metastore服务,因此slave节点想要通过hive命令(默认