• 【Hadoop离线基础总结】Hive的安装部署以及使用方式


    Hive的安装部署以及使用方式


    安装部署

    • Derby版hive直接使用
      cd /export/softwares
      将上传的hive软件包解压tar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C ../servers/
      cd /export/servers/hive-1.1.0-cdh5.14.0/
      启动bin/hive
      在这里插入图片描述
      缺点:多个地方安装hive后,每一个hive是拥有一套自己的元数据,大家的库、表就不统一;

    • 使用mysql共享hive元数据

      1.国内下载mysql源http://mirrors.163.com/mysql/Downloads/
      在这里插入图片描述
      2.下载完成后将tar包解压到/var/cache/yum/x86_64/7/mysql57-community/packages

      3.可以用两种方法安装
      (1) yum install mysql mysql-server mysql-devel (安装包已经放到指定路径下,就不用再下载了)
      (2) rpm -ivh *.rpm(安装前要先cd到上面说的文件夹)
        第二种安装时如果出现“公钥未安装”之类的字眼,在后面加 --force --nodeps即可

      4.启动mysql的服务
      service mysqld startsystemctl start mysqld.service(CentOS 7 之后的版本两个都能用)

      5.查看mysql服务是否启动成功
      service mysqld statussystemctl status mysql.service
      在这里插入图片描述
      6.初始化mysql并生成随机密码
      初始化mysql:mysqld --initialize
      查看随机密码:cat /var/log/mysqld.log
      在这里插入图片描述
      7.使用随机密码登录,并修改密码
      登录:mysql -uroot -p
      修改密码强度:set global validate_password_length=6;
      修改密码长度:set global validate_password_policy=LOW;(因为打算设置一个简单的密码,所以需要修改)
      修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

      8.退出mysql,修改mysql安装配置
      修改mysql安装配置:/usr/bin/mysql_secure_installation
      需要选择是n/y,我的顺序是n/y/n/y/y

      9.进去mysql,修改访问权限
      修改访问权限:grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
      *.* 第一个*表示数据库名称第二个*表示数据库下面的哪个表
      'root'@'%' root表示mysql的用户%表示ip地址可以从哪台机器使用那个用户来连接数据库
      all privileges 所有的权限,这里还可以写insert update delete select
      identified by 远程连接的时候的密码,与mysql的root用户密码无关
      实际线上环境,关于mysql的控制比较严格,不同的人分配不同的用户,创建不同的数据库,分配不同的权限

      刷新权限表:flush pricileges;

      10.修改hive的两个配置文件
      修改hive-env.sh
      cd /export/servers/hive-1.1.0-cdh5.14.0/conf
      cp hive-env.sh.template hive-env.sh
      vim hive-env.sh
      在这里插入图片描述
      创建hive-site.xml

    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
            <property>
                    <name>javax.jdo.option.ConnectionURL</name>
                    <value>jdbc:mysql://node03.hadoop.com: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>hive.cli.print.current.db</name>
                    <value>true</value>
            </property>
            <property>
                    <name>hive.cli.print.header</name>
                    <value>true</value>
            </property>
            <property>
                    <name>hive.server2.thrift.bind.host</name>
                    <value>node03.hadoop.com</value>
            </property>
    <!--
            <property>
                    <name>hive.metastore.uris</name>
                    <value>thrift://node03.hadoop.com:9083</value>
            </property>
    -->
    </configuration>
    

      11.上传mysql的lib驱动包
       上传到这里:cd /export/servers/hive-1.1.0-cdh5.14.0/lib

    参照mysql-connector-java和mysql的对应关系进行选择下载 (图转自CSDN博主「hchhan89」)
    在这里插入图片描述


    使用方式

    • 第一种交互方式
      使用hive的bin/hive可以进入hive的客户端,执行sql语句
      cd /export/servers/hive-1.1.0-cdh5.14.0
      启动:bin/hive
      查看所有的数据库:hive (default)> SHOW DATABASES;
      创建一个数据库:hive (default)> CREATE DATABASE myhive;
      使用该数据库并创建数据库表hive (default)> USE myhive
                    hive (default)> CREATE TABLE test(id INT,name STRING)

    • 第二种交互方式
      Hive JDBC服务
      可以前台启动服务端:bin/hive --service hiveserver2 在前台就会一直占用一个窗口
      在这里插入图片描述
      也可以把进程挂在后台: nohup bin/hive --service hiveserver2 2>&1 &
      再使用beeline进行交互:bin/beeline !connect jdbc:hive2://node03:10000
      在这里插入图片描述

    • 第三种交互方式
      Hive命令
      -e参数表示直接执行hql的语句:bin/hive -e "use myhive;select * from test;"
      -f参数表示通过指定文本文件来执行hql语句:bin/hive -f hive.sql
      更多参数参考
      在这里插入图片描述

  • 相关阅读:
    利用DllPlugin性能优化
    Shimming 的作用
    用webpackPrefetch:true提升性能
    webpack打包分析学习笔记
    分块打包学习笔记
    tree shaking学习笔记
    Map与实体类相互转换
    项目可以run但不能debug
    jeecg-boot框架默认create_time Desc去掉
    List<实体类>根据多个字段去重
  • 原文地址:https://www.cnblogs.com/zzzsw0412/p/12772482.html
Copyright © 2020-2023  润新知