這段時間在學習搭建集羣,搭建過程很辛酸哈哈。原來搭集羣一竅不通,用了三天,之後自己半天就可以搭完。現在和小夥伴合作,在阿里雲服務器搭建集羣,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
之後便看到正常運行: