详解-Centos7搭建hive集群

这是我虚拟机的拓扑结构:

在这里插入图片描述
这里我搭建的版本是 hadoop2.7.1 hive2.3.6 这两个可以兼容
首先,确保 node1 上的 mysql安装成功,且可以远程登录,并设置好密码

用xftp将下载的hive上传并解压

下载地址:https://mirror.bit.edu.cn/apache/hive/

配置环境变量:vi /etc/profile

详解-Centos7搭建hive集群_第1张图片保存退出后:source /etc/profile

到hive的conf目录中创建 hive-site.xml文件:

vi hive-site.xml

"1.0" encoding="UTF-8" standalone="no"?>
-stylesheet type="text/xsl" href="configuration.xsl"?>


	 
		hive.metastore.warehouse.dir</name> 
		/user/hive/warehouse</value>
	</property>
	
		hive.metastore.local</name>
		false</value>
	</property>

	
		 hive.metastore.uris</name> 
		thrift://node3:9083</value>
	</property>

</configuration>

将 node2 上的 hive236目录上传到 node3, node4上:

scp -r hive236/ root@node3:/usr/local/
scp -r hive236/ root@node4:/usr/local/

在node4上先配置环境变量

我们将node4与node2 都配置成hive客户端,所有node4上不需要做任何修改,只需配置环境变量

在 node3 上创建 metastore serve

首先配置环境变量
然后在hive的conf配置hive-site.xml

vi hive-site.xml
"1.0" encoding="UTF-8" standalone="no"?>
-stylesheet type="text/xsl" href="configuration.xsl"?>

	<!--  在hdfs上文件的位置  -->
	 
		hive.metastore.warehouse.dir</name> 
		/user/hive/warehouse</value>
	</property>
	<!-- 元数据的位置 -->
	
		javax.jdo.option.ConnectionURL</name> 
		jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true</value>
	</property>
	 
		javax.jdo.option.ConnectionDriverName</name> 
		com.mysql.cj.jdbc.Driver</value>
	</property>
	 
		javax.jdo.option.ConnectionUserName</name> 
		root</value>
	</property>
	 
		javax.jdo.option.ConnectionPassword</name> 
		a</value>
	</property> 
    
         hive.metastore.schema.verification</name>
         false</value>
    </property>
    
         datanucleus.schema.autoCreateAll</name>
         true</value>
    </property>


</configuration>

在node3执行以下命令初始化库: schematool -dbType mysql -initSchema
详解-Centos7搭建hive集群_第2张图片

在node2或node4客户端测试

hive

成功图片之前测试用hive命令区链接一直卡在Logging initialized using configuration in jar:file:/usr/local/apache-hive-2.3.4/lib/hive-common-2.3
详解-Centos7搭建hive集群_第3张图片在网上查了很多资料,说实话没啥用,后来检查了是我的node1的namenode掉了,而node2的namenode还是standby状态(明明配置了高可用,我也不知道咋回事),把node1的节点启动,有一个namenode为active状态即可

测试一些hive命令:

create database ryan; 
use ryan;
create table produce_hive( id int, name varchar(20) );

可以在hdfs上看创建了一个目录
详解-Centos7搭建hive集群_第4张图片在mysql上也有元数据
详解-Centos7搭建hive集群_第5张图片

insert into produce_hive values(1, 'apple');
select * from produce_hive;

详解-Centos7搭建hive集群_第6张图片

最后在node3上将 metastore server配置成自启动服务

cd /etc/rc.d/init.d/
vi  metastoreServer
#!/bin/sh
#chkconfig:  345 90 90
#description: hive metastore
#processname: hive_metastore_server

source /etc/profile

# 启动服务的时间
DATE_STR=`/bin/date  "+%Y%m%d%H%M%S"`

# 日志文件名称(包含路径)
HIVE_METASTORE_LOG=${
     HIVE_HOME}/logs/hiveserver2-${
     DATE_STR}.log

/usr/bin/nohup ${
     HIVE_HOME}/bin/hive --service metastore >>${
     HIVE_METASTORE_LOG} 2>&1 &

添加执行权限

chmod +x metastoreServer 

加入 chkconfig

chkconfig --add metastoreServer
chkconfig --list 

详解-Centos7搭建hive集群_第7张图片
启动服务:service metastoreServer start 即可成功启动
详解-Centos7搭建hive集群_第8张图片

你可能感兴趣的:(hive,hive)