公司創建數倉,hive是必不可少的,hive是創建在hadoop基礎上的數據庫,前面已經搭建起了hadoop高可用,要學習hive,先從搭建開始,下面梳理一下hive搭建過程html
1.下載hive安裝包 ,下載地址:https://hive.apache.org/downloads.html java
找到本身hadoop對應的版本下載安裝,我這裏下載的是 apache-hive-2.3.6-bin.tar.gzmysql
2.安裝hive,將安裝包解壓到/opt/soft下,並創建軟連接sql
tar -zxvf apache-hive-2.3.6-bin.tar.gz -C /opt/soft/ cd /opt/soft mv apache-hive-2.3.6-bin hive-2.3.6 ln -s hive-2.3.6 hive
3.配置環境變量/etc/profile數據庫
vim /etc/profile
#hive export HIVE_HOME=/opt/soft/hive export PATH=$PATH:$HIVE_HOME/bin
保存後別忘記編譯一下apache
source /etc/profile
4.配置hive配置文件,hive元數據默認存儲到derby數據庫中,咱們這裏使用mysql來存儲,hive-site.xml配置信息較多建議下載到windows下修改,而後再傳上去vim
首先複製默認的配置文件模板,裏面已經包含hive全部的默認配置信息windows
cp hive-default.xml.template hive-site.xml
修改hive-site.xml配置文件,將元數據存放數據庫改成mysql,在hive-site.xml中找到下列屬性,修改成:centos
<property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.118.1:3306/hive2</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> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <description>Username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>111111</value> <description>password to use against metastore database</description> </property>
數據庫驅動爲mysql驅動com.mysql.jdbc.Driver,URL改成mysql的hive2(自定義)數據庫,用戶名密碼爲本身數據庫對應的用戶名密碼ide
修改hive配置的一些目錄,指定到本身選擇的目錄,搜索以 ${system 開頭的 value 替換爲本身的目錄,我這裏替換爲:/home/hdfs/hive下相關目錄
<property> <name>hive.exec.local.scratchdir</name> <value>/home/hdfs/hive</value> <description>Local scratch space for Hive jobs</description> </property> <property> <name>hive.downloaded.resources.dir</name> <value>/home/hdfs/hive/downloads</value> <description>Temporary local directory for added resources in the remote file system.</description> </property> <property> <name>hive.querylog.location</name> <value>/home/hdfs/hive/querylog</value> <description>Location of Hive run time structured log file</description> </property> <property> <name>hive.server2.logging.operation.log.location</name> <value>/home/hdfs/hive/server2_logs</value> <description>Top level directory where operation logs are stored if logging functionality is enabled</description> </property>
修改權限驗證爲false
<property> <name>hive.server2.enable.doAs</name> <value>false</value> <description> Setting this property to true will have HiveServer2 execute Hive operations as the user making the calls to it. </description> </property>
5.既然修改元數據存放在mysql庫裏,就須要將mysql驅動包放入到hive/lib中,注意mysql版本和驅動包一致
mv mysql-connector-java-8.0.18.jar /opt/soft/hive/lib/
6.在mysql數據庫中建立hive2庫
7.初始化hive的元數據(表結構)到mysql中。
cd /opt/soft/hive/bin schematool -dbType mysql -initSchema
出現以下信息,表明成功
也能夠查看mysql中hive2庫,全部表初始化完成
8.啓動hadoop,若是沒有安裝能夠參考:centos7搭建hadoop2.10高可用(HA)
start-all.sh
9.啓動hive
hive
查看目前只有default數據庫
建立數據庫:
create database myhivedb2;
查看建立的mysqhivedb2已經出來了
咱們查一下hdfs中是否建立了對應的目錄
hdfs dfs -ls -R /user/hive/
也能夠查看mysql中hive2庫的dbs表:
至此hive環境搭建完成
原文出處:https://www.cnblogs.com/qixing/p/12275185.html