微信公眾號(hào): 大數(shù)據(jù)開發(fā)運(yùn)維架構(gòu)
關(guān)注可了解更多大數(shù)據(jù)相關(guān)的資訊。問題或建議,請(qǐng)公眾號(hào)留言;
如果您覺得“大數(shù)據(jù)開發(fā)運(yùn)維架構(gòu)”對(duì)你有幫助,歡迎轉(zhuǎn)發(fā)朋友圈
一、概述
這里簡(jiǎn)單說明一下,Hive是建立在Hadoop上的,通過HiveQL來實(shí)現(xiàn)對(duì)Hadoop下的數(shù)據(jù)管理。Hive屬于數(shù)據(jù)倉庫的范疇,適合用來對(duì)一段時(shí)間內(nèi)的數(shù)據(jù)進(jìn)行分析查詢,例如,用來計(jì)算趨勢(shì)或者網(wǎng)站的日志。Hive不應(yīng)該用來進(jìn)行實(shí)時(shí)的查詢。因?yàn)樗枰荛L(zhǎng)時(shí)間才可以返回結(jié)果。
軟件版本信息:
Hadoop3.1.1
JDK1.8
HIVE3.1.0
二、安裝步驟
1.可從官網(wǎng)下載Hive各個(gè)版本的安裝包和源碼包,我這里下載的是Apache-hive-3.1.0-bin.tar.gz,下載地址: http://archive.apache.org/dist/hive/
2.把a(bǔ)pache-hive-1.2.1-bin.tar.gz上傳到linux的/data/目錄下,并進(jìn)行解壓,命令如下:
[root@worker2 data]# tar -zxvf apache-hive-3.1.0-bin.tar.gz
[root@worker2 data]# mv apache-hive-3.1.0-bin hive-3.1.0
3.修改conf目錄下配置文件
1).hive-env.sh文件
[root@worker2 conf]# cp hive-env.sh.template hive-env.sh
[root@worker2 conf]# vi hive-env.sh
在hive-env.sh文件添加如下內(nèi)容:
#JDK
export JAVA_HOME= /opt/jdk1.8.0_112
#指定hadoop目錄
export HADOOP_HOME=/usr/hdp/3.1.4.0-315/hadoop
#指定conf配置路徑
export HIVE_CONF_DIR=/data/hive-3.1.0/conf
#指定依賴的lib
export HIVE_AUX_JARS_PATH=/data/hive-3.1.0/lib
2).hive 的日志默認(rèn)在/tmp/${user}/hive.log目錄下(user用戶名下),修改hive的log存放日志到/data/hive-3.1.0/logs,執(zhí)行命令:
mv hive-log4j2.properties.template hive-log4j2.properties
修改hive-log4j2.properties如下內(nèi)容:
property.hive.log.dir=/data/hive-3.1.0/logs
3).hive-site.xml文件,主要是配置hive元數(shù)據(jù)庫連接信息、數(shù)據(jù)在hdfs存儲(chǔ)目錄信息等;
[root@worker2 conf]# mv hive-default.xml.template hive-site.xml
[root@worker2 conf]# vi hive-site.xml
在hive-site.xml文件添加如下內(nèi)容:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:MySQL://master.hadoop.ljs:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456a?</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.server2.webui.host</name>
<value>192.168.0.103</value>
</property>
<property>
<name>hive.server2.webui.port</name>
<value>10002</value>
</property>
</configuration>
4.配置完成后,初始化mysql元數(shù)據(jù)庫,初始化之前,需要把對(duì)應(yīng)版本的mysql驅(qū)動(dòng)包放到hive/lib目錄下:
[root@worker2 lib]# pwd
/data/hive-3.1.0/lib
[root@worker2 lib]# ll *mysql-connector*
-rwxrwxrwx 1 root root 1004838 3月 21 22:13 mysql-connector-java-5.1.46.jar
使用schemaTool初始化mysql數(shù)據(jù)庫
schematool -dbType mysql -initSchema
5.配置環(huán)境變量,在/etc/profile中添加如下內(nèi)容:
export HADOOP_HOME=/usr/hdp/3.1.4.0-315/hadoop
export HIVE_HOME=/data/hive-3.1.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bi
使配置生效:
source /etc/profile
6.啟動(dòng)Hive
#run metastore
hive --service metastore &
#run hiveserver2
hive --service hiveserver2 --hiveconf hive.root.logger=INFO,console &
報(bào)錯(cuò)信息處理:
1.報(bào)錯(cuò)信息:
這里hive的guava包與hadoop中的guava版本不一致,直接從hadoop/lib下拷貝對(duì)應(yīng)的guava包,覆蓋掉hive/lib下的即可。
[root@worker2 lib]# ll *guava*
-rw-r--r-- 1 root root 2308517 7月 10 2018 guava-19.0.jar
-rw-r--r-- 1 root root 971309 7月 10 2018 jersey-guava-2.25.1.jar
[root@worker2 lib]# cp /usrp/3.1.4.0-315/hadoop/lib/guava-28.0-jre.jar ./
[root@worker2 lib]# rm -rf guava-19.0.jar
[root@worker2 lib]# ll *guava*
-rw-r--r-- 1 root root 2746681 3月 21 22:17 guava-28.0-jre.jar
-rw-r--r-- 1 root root 971309 7月 10 2018 jersey-guava-2.25.1.jar
2.報(bào)錯(cuò)信息:
這里需要在hdfs的配置文件core-site.xml中加上代理用戶,添加配置如下:
<property>
<name>hadoop.proxyuser.hive.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hive.hosts</name>
<value>*</value>
</property>
如果覺得我的文章能幫到您,請(qǐng)關(guān)注微信公眾號(hào)“大數(shù)據(jù)開發(fā)運(yùn)維架構(gòu)”,并轉(zhuǎn)發(fā)朋友圈,謝謝支持!!!