安装和配置Hive,前提你已经成功安装和配置了Hadoop。
如果你的Hadoop是完全分布式安装,那么Hive就需要在每一个节点上安装,但是一般自己玩的话安装Hadoop伪分布式就足够了。Hive需要存储metastore,metadata即元数据,元数据包括用Hive创建的database,table等信息,元数据存储在关系型数据库中,我使用的是MariaDB,关于MariaDB的安装和部署在这里不再赘述,这里默认你已经安装配置好了数据库,无论是MySQL,Postgres,DB2等。metastore的作用是在客户端连接metastore服务,metastore再去连接关系型数据库获取元数据,有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道关系型数据库的存在,只需要连接metastore服务即可。
三种配置方式的区别:(内嵌,本地元存储,远程源存储)
- 内嵌模式使用的是内嵌的Derby数据库来存储元数据,也不需要额外启动metastore,但是一次只能一个客户端连接,适用于实验环境
- 本地元存储和远程元存储都采用外部数据库来存储元数据,支持MySQL,MariaDB,Postgers,Oracle等,我使用的是MariaDB
- 本地元数据存储和远程元数据存储的区别是,本地元数据存储不需要单独启动metastore服务,用的是跟hive在同一个进程里的metastore服务,远程元数据存储需要使用命令hive --service hiveserver2来启动
配置步骤如下(我默认在root权限下进行操作,会省去很多麻烦):
我安装的是2.20版本,点击下载
1、解压缩
#cd /usr/local
#tar -zxf apache-hive-....tar.gz
#mv apache-hive-... hive
2、设置环境变量
vim /etc/profile
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:/usr/local/Hadoop/lib/*:.
export CLASSPATH=$CLASSPATH:/usr/local/hive/lib/*:.
source /etc/profile
3、jdbc的jar包
将对应自己数据库的jdbc的jar包拷贝到/usr/local/hive/lib目录下,例如我的是mariadb-java-client-2.2.3.jar
4、配置配置文件
#cd /usr/local/hive/conf
#cp hive-env.sh.template hive-env.sh
#vim hive-env.sh
export HADOOP_HOME=/usr/local/hadoop
#vim hive-site.xml
键入一下内容,其中数据库配置根据自己实际情况
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.mariadb.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>111111</value>
</property>
</configuration>
5、在HDFS中配置hive的存取目录
# $HADOOP_HOME/bin/hadoop fs -mkdir /tmp
# $HADOOP_HOME/bin/hadoop fs -mkdir /user
# $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive
# $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
6、测试hive命令
#hive
如下图所示:
7、开启远程连接服务
#hive --service hiveserver2 &
#jps
如下图所示,metastore服务即开启,我们也可以使用客户端创建一个hive连接,类似于各种关系型数据库的客户端管理工具