Bootstrap

Hive 安装和配置


环境

  在已经安装Hadoop、Java、MySQL的情况下进行Hive的安装

linux版本: CentOS8




1.下载并解压Hive安装包

首先需要下载Hive安装包文件:Hive官网.

解压:

sudo tar -zxvf ./apache-hive-3.1.2-bin.tar.gz -C /usr/local   # 解压到/usr/local中
sudo mv /usr/local/apache-hive-3.1.2-bin /usr/local/hive   # 将文件夹名改为hive
sudo chown -R hadoop:hadoop/usr/local/hive   # 修改文件权限

注意,修改权限为当前的hadoop:hadoop用户名和用户组,这里我的用户名是hadoop




2.配置环境变量

为了方便使用,我们把hive命令加入到环境变量中去,
请使用vim编辑器打开.bashrc文件,命令如下:

vim ~/.bashrc


在该文件最前面一行添加如下内容:

export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin

保存退出后,运行如下命令使配置立即生效:
source ~/.bashrc



3.修改/usr/local/hive/conf下的hive-site.xml

将hive-default.xml.template复制一份为hive-default.xml:

cd /usr/local/hive/conf
cp hive-default.xml.template hive-default.xml


使用vim编辑器新建一个配置文件hive-site.xml,命令如下:

cd /usr/local/hive/conf
vim hive-site.xml

在hive-site.xml中添加如下配置信息:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
  
  <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.ConnectionUserName</name>
    <value>hive</value>
    <description>username to use against metastore database</description>
  </property>
  
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>password to use against metastore database</description>
  </property>
  
</configuration>

然后,按键盘上的“ESC”键退出vim编辑状态,再输入:wq,保存并退出vim编辑器。




4.配置MySQL

这里我们采用MySQL数据库保存Hive的元数据,而不是采用Hive自带的derby来存储元数据。

mysql -u root -p #登陆shell界面

新建hive数据库:

create database hive;#这个hive数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据

配置mysql允许hive接入:

CREATE USER 'hive'@'localhost' identified by ‘123456’;
GRANT ALL ON *.* TO 'hive'@'localhost';

#将所有数据库的所有表的所有权限赋给hive用户,后面的123456是配置hive-site.xml中配置的连接密码

flush privileges; #刷新mysql系统权限关系表
exit  #退出mysql



5.启动hive

cd /usr/local/hadoop #进入Hadoop安装目录
./sbin/start-dfs.sh	
cd /usr/local/hive
./bin/hive	#启动Hive

启动进入Hive的交互式执行环境以后,会出现如下命令提示符:

hive>

可以在里面输入SQL语句,如果要退出Hive交互式执行环境,可以输入如下命令:

hive>exit

可能出现的错误

【错误1】

java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument

【原因】
com.google.common.base.Preconditions.checkArgument 这是因为hive内依赖的guava.jar和hadoop内的版本不一致造成的。
【解决方法】
1.查看hadoop安装目录下share/hadoop/common/lib内guava.jar版本
2.查看hive安装目录下lib内guava.jar的版本 如果两者不一致,删除版本低的,并拷贝高版本的 问题解决!

;