Hive安装部署

今天在学习Hive的资料,需要搭建Hive环境,做个简单的记录  也可以供大家参考!


注:

       根据自己的需要下载相应版本,以及存放目录。文档中的版本及目录都是本人环境,大家请根据自己的情况相应调整!


前提:

       Hive是依赖于hadoop系统的,因此在运行Hive之前需要保证已经搭建好hadoop环境。


1、下载安装包
      下载hive http://mirrors.hust.edu.cn/apache/   

       我下载的是apache-hive-2.1.1-bin.tar.gz  ,放到该目录下 /home/XXX / 


2、安装hive

      1,解压安装包
            命令:cd  /home/XXX
            命令:tar -zxvf apache-hive-2.1.1-bin.tar.gz

       2、配置环境变量

            1)命令:sudo vi /etc/profile

            2)增加hive环境变量配置内容:

            HIVE_HOME=/home/XXX/apache-hive-2.1.1-bin
            PATH=$PATH:$HIVE_HOME/bin


            export PATH

             

            3)使环境变量生效

             命令:source /etc/profile

       3、修改配置文件

             支持三种方式,请选择适合自己的:

      • 进入到HIVE_HOME/conf目录下
      • 配置hive-env.sh:
        • 复制出hive-env.sh:cp hive-env.sh.template hive-env.sh
        • 编辑hive-env.sh:vi hive-env.sh
        • 设置Hadoop环境变量(放开HADOOP_HOME注释,并设置当前Hadoop的目录):HADOOP_HOME=/home/XXX/hadoop-2.8.0
        • 设置Hive配置文件目录: export HIVE_CONF_DIR=/home/XXX/apache-hive-2.1.1-bin/conf
        • 保存并退出编辑:wq

             1)内嵌模式

                  内嵌模式是指元数据是内嵌在Derby数据库中的,只能允许一个会话连接,数据会存放到HDFS上。

        • 进入到HIVE_HOME/conf目录下
        • 配置hive-env.sh:
          • 复制出hive-env.sh:cp hive-env.sh.template hive-env.sh
          • 编辑hive-env.sh:vi hive-env.sh
          • 设置Hadoop环境变量(放开HADOOP_HOME注释,并设置当前Hadoop的目录):HADOOP_HOME=/home/XXX/hadoop-2.8.0
          • 设置Hive配置文件目录: export HIVE_CONF_DIR=/home/XXX/apache-hive-2.1.1-bin/conf
          • 保存并退出编辑:wq
        • 配置hive-site.xml(可以不作修改,直接默认;如需要修改,请查阅“本地模式”中配置说明)
        • 初始化元数据 
          schematool -dbType derby -initSchema


             2)本地模式

                  本地模式和内嵌模式的区别是不再使用内嵌的Derby作为元数据的存储介质,而是使用其他数据库(比如mysql、oracle;此处以mysql数据库举例)来存储元数据。
                  这是一个多用户的模式,运行多个用户客户端连接到同一个数据库。

                 所以就有一个前提,mysql数据库已经正确安装,且每一个用户必须要有对mysql的访问权利,即每一个客户端都需要知道或拥有mysql的用户名和密码。

      • 创建mysql数据库用户(也可以直接使用已有用户
        • insert into mysql.user(Host,User,Password) values("localhost","hive",password("hive"));
      • 创建数据库hive
        • create database hive;
      • 授权hive用户的权限
        • grant all on hive.* to hive@'%'  identified by 'hive';
        • grant all on hive.* to hive@'localhost'  identified by 'hive';
        • flush privileges; 
      • 退出数据库
        • exit;
      • 进入到HIVE_HOME/conf目录下
        • 配置hive-env.sh:
          • 复制出hive-env.sh:cp hive-env.sh.template hive-env.sh
          • 编辑hive-env.sh:vi hive-env.sh
          • 设置Hadoop环境变量(放开HADOOP_HOME注释,并设置当前Hadoop的目录):HADOOP_HOME=/home/XXX/hadoop-2.8.0
          • 设置Hive配置文件目录: export HIVE_CONF_DIR=/home/XXX/apache-hive-2.1.1-bin/conf
          • 保存并退出编辑:wq
        • 创建hive-site.xml文件
          • hive-default.xml.template拷贝一份,命名为hive-site.xml:cp hive-default.xml.template hive-site.xml
        • 配置hive-site.xml
          • vi hive-env.sh
          • 修改javax.jdo.option.ConnectionURL属性
            <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>hive</value>
                <description>password to use against metastore database</description>
            </property>
            

          • 修改javax.jdo.option.ConnectionDriverName属性
            <property>        <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
                <description>Driver class name for a JDBC metastore</description>
            </property>
          • 修改javax.jdo.option.ConnectionUserName属性
            <property>    <name>javax.jdo.option.ConnectionUserName</name>
                <value>hive</value>
                <description>Username to use against metastore database</description>
            </property>

          • 修改javax.jdo.option.ConnectionPassword属性
          • <property>    <name>javax.jdo.option.ConnectionPassword</name>
                <value>hive</value>
                <description>password to use against metastore database</description>
            </property>



          • 将所有值包含“${system:java.io.tmpdir}” 的属性值设定为自己的实际路径
          • 保存并退出编辑:wq
        • 拷贝mysql-connector-java-5.1.6-bin.jar(使用自己的mysql相应版本) 到hive 的lib下面
        • 将hive下的jline-2.12.jar替换掉hadoop自带的包,不然会报错。
          cp /home/XXX/apache-hive-2.1.1-bin/lib/jline-2.12.jar /home/xxx/hadoop-2.8.0/share/hadoop/yarn/lib/
        • 初始化元数据
          schematool -dbType mysql -initSchema

             3)远程模式安装,即server模式

                  远程模式需要使用hive安装目录下提供的beeline+hiveserver2配合使用才可以。

                  远程模式的原理就是将metadata作为一个单独的服务进行启动,客户端通过beeline来连接,连接之前无需知道数据库的密码。

      • 启动hiveserver2 
        ./hiveserver2 start

      •  在新的命令行窗口,执行beeline命令
        beeline

       4、测试 :

    • 执行要hive命令
    • 显示数据库            


到此hive安装已经初步完成,文章中未提及的详细部分,大家还请根据自己需要去查找相关资料!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值