hive的使用依賴hadoop,因此先介紹hadoop。html
筆者是在Centos7.3上安裝的hadoop,使用的是hadoop-3.2的版本。直接按照hadoop-2.9文檔安裝便可。java
hadoop下載地址node
hadoop的環境變量必定要設置,否則hive啓動的時候會提示找不到hadoop。mysql
在/etc/profile中加入
export $HADOOP_HOME=hadoop的安裝路徑
export $PATH=$PATH:$HADOOP_HOME/binsql
注意:若是環境變量PATH設置錯誤,會致使一些命令失效。
centos 輸入什麼命令都失效數據庫
啓動hadoop的時候要求在不輸入密碼的狀況下可以ssh localhost成功。在hadoop的官方文檔有提到解決辦法。我本身遇到的問題是:localhost:permission denied(publickey,password)apache
解決辦法:
解決ssh localhost中root@localhost:要求輸入密碼問題(已經進行了無密碼設置登陸)
root用戶操做文件:Operation not permittedcentos
在使用bin/hdfs dfs -mkdir /tmp命令時出現Cannot create directory /usr. Name node is in safe mode問題,百度上不少答案都說用bin/hdfs dfsadmin -safemode leave關閉安全模式,可是我使用了這個命令,安全模式會自動再次打開,也有一種說法是磁盤滿了,可是個人還有一半的空間沒利用,最後沒有找到其餘辦法,重啓了Hadoop,就解決了。安全
我使用的是hive-3.1.1-bin版本,按照官方文檔安裝便可。ssh
export HIVE_HOME=hive安裝目錄
export PATH=$PATH:$HIVE_HOME/bin
須要在添加一個數據庫鏈接,若是在$HIVE_HOME/conf找不到hive-site.xml,能夠本身建立一個。我使用的是mysql數據庫。
在MySql數據庫的鏈接url中要添加useSSL=false
遇到的問題:Unexpected character '=' (code 61); expected a semi-colon after the reference for entity 'useUnicode
須要執行:schematool -dbType mysql -initSchema
數據庫是很早以前安裝的,用的時候鏈接不上了,關閉mysql以後,啓動不了。解決辦法
用service mysqld start啓動失敗會提示使用service mysqld status和journalct -xe查看錯誤信息,可是這兩個命令的結果都看不出錯誤信息。mysql的日誌在/var/log/mysqld.log文件中,可使用tail -n 1000 /var/log/mysqld.log查看錯誤信息。再錯誤信息排錯。
以上就是本身在安裝hadoop和hive的過程當中遇到的問題,作個記錄。