從這裏下載,這裏以apache-hive-2.3.5爲例。 https://hive.apache.org/downloads.htmlhtml
tar -xzvf hive-2.3.5.tar.gz export HIVE_HOME=/home/xxx/hive-2.3.5 export PATH=$HIVE_HOME/bin:$PATH
cd HIVE_HOME/conf cp hive-default.xml.template hive-default.xml cp hive-log4j2.properties.template hive-log4j2.properties
hive的日誌默認在/tmp/<user.name>/下,能夠經過修改配置文件來改變:java
<property> <name>hive.querylog.location</name> <value>other_location</value> </property>
在hdfs中建立以下目錄:shell
$ $HADOOP_HOME/bin/hadoop fs -mkdir /tmp $ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse $ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp $ $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
/user/hive/warehouse 是在$HIVE_HOME/conf/hive-default.xml 中指定的(hive.metastore.warehouse.dir), 如3.2所述,若是要修改該路徑,能夠在hive-site.xml中修改。數據庫
hive默認使用內嵌的derby數據庫來存儲元數據,這樣有個缺點:apache
緣由就是在hive-default.xml的默認配置下,metastore_db是生成在當前目錄:cookie
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:;databaseName=metastore_db;create=true</value> </property>
因此咱們能夠配置下內置的derby,讓其metastore_db只生成在一個目錄下: 在hive-site.xml中添加以下配置,來覆蓋默認配置:oop
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:/home/xxx/metastore_db;create=true</value> </property>
運行命令日誌
$HIVE_HOME/bin/schematool -dbType derby -initSchema
運行結果最後是 schemaTool completed,則表示成功,這個時候能夠看到在/home/xxx/下有metastore_db存在。code
若是出現相似Error: FUNCTION 'NUCLEUS_ASCII' already exists的錯誤,則說明在/home/xxx/下存在有metastore_db,則刪除掉metastore_db,從新運行以上命令便可。xml
配置好外置的derby後,咱們就能夠啓動hive了。運行show tables 驗證安裝。