这段时间在学习搭建集群,搭建过程很辛酸哈哈。原来搭集群一窍不通,用了三天,之后自己半天就可以搭完。现在和小伙伴合作,在阿里云服务器搭建集群,1个小时内就可以完成,哈哈。
hive启动报错原因分析
搭建完集群后我关了虚拟机,然后下次启动hive的时候发现会报错,部分错误代码如下:
Caused by: java.sql.SQLException: Unable to open a test connection to the given database. JDBC url = jdbc:mysql://192.168.80.130:3306/hive?createDatabaseIfNotExist=true&useSSL=false, username = root. Terminating connection pool (set lazyInit to true if you expect to start your database after your app). Original Exception: ------
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:342)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2197)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2230)
出现这种错误,其它原因也会导致,但是我的原因是防火墙没有全部关闭。
开机后,需要将三台虚拟机的防火墙全部关闭,或者禁止开机自启。
修改防火墙之后hive便可以正常运行
关闭防火墙:systemctl stop firewalld
查看状态:systemctl status firewalld
禁止开机自启:systemctl disable firewalld
如下图所示:
之后可以选择重启下虚拟机,正常运行:
zookeeper启动报错及分析
zookeeper启动成功后,查看状态,代码提示如下:
[root@master bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
当然,其它原因也有可能,我这边的原因是三台虚拟机的zookeeper没有全部启动就进行查看状态,所以提示异常。
正确的操作方法:
三台机器的zookeeper目录下,全部开启服务后再查看状态
开启服务:bin/zkServer.sh start
查看状态:bin/zkServer.sh status
之后便看到正常运行: