問題分析:hiveserver2可能是Hadoop集群進入安全模式,導致hiveserver2連接不上集群
臨時解決方案:離開安全模式即可
#查看安全模式情況 hdfs dfsadmin -safemode get #離開安全模式 hdfs dfsadmin -safemode leave #進入安全模式 hdfs dfsadmin -safemode enter
問題再分析:如何永久性的解決這個問題呢?我們不可能每次啟動集群都要手動離開安全模式!!所以我們要思考為什么Hadoop集群過去幾個小時了還處於安全模式狀態?
首先我們查看一下hdfs上的壞塊情況
hdfs fsck /
若發現存在壞塊,則將其刪除
hdfs fsck / -delete
再次啟動Hadoop集群即可(若還是一直處於安全模式狀態下建議先重啟虛擬機【非生產環境】,實在不行就只能重新格式化namenode)
如何重新格式化namenode?
第一步:先停止hadoop集群
第二步:刪除hdfs的數據存放目錄,該目錄可在core-site.xml配置文件中找到,所以刪除data目錄即可(若之前沒配置,則在默認路徑中)
<!-- 指定hadoop數據的存儲目錄 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-3.1.3/data</value> </property>
第三步:刪除日志文件目錄,該日志文件目錄可在yarn-site.xml配置文件中找到,所以刪除logs目錄即可
<!-- 設置日志聚集服務器地址 --> <property> <name>yarn.log.server.url</name> <value>http://hadoop102:19888/jobhistory/logs</value> </property>
第四步:重新格式化(所有主機都要刪除上述兩個文件夾)
hdfs namenode -format
第五步:再次啟動集群即可,發現啟動之后馬上退出了安全模式,此時再次啟動hive,發現沒有卡住,問題解決