hive集群部署
我们会发现一个奇怪的现象就是
hbase是一条命令可以启动整个集群的,但是hive却不是,这是怎么回事呢?
因为hive只是一个SQL客户端而已。
数据并不在hive中,hive只是帮忙从hdfs->我们看到的数据做了一个SQL映射而已。
情况 |
方案 | 部署 |
想在集群的datanode中通过hive查询数据 | 需要在namenode和datanode中分别部署和启动hive |
namenode中启动metastore datanode/namenode中启动hive客户端 |
只在集群的namenode中通过hive查询数据 | 只需要在namenode中部署和启动hive即可 | 只在namenode中启动metastore和hive |
hive只是类似于mysql中的innodb的一种数据引擎,可以理解为是类似于"集群API"之类的东西。
hive的客户端如果部署datanode需要注意,直接使用namenode的配置即可,但是配置中的localhost都要修改成namenode在局域网中的域名,并且要确保namenode有权限访问datanode的数据库。