linux安装与搭建Hive

1、Hive的安装

节点\功能metastorehiveserver2client
node01**
node02*
node03*

PS: 安装前 请确认当前集群已经安装了Mysql数据库、ZooKeeper和Hadoop的Ha+Yarn

如果未安装:
链接: MySQL安装 :. https://blog.csdn.net/weixin_43660536/article/details/118033294
链接: ZooKeeper安装:. https://blog.csdn.net/weixin_43660536/article/details/118369963
链接: hadoop ha安装:. https://blog.csdn.net/weixin_43660536/article/details/118358298
链接: yarn搭建: . https://blog.csdn.net/weixin_43660536/article/details/118540991

1、下载上传解压

  • 下载地址

    • http://archive.apache.org/dist/hive/

    • [root@node01 ~]# tar -zxvf apache-hive-3.1.2-bin.tar.gz 
      [root@node01 ~]# mv apache-hive-3.1.2-bin /opt/yjx/
      [root@node01 ~]# cd /opt/yjx/apache-hive-3.1.2-bin/conf
      
  • 准备驱动包

    • hive-jdbc-2.1.1-cdh6.2.0-standalone.jar
    • mysql-connector-java-5.1.32-bin.jar

2、修改配置文件

  • 配置hive-env.sh

    • [root@node01 conf]# cp hive-env.sh.template hive-env.sh
      
    • [root@node01 conf]# vim hive-env.sh
      
    • export HADOOP_HOME=/opt/yjx/hadoop-3.1.2/
      export HIVE_CONF_DIR=/opt/yjx/apache-hive-3.1.2-bin/conf 
      export HIVE_AUX_JARS_PATH=/opt/yjx/apache-hive-3.1.2-bin/lib
      
  • 创建hive-site.xml

    • [root@node01 conf]# cp hive-default.xml.template hive-site.xml
      
    • [root@node01 conf]# vim hive-site.xml
      
    • 删除多余的配置文件 6897dd

    • <!-- 数据库相关配置 -->
      <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://node01:3306/hive?createDatabaseIfNotExist=true</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>datanucleus.schema.autoCreateAll</name>
          <value>true</value>
      </property>
      <property>
          <name>hive.metastore.schema.verification</name>
          <value>false</value>
      </property>
      <!-- 美化打印数据 -->
      <property>
          <name>hive.cli.print.header</name>
          <value>true</value>
      </property>
      <property>
          <name>hive.cli.print.current.db</name>
          <value>true</value>
      </property>
      
      <!-- hive server -->
      <property>
          <name>hive.server2.webui.host</name>
          <value>node01</value>
      </property>
      <property>
          <name>hive.server2.webui.port</name>
          <value>10002</value>
      </property>
      
      <!-- 数据存储位置 -->
      <property>
          <name>hive.metastore.warehouse.dir</name>
          <value>/hive/warehouse</value>
      </property>
      
      
  • 修改core-site.xml

    • [root@node01 conf]# vim /opt/yjx/hadoop-3.1.2/etc/hadoop/core-site.xml
      
    • 后面添加配置信息

    • <!--该参数表示可以通过httpfs接口hdfs的ip地址限制-->
      <property>
          <name>hadoop.proxyuser.root.hosts</name>
          <value>*</value>
      </property>
      <!--通过httpfs接口访问的用户获得的群组身份-->
      <property>
          <name>hadoop.proxyuser.root.groups</name>
          <value>*</value>
      </property>
      

3、配置日志组件

  • 创建文件目录
[root@node01  ~]# mkdir -p /opt/yjx/apache-hive-3.1.2-bin/logs
[root@node01 conf]# cp hive-log4j2.properties.template  hive-log4j2.properties
[root@node01 conf]# vim hive-log4j2.properties
  • 修改配置

  • property.hive.log.dir = /opt/yjx/apache-hive-3.1.2-bin/logs
    

4、添加驱动包

  • Mysql驱动添加到hive的lib目录下

  • [root@node01 ~]# cp ~/mysql-connector-java-5.1.32-bin.jar /opt/yjx/apache-hive-3.1.2-bin/lib/
    
  • Guava包

    • 首先要删除hadoop中的guava-*.jar包

    • [root@node01 ~]# rm -rf /opt/yjx/hadoop-3.1.2/share/hadoop/common/lib/guava-*.jar
      [root@node01 ~]# rm -rf /opt/yjx/hadoop-3.1.2/share/hadoop/hdfs/lib/guava-*.jar
      
    • 将Hive的Guava拷贝给Hive

    • [root@node01 ~]# cp /opt/yjx/apache-hive-3.1.2-bin/lib/guava-*.jar /opt/yjx/hadoop-3.1.2/share/hadoop/common/lib/
      [root@node01 ~]# cp /opt/yjx/apache-hive-3.1.2-bin/lib/guava-*.jar /opt/yjx/hadoop-3.1.2/share/hadoop/hdfs/lib/
      

5、配置环境变量

  • vim /etc/profile
    
    • export HIVE_HOME=/opt/yjx/apache-hive-3.1.2-bin
      export PATH=$HIVE_HOME/bin:$PATH
      

