Hive安装与配置

Hive安装与配置

安装前准备

三台虚拟机master、slave1、slave2配置hadoop用户,之间免密登录,时钟同步,hadoop健康可用

Hadoop与Hive的整合

因为Hive需要把数据存储在HDFS上,并且通过MapReduce作为引擎处理数据;
因此需要在Hadoop中添加相关配置属性,以满足Hive在Hadoop上允许。
修改Hadoop中core-site.xml,并且Hadoop集群同步配置文件,重启生效。

		<property>
                <name>hadoop.proxyuser.root.hosts</name>
                <value>*</value>
        </property>
        <property>
                <name>hadoop.proxyuser.root.groups</name>
                <value>*</value>
        </property>

注:配置文件需要同步到所有节点中。

启动hadoop

使用hadoop用户启动hadoop脚本

start-all.sh

内嵌模式

特征

内嵌模式不需要安装数据库,不需要配置启动Metastore服务,解压安装包初始化即可测试体验Hive。
注:Hive3版本需要用户手动进行元数据初始化动作。
内嵌模式下,判断是否初始化成功的依据是执行命令之后输出信息和执行命令的当前路径下是否有文件产生。

安装过程

获取hive3.1.2安装包。
在这里插入图片描述
解压

tar -zxvf apache-hive-3.1.2-bin.tar.gz

移至安装目录

mv apache-hive-3.1.2-bin /usr/local/hive

解决hadoop、hive的版本差异

rm /usr/local/hive/lib/guava-19.0.jar
cp /usr/local/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /usr/local/hive/lib/

修改hive环境变量文件

cp /usr/local/hive/conf/hive-env.sh.template /usr/local/hive/conf/hive-env.sh
vi /usr/local/hive/conf/hive-env.sh
export HADOOP_HOME=/usr/local/hadoop
export HIVE_CONF_DIR=/usr/local/hive/conf
export HIVE_AUX_JARS_PATH=/usr/local/hive/lib

更改目录权限

chown -R hadoop:hadoop /usr/local/hive

初始化metadata
使用hadoop用户初始化

su hadoop -c 'mkdir ~/test'
su hadoop -c 'cd ~/test;/usr/local/hive/bin/schematool -dbType derby -initSchema'

在这里插入图片描述

可以看到,在新建目录下创建了两个新文件,这两个文件就是derby的数据文件和日志文件。
当我们不在这一目录下时,数据就无法访问了,当然我们也可以在不同目录下初始化不同的数据库,但是它们之间的数据不能共享,这是内嵌模式一大弊端,所以只能用于测试实验。

检查hive

su hadoop -c '/usr/local/hive/bin/hive'

在这里插入图片描述

本地模式

安装Mysql

检查并卸载mariadb(mysql)

rpm -qa|grep mariadb
rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps 

获取mysql组件压缩包
在这里插入图片描述
解压

tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar 

执行安装

yum -y install libaio
rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm mysql-community-libs-5.7.29-1.el7.x86_64.rpm mysql-community-client-5.7.29-1.el7.x86_64.rpm mysql-community-server-5.7.29-1.el7.x86_64.rpm

如果缺少依赖可以使用yum安装之。
初始化mysql

mysqld --initialize

更改所属组

chown mysql:mysql /var/lib/mysql -R

启动mysqld

systemctl start mysqld.service

查看生成的临时root密码

cat  /var/log/mysqld.log

设置密码

mysql> set global validate_password_policy=LOW;//设置密码强度低
mysql> set global validate_password_length=6;//设置密码长度6
mysql> alter user user() identified by "123456";
mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hadoop' WITH GRANT OPTION;//放开异地用户登录
mysql> FLUSH PRIVILEGES;//刷新权限

重启mysqld并设置自启动

systemctl stop mysqld
systemctl start mysqld
systemctl enable  mysqld

Hive安装配置

同上略
新增hive-site.xml配置mysql等相关信息

su hadoop -c 'vi /usr/local/hive/conf/hive-site.xml'
<configuration>
    <!-- 存储元数据mysql相关配置 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value> jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>

    <!-- 关闭元数据存储授权  -->
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>

    <!-- 关闭元数据存储版本的验证 -->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
</configuration>

添加mysql jdbc驱动到hive安装包lib下
在这里插入图片描述

cp mysql-connector-java-5.1.32.jar /usr/local/hive/lib/
chown hadoop:hadoop /usr/local/hive/lib/mysql-connector-java-5.1.32.jar 

初始化metadata

su hadoop -c '/usr/local/hive/bin/schematool -initSchema -dbType mysql -verbos'

检验

su hadoop -c '/usr/local/hive/bin/hive'

在这里插入图片描述
mysql中新增一个hive数据库,里面有74张表
在这里插入图片描述

远程模式

mysql安装

同上

hive安装同上

同上
更改hive-site.xml

<configuration>
    <!-- 存储元数据mysql相关配置 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value> jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>

    <!-- H2S运行绑定host -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>master</value>
    </property>

    <!-- 远程模式部署metastore 服务地址 -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://master:9083</value>
    </property>

    <!-- 关闭元数据存储授权  -->
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>

    <!-- 关闭元数据存储版本的验证 -->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
    <!-- 设置hdfs地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

删除之前初始化生成的hive数据库

drop database hive;

初始化metadata

su hadoop -c '/usr/local/hive/bin/schematool -initSchema -dbType mysql -verbos'

启动metastore
1、前台启动,窗口被进程占用,不推荐

su hadoop
/usr/local/hive/bin/hive --service metastore

2、后台启动,进程挂起,不占用窗口,推荐

su hadoop
nohup /usr/local/hive/bin/hive --service metastore 1>/dev/null 2>&1 &

3、前台启动开启debug日志,用于排错

su hadoop
/usr/local/hive/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console

当然我们这里需要使用hadoop启动,如果不想切换可以

su hadoop -c 'nohup /usr/local/hive/bin/hive --service metastore 1>/dev/null 2>&1 &'

检查
在这里插入图片描述

设置环境变量

编辑环境变量

vi /etc/profile
export HIVE_HOME=/usr/local/hive
export PATH=${HIVE_HOME}/bin:$PATH

使之生效

source /etc/profile

至此完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值