基于Hadoop2.x安装Hive 2.x.x

本文介绍如何在Hadoop集群上安装和配置Hive,包括下载与安装Hive、MySQL,设置环境变量,配置Hive参数及启动Hive等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.前言

    说明:安装hive前提是要先安装hadoop集群,并且hive只需要再hadoop的namenode节点集群里安装即可(需要再所有namenode上安装),可以不在datanode节点的机器上安装。另外还需要说明的是,虽然修改配置文件并不需要你已经把hadoop跑起来,但是本文中用到了hadoop命令,在执行这些命令前你必须确保hadoop是在正常跑着的,而且启动hive的前提也是需要hadoop在正常跑着,所以建议你先将hadoop跑起来在按照本文操作。有关如何安装和启动hadoop集群,请参考: 

Centos云服务器搭建Hadoop2.7完全分布式集群 

2.下载Hive 2.x.x

    本文使用的是基于Hive 2.3.3版本

(1)下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.3/apache-hive-2.3.3-bin.tar.gz

(2)下载命令:

    wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.3/apache-hive-2.3.3-bin.tar.gz

 (3)解压到指定安装目录:

tar -zxvf apache-hive-2.3.3-bin.tar.gz  
mv apache-hive-2.3.0-bin /usr/local/hive-2.3.3  
cd /usr/local/hive -2.3.3 

(4)修改环境变量:

vi /etc/profile  
插入  
export HIVE_HOME=/usr/local/hive-2.3.3 
export PATH=$HIVE_HOME/bin:$PATH 

使环境变量立即生效

source /etc/profile 

3.安装MYSQL

    Hive的元数据和数据是分开存放的,数据存在在HDFS上,而元数据默认是存储在Hive自带的Derby数据库,但是由于Derby只支持同时一个用户访问Hive,所以不推荐使用。推荐使用Mysql作为Hive的元数据库。

(1)安装MYSQL客户端

yum install mysql

(2)安装MYSQL服务器端

yum install mysql-server
yum install mysql-devel

注意:有时候会提示找不到yum源。此时参考这篇博文即可。

 (3)相关mysql操作

.查看状态:	service mysqld status  
.启动:		service mysqld start
.终止:		service mysqld stop
.初始化mysql环境:mysql -u root
.查看mysql用户: select user,host,password from mysql.user;
.修改root密码(我也修改为了123456):
set password for root@localhost=password('123456');
set password for root@127.0.0.1=password('123456');
.退出后登录root用户输入密码验证:mysql -u root -p

(4)登录mysql数据库,并创建metastore数据库,关闭新主库的只读属性,为其授权(用于存储hive的初始化配置)

    在mysql的命令行交互页面分别输入下面的语句:

create database metastore; 
set global read_only=0;  
grant all on metastore.* to hive@'%'  identified by 'hive';  
grant all on metastore.* to hive@'localhost'  identified by 'hive'; 
flush privileges;  

(5)下载jdbc connector

    点击链接Connector/J 5.1.xx下载至本地主机,解压,把解压目录下的mysql-connector-java-5.1.xx-bin.jar包,拷贝到/usr/local/hive-2.3.3/lib目录下

/usr/local/hive-2.3.3/lib

4.配置Hive

(1)进入配置文件的文件夹

cd /usr/local/hive-2.3.3/conf 

(2)复制初始化文件并重命名

cp hive-env.sh.template hive-env.sh  
cp hive-default.xml.template hive-site.xml  
cp hive-log4j2.properties.template hive-log4j2.properties  
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties  

(3)修改hive-env.sh文件 ,在最下面添加如下的配置

export JAVA_HOME=/usr/local/java/jdk1.8.0_141    ##Java路径,根据自己jdk安装的路径配置  
export HADOOP_HOME=/usr/local/hadoop   ##Hadoop安装路径  
export HIVE_HOME=/usr/local/hive-2.3.3    ##Hive安装路径  
export HIVE_CONF_DIR=/usr/local/hive/conf    ##Hive配置文件路径  

(4)在hdfs中创建一下目录,并授权,用于存储文件

hdfs dfs -mkdir -p /user/hive/warehouse  
hdfs dfs -mkdir -p /user/hive/tmp  
hdfs dfs -mkdir -p /user/hive/log  
hdfs dfs -chmod -R 777 /user/hive/warehouse  
hdfs dfs -chmod -R 777 /user/hive/tmp  
hdfs dfs -chmod -R 777 /user/hive/log  

注意:直接运行上述命令即可,如果需要继续了解有关hdfs的命令使用情况,请移步此博文

(5)修改hive-site.xml

  1. 在合适的位置添加如下的配置,对应于上面用hdfs创建的文件夹
    <property>
        <name>hive.exec.scratchdir</name>
        <value>/user/hive/tmp</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    <property>
        <name>hive.querylog.location</name>
        <value>/user/hive/log</value>
    </property>
  2. 修改hive-site.xml中的临时目录
    新建一个hive的临时文件夹tmp,我这里的位置是在/home/hadoop/hive-2.3.3/tmp(在哪里都无所谓,记住这地址即可)
  3. 将hive-site.xml文件中的${system:java.io.tmpdir}替换为hive的临时目录(就是第一步里的/home/hadoop/hive-2.3.3/tmp)
    注意:里面有好几处这样的地方,建议把hive-site.xml下载到本地用本地编辑器全部一次性替换
  4.  将配置文件hive-site.xml中${system:user.name}都替换为{user.name}
    注意:里面有好几处这样的地方,建议把hive-site.xml下载到本地用本地编辑器全部一次性替换
  5. 搜索定位到 <name>javax.jdo.option.ConnectionDriverName</name> ,将该name对应的value修改为MySQL驱动类路径:
    <property
      <name>javax.jdo.option.ConnectionDriverName</name
      <value>com.mysql.jdbc.Driver</value>
    </property>  
  6. 搜索定位到 <name> javax.jdo.option.ConnectionURL</name> ,将该name对应的value修改为MySQL的地址:
    <property
      <name>javax.jdo.option.ConnectionDriverName</name
      <value>com.mysql.jdbc.Driver</value>
    </property>  
  7. 搜索定位到 <name> javax.jdo.option.ConnectionUserName</name> ,将该name对应的value修改为MySQL数据库登录名:
    <property
      <name>javax.jdo.option.ConnectionDriverName</name
      <value>com.mysql.jdbc.Driver</value>
    </property>  
  8. 搜索定位到 <name>javax.jdo.option.ConnectionPassword</name> ,将该name对应的value修改为MySQL数据库的登录密码:
    <property
      <name>javax.jdo.option.ConnectionDriverName</name
      <value>com.mysql.jdbc.Driver</value>
    </property>       
  9. 
    

5.启动Hive

cd $HIVE_HOME/bin #进入Hive的bin目录
./hive #执行hive启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值