6、拷贝到其他节点

  • hive文件夹

    • [root@node02 ~]# scp -r root@node01:/opt/yjx/apache-hive-3.1.2-bin /opt/yjx/
      [root@node03 ~]# scp -r root@node01:/opt/yjx/apache-hive-3.1.2-bin /opt/yjx/
      
  • 环境变量

    • [root@node01 ~]# scp /etc/profile root@node02:/etc/profile
      [root@node01 ~]# scp /etc/profile root@node03:/etc/profile
      
    • 【node123】source /etc/profile
      
  • core-stie.xml

    • [root@node01 ~]# scp /opt/yjx/hadoop-3.1.2/etc/hadoop/core-site.xml root@node02:/opt/yjx/hadoop-3.1.2/etc/hadoop/
      [root@node01 ~]# scp /opt/yjx/hadoop-3.1.2/etc/hadoop/core-site.xml root@node03:/opt/yjx/hadoop-3.1.2/etc/hadoop/
      
  • jar包

    • [root@node02 ~]# rm -rf /opt/yjx/hadoop-3.1.2/share/hadoop/common/lib/guava-*.jar
      [root@node02 ~]# rm -rf /opt/yjx/hadoop-3.1.2/share/hadoop/hdfs/lib/guava-*.jar
      [root@node03 ~]# rm -rf /opt/yjx/hadoop-3.1.2/share/hadoop/common/lib/guava-*.jar
      [root@node03 ~]# rm -rf /opt/yjx/hadoop-3.1.2/share/hadoop/hdfs/lib/guava-*.jar
      
      
      [root@node02 ~]# cp /opt/yjx/apache-hive-3.1.2-bin/lib/guava-*.jar /opt/yjx/hadoop-3.1.2/share/hadoop/common/lib/
      [root@node02 ~]# cp /opt/yjx/apache-hive-3.1.2-bin/lib/guava-*.jar /opt/yjx/hadoop-3.1.2/share/hadoop/hdfs/lib/
      [root@node03 ~]# cp /opt/yjx/apache-hive-3.1.2-bin/lib/guava-*.jar /opt/yjx/hadoop-3.1.2/share/hadoop/common/lib/
      [root@node03 ~]# cp /opt/yjx/apache-hive-3.1.2-bin/lib/guava-*.jar /opt/yjx/hadoop-3.1.2/share/hadoop/hdfs/lib/
      

7、客户端配置文件

  • 选取node03为客户端节点

    • [node03] vim /opt/yjx/apache-hive-3.1.2-bin/conf/hive-site.xml
      
    • <property>
          <name>hive.metastore.warehouse.dir</name>
          <value>/hive/warehouse</value>
      </property>
      <property>
          <name>hive.cli.print.header</name>
          <value>true</value>
      </property>
      <property>
          <name>hive.cli.print.current.db</name>
          <value>true</value>
      </property>
      <property>
          <name>hive.metastore.schema.verification</name>
          <value>false</value>
      </property>
      <property>
          <name>datanucleus.schema.autoCreateAll</name>
          <value>true</value>
      </property>
      <!--指定hive.metastore.uris的port.为了启动metastore服务的时候不用指定端口-->
      <!--hive ==service metastore -p 9083 & | hive ==service metastore-->
      <property>
          <name>hive.metastore.uris</name>
          <value>thrift://node01:9083</value>
      </property>
      

8、启动集群

  • 启动Zookeeper

    • 123】zkServer.sh start
      
  • 启动Hdfs+Yarn

    • [root@node01 ~]# start-all.sh
      
  • 初始化数据库

    • [root@node01 ~]# schematool -dbType mysql -initSchema
      
    • 在这里插入图片描述

    • 在这里插入图片描述

  • 启动Hive

    • //前台运行
      [root@node01 ~]# hive --service metastore
      //后台运行
      [root@node01 ~]# nohup hive --service metastore > /dev/null 2>&1 &
      
  • 启动HiveServer2(可启动可不启动

    • //前台启动
      [root@node01 ~]# hiveserver2
      //后台启动
      [root@node01 ~]# nohup hiveserver2 > /dev/null 2>&1 &
      
    • 连接

    • [root@node03 ~]# beeline -u jdbc:hive2://node01:10000 -n root
      
    • 连接成功,测试

    • show databases;
      create databases hive;
      show databases;
      // 查看是否创建成功;
      

9、关机快照

  • 退出hive,Ctrl+C停止Hive进程 ;

  • //关闭hadoop与yarn
    [root@node01 ~]# stop-all.sh
    //关闭ZooKeeper
    [123]# zkServer.sh start
    //关机
    [123]# shutdown -h now
    
  • 拍摄快照

10、Hive的三种交互方式

1)第一种交互方式

shell交互Hive,用命令hive启动一个hive的shell命令行,在命令行中输入sql或者命令来和Hive交互。

服务端启动metastore服务(后台启动):nohup hive --service metastore > /dev/null 2>&1 &
进入命令:hive
退出命令行:quit;

2)第二种交互方式

Hive启动为一个服务器,对外提供服务,其他机器可以通过客户端通过协议连接到服务器,来完成访问操作,这是生产环境用法最多的

hadoop fs -chmod -R 777 /yjx

服务端启动hiveserver2服务:
nohup hive --service metastore > /dev/null 2>&1 &
nohup hiveserver2 > /dev/null 2>&1 &

需要稍等一下,启动服务需要时间:

进入命令:1)先执行: beeline ,在执行: ! connect jdbc:hive2://node01:10000 
        2)或者直接执行:  beeline -u jdbc:hive2://node01:10000 -n root
退出命令行:!exit

3)第三种交互方式

  • 使用 –e 参数来直接执行hql的语句
bin/hive -e "show databases;"
  • 使用 –f 参数通过指定文本文件来执行hql的语句
vim hive.sql
use myhive;
select * from test;

保存退出

hive -f hive.sql

特点:执行完sql后,回到linux命令行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值