Hive的安裝
前言
已經安裝hadoop,並且可以成功運行。
MySQL的安裝
下載
安裝mysql不僅僅是安裝mysql的客戶端,還要安裝mysql的服務端
通過yum庫來下載mysql
yum install -y mysql
好的,現在mysql下載完成了!
啓動服務
下載完mysql,執行
mysql -u root -p
報錯
應該是mysql的服務沒起來。執行service mysql start
報錯”mysql: unrecognized service”
來到
vi /etc/my.cnf
mysqld配置文件
有一個mysqld,原來mysqld纔是用來啓動mysql數據庫的命令
執行
service mysqld start
啓動mysql的守護線程 再來運行
mysql -u root -p
啓動完成
對MySQL進行配置
創建hive用戶,數據庫等
insert into mysql.user(Host,User,Password) values("localhost","hive",password("hive"));
create database hive;
grant all on hive.* to hive@'%' identified by 'hive'; // 使用戶可以遠程連接
grant all on hive.* to hive@'localhost' identified by 'hive'; // 使用戶可以本地連接
mysql -u hive -p hive
嘗試登錄一下 看看用戶名密碼是否設置成功
Hive安裝
下載
去官網下載apache-hive-2.3.0-bin.tar.gz
安裝
tar -zxvf apache-hive-2.3.0-bin.tar.gz
並移動到自己想要放置的地方
配置路徑
這一步可以不進行,但推薦還是配置一下環境變量 這樣就不用每次都跑到hive/bin下面去啓動hive了
vi /etc/profile
添加
export HIVE_HOME=/usr/local/hive
export PATH=$HIVE_HOME/bin:$PATH
source /etc/profile
下載mysql jdbc jar包,解壓並把mysql-connector-java-5.1.43目錄下的mysql-connector-java-5.1.6-bin.jar拷貝到hive 的lib下面
cp mysql-connector-java-5.1.6-bin.jar /usr/local/hive/lib
配置文件
在hive文件夾下
cd conf/
運行
cp hive-default.xml.template hive-site.xml
cp hive-env.sh.template hive-env.sh
cp hive-exec-log4j.properties.template hive-exec-log4j.properties
cp hive-log4j.properties.template hive-log4j.properties
把四個template文件都先處理一下
hive-env.sh
vi hive-env.sh
在此文件中加入
export JAVA_HOME=/opt/softwares/jdk1.8.0_131
export JRE_HOME=/opt/softwares/jdk1.8.0_131/jre
export HADOOP_HOME=/usr/local/hadoop
export HIVE_CONF_DIR=/usr/local/hive/conf
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export HIVE_AUX_JARS_PATH=$HIVE_HOME/bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HADOOP_USER_CLASSPATH_FIRST=true
hive-site.xml
vi hive-site.xml
當進入到這個文件是崩潰的應爲參數太多了,雖然很麻煩,但也只能一點一點慢慢來了
利用 /**來查找我們要修改的參數如 :
/**javax.jdo.option.ConnectionURL
找到之後,只需要把value的值改掉就好了
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive_metadata?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore.
To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
</description>
</property>
所連接的MySQL數據庫實例,localhost的話應該是僞分佈式來使用的,所以我這裏是master這樣子三個機器用master上的mysql
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBCmetastore</description>
</property>
連接的MySQL數據庫驅動
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username to use against metastoredatabase</description>
</property>
連接的MySQL數據庫用戶名
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastoredatabase</description>
</property>
連接的MySQL數據庫密碼
<property>
<name>hive.metastore.uris</name>
<value>thrift://master:9083</value>
<description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>
元數據mysql遠程模式配置。如果hive.metastore.uris屬性爲空,則默認爲本地模式,否則爲遠程模式
沒有用到hdfs,這一塊還是有點缺失的。(有需求的博友們,可以再多查一點資料,我的也只能是僅供參考了吧,畢竟新手還做不到完美配置)
啓動Hive
來到根目錄下,先啓動hadoop start-all.sh
然後hive
啓動hive輸入show tables;
驗證是否安裝成功
遇到的問題
hive啓動後運行show tables;出現報錯
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantidata.SessionHiveMetaStoreClient
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantidata.SessionHiveMetaStoreClient
這個問題的原因是HivedMetaStore服務沒有啓動需要手動啓動一下
hive --service metastore &
接着上面的問題HivedMetaStore服務啓動失敗 報錯
Caused by: org.datanucleus.store.rdbms.exceptions.MissingTableException: Required table missing : “DBS
” in Catalog “” Schema “”. DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable “datanucleus.schema.autoCreateTables”
需要到hive-site.xml中找到datanucleus.schema.autoCreateAll 把value改成true。再啓動HivedMetaStore服務,接着啓動hive。show tables; 成功運行。
參考
https://cwiki.apache.org/confluence/display/Hive/GettingStarted
http://blog.csdn.net/asia_kobe/article/details/50866382
http://blog.csdn.net/an342647823/article/details/46048403
因爲這一篇拖的太久了,圖片損失掉了很多,並且遇到的一些問題也沒有記全,還是希望對大家有幫助。若發現有不對的地方請聯繫博主,謝謝。