Hive day01

  • 1.Hive基本信息

    • 1.官网:http:// hive.apache.org
    • 2. Facebook(开源) : 去解决海量
    • 3. 构建在hadoop之上的数据仓库
      • hdfs :hive的数据是存储在hdfs之上的
      • yarn :hive的作业可以跑在yarn之上的
      • mapreduce :hive的作业可以用MR的方式去运行
    • 4. 如何使用
      • 1. 定义了一种类sql的语言 : 类似sql又不完全相同
      • 2. 适用于离线/批处理
      • 3. 开发就是sql => mr作业 =>yarn上去运行
      • Hive底层引擎
        • MR : SQL  => MR  (默认)
        • Tez : SQL  => Tez
        • Spark : SQL  => Spark

          spqrkaql 去处理hive里面的数据

          hive on spark  => hive的引擎是spark (生产上不多用)
          spark on hive  => sparksql 查询 hive 里面的表
      • 4. 
    • 5.版本介绍
      • x.y.x
        • x 大版本
        • y  小版本
        • z  小版本的bug fix
    • 6.hive的特点
      • 1.简单易用
      • 2. 扩展性好
        • 1. sql功能角度 :udf
        • 2. 数据存储 和 计算角度:hadoop进行拓展
      • 3. Metastore 【Hive的元数据管理】
        • sparksql presto impala 只要能够访问hive Metastore 就可以访问Hive表中的数据【可以共享Metastore】
  • 2.Hive的架构

    • 元数据 :描述数据的数据
      • 表的名字
      • 字段的名i在
      • 字段的类型
      • 创建这
      • 数据存储地方
  • 常见问题
    • 1.共同点 : sql
    • 2. 延时性 : hive适用于离线计算 慢
    • 3. 事物 : 都支持
    • 4. 不用updata delete  (hive里面有 但不用)
    • 5. 分布式 都支持
    • 6. 成本 :廉价 
    • 数据体量 :量很大
  • 3.Hive部署

    • 1.上传 rz
    • 2.解压 [hadoop@bigdata13 software]$ tar -zxvf ./apache-hive-3.1.2-bin.tar.gz -C ~/app/
    • 3.软连接:[hadoop@bigdata13 app]$ ln -s ./apache-hive-3.1.2-bin/ hive
    • 3.配置环境变量
      路径:/home/hadoop/app/hive/bin
      
      [hadoop@bigdata13 bin]$ vim ~/.bashrc
      #HIVE_HOME
      export HIVE_HOME=/home/hadoop/app/hive
      export PATH=${PATH}:${HIVE_HOME}/bin
       
      •  source ~/.bashrc
    • 配置 hive 元数据库 【hive 整合MySQL】
      • 路径:/home/hadoop/app/hive/conf
        [hadoop@bigdata13 conf]$ cp hive-default.xml.template hive-site.xml  
        [hadoop@bigdata13 conf]$ vim hive-site.xml  【清空其他内容 只留下面diamante】
        <configuration>
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://bigdata13: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.header</name>
                <value>true</value>
        </property>
        <property>
                <name>hive.cli.print.current.db</name>
                <value>true</value>
        </property>
        </configuration>
        
    • 把mysql驱动包 放置 hive lib下面
    • 初始化元数据库 
              schematool -dbType mysql -initSchema
    • Hive 默认是有一个数据库(hive)存在的 :default
  • 4.入门

    • 1.mysql> select *  from VERSION;
    • 2.创建一张表
      • 创建表:create table test(name string);
      • 插入数据:insert into test values ('罗子岱');
    • hive 数据有两种:
      • 1.元数据 =》 MySQL 
        • TBLS 存的是Hive里面表的信息
        • DBS  存的是Hive 数据库相关的信息
        • COLUMNS_V2 存的是Hive table里面的字段信息
        • DATABASE_PARAMS 存的是Hive 数据库相关的信息
      • 2.table 数据 =》 存在hdfs 
        • hdfs://bigdata13:9000/user/hive/warehouse
      • 一个hive表 会被拆分成N个表在mysql里面进行存储
      • hive 运行的日志在 /tmp/hadoop/hive.log 中
        路径:/home/hadoop/app/hive
        [hadoop@bigdata13 hive]$ mkdir logs
        
        路径:/home/hadoop/app/hive/conf
        [hadoop@bigdata13 conf]$ cp hive-log4j2.properties.template hive-log4j2.properties
        [hadoop@bigdata13 conf]$ vim hive-log4j2.properties
        修改路径
        property.hive.log.dir = /home/hadoop/app/hive/logs/
    • 3. 配置Hive参数 
      • 1.Command Line Interface 【命令行显示相关参数】
        • hive.cli.print.header
           
        • hive.cli.print.current.db
          显示数据库名
        • ​​​​​hive.metastore.warehouse.dir 【了解 default数据库默认存储位置】
      • 2.如何查看参数默认值?
                set key; 查看参数默认值
                set key=value; 设置参数的值
      • 3.参数配置优先级: 
        • 1.session  设置参数 【仅仅是当前session有效】
        • 2.hive-site.xml 【全局生效的】
          <property>
                  <name>hive.cli.print.header</name>
                  <value>true</value>
          </property>
          <property>
                  <name>hive.cli.print.current.db</name>
                  <value>true</value>
          </property>
        • 3.hive --hiveconf hive.cli.print.current.db=false;  => 【当前session有效】
        •   hive -help : 
                  -e sql 语句
                  -f sql文件

          //无需进入hive内就可以查询表格
          [hadoop@bigdata13 ~]$ hive -e "select *  from test"
          
          //编辑脚本查询表
          [hadoop@bigdata13 ~]$ vim test1.sql
          select * from test;
          [hadoop@bigdata13 ~]$ hive -f ./test1.sql
        • 调度平台:crontab 、azkanban、xxl
        • DDL:Data Definition Language
        • Database: 
              hive 默认有一个数据库 default  路径:/user/hive/warehouse
          • 1.创建数据库
            • CREATE [REMOTE] (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
               [COMMENT database_comment]
               [LOCATION hdfs_path]
               [MANAGEDLOCATION hdfs_path]
               [WITH DBPROPERTIES (property_name=property_value, ...)];
            • //创建数据库
              hive (default)> create database bigdata_hive;
            • 创建到其他路径
               create database  bigdata_hive2  LOCATION '/data/bigdata_hive2';
            • 创建表 加参数
              create database  bigdata_hive3 WITH DBPROPERTIES ('creator'='doublehappy', 'create_dt'="2099-11-29");
          • 2.查看数据库
            • show databases;
            • show databases like "bigdata_hive*"
            • desc database  bigdata_hive3;
            • desc database EXTENDED bigdata_hive3;
               

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值