记:
这是在加班时写的
Hive多节点环境搭建
在上一篇文章中, 搭建单节点的hive时,我在master装了单机的hive;node2中安装了mysql,所以是node2进行hive的元数据管理服务;所以这次决定不去破坏hive的单节点;搭建多hive多节点时,我把机器node1作为客户端,node2作为服务端。
(搭建过程可参考官网的多节点搭建配置https://cwiki.apache.org/confluence/display/Hive/AdminManual+Metastore+Administration#AdminManualMetastoreAdministration-RemoteMetastoreServer)
拷贝
直接在master这台机器中将hive拷贝到node1和node2中,利用scp命令即可。我在node1和node2中创建了名为app的文件,拷贝到此,之后就是修改环境变量,把hive加入环境变量,记得修改完后source一波。
修改配置文件
服务端(即node2):
1)修改hive-site.xml文件,为了跟单节点的做区分,所以修改一下hdfs的存放路径,和mysql存放的库,修改后,内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node2/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
</configuration>
客户端(即是node1):
1)修改hive-site.xml文件,内容与服务端的差别还是比较大的,内容所以如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value> thrift://node2:9083</value>
</property>
</configuration>
启动
在服务端(即node2)中输入hive --service metastore,启动服务,这是一个阻塞式的窗口,输入后会卡着不动的
在客户端输入hive,即可成功连入